1 /* { dg-require-effective-target int32plus } */ 2 typedef signed int __int32_t; 3 typedef unsigned int __uint32_t; 4 typedef union 5 { 6 float value; 7 __uint32_t word; 8 } 9 ieee_float_shape_type; 10 static const float two23 = 8.3886080000e+06; 11 static const float pi = 3.1415927410e+00; 12 static const float zero = 0.0000000000e+00; 13 static float sin_pif(float x)14sin_pif (float x) 15 { 16 float y = 0; 17 float z = 0; 18 __int32_t n = 0; 19 __int32_t ix = 0; 20 do 21 { 22 ieee_float_shape_type gf_u = { 0 }; 23 (ix) = gf_u.word; 24 } 25 while (0); 26 if (z == y) 27 { 28 if (ix < 0x4b800000) 29 { 30 if (ix < 0x4b000000) 31 z = y + two23; 32 do 33 { 34 ieee_float_shape_type gf_u; 35 gf_u.value = (z); 36 (n) = gf_u.word; 37 } 38 while (0); 39 } 40 } 41 if (n == 0) 42 y = __kernel_sinf (pi * y, zero, 0); 43 } 44 45 float __ieee754_lgammaf_r(float x,int * signgamp)46__ieee754_lgammaf_r (float x, int *signgamp) 47 { 48 float t = 0; 49 __int32_t hx = 0; 50 do 51 { 52 ieee_float_shape_type gf_u = { 0 }; 53 (hx) = gf_u.word; 54 } 55 while (0); 56 if (hx < 0) 57 t = sin_pif (x); 58 return 0; 59 } 60