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)8 f16c_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