1 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */ 2 /* { dg-options "-mfloat128 -mvsx" } */ 3 4 void abort (); 5 6 typedef unsigned long long int uint64_t; 7 8 typedef union 9 { 10 __float128 value; 11 12 struct 13 { 14 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ 15 unsigned negative:1; 16 unsigned exponent:15; 17 unsigned quiet_nan:1; 18 uint64_t mant_high:47; 19 uint64_t mant_low:64; 20 #else 21 uint64_t mant_low:64; 22 uint64_t mant_high:47; 23 unsigned quiet_nan:1; 24 unsigned exponent:15; 25 unsigned negative:1; 26 #endif 27 } nan; 28 29 } ieee854_float128; 30 31 int main(int argc,int * argv[])32main (int argc, int *argv[]) 33 { 34 ieee854_float128 y; 35 36 y.value = __builtin_infq (); 37 38 if (y.nan.negative != 0 39 || y.nan.exponent != 0x7fff 40 || y.nan.quiet_nan != 0 41 || y.nan.mant_high != 0 42 || y.nan.mant_low != 0) 43 abort (); 44 45 y.value = __builtin_huge_valq (); 46 47 if (y.nan.negative != 0 48 || y.nan.exponent != 0x7fff 49 || y.nan.quiet_nan != 0 50 || y.nan.mant_high != 0 51 || y.nan.mant_low != 0) 52 abort (); 53 54 return 0; 55 } 56