1 /* { dg-do run } */ 2 /* { dg-require-effective-target f16c } */ 3 /* { dg-options "-O2 -mf16c" } */ 4 5 #include "f16c-check.h" 6 7 static void f16c_test(void)8f16c_test (void) 9 { 10 union256 res; 11 union128i_w val; 12 float exp[8]; 13 14 exp[0] = 1; 15 exp[1] = 2; 16 exp[2] = 4; 17 exp[3] = 8; 18 exp[4] = -1; 19 exp[5] = -2; 20 exp[6] = -4; 21 exp[7] = -8; 22 23 val.a[0] = 0x3c00; 24 val.a[1] = 0x4000; 25 val.a[2] = 0x4400; 26 val.a[3] = 0x4800; 27 val.a[4] = 0xbc00; 28 val.a[5] = 0xc000; 29 val.a[6] = 0xc400; 30 val.a[7] = 0xc800; 31 32 res.x = _mm256_cvtph_ps (val.x); 33 34 if (check_union256 (res, exp)) 35 abort (); 36 } 37