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   union128 val;
11   union128i_w res;
12   short exp[8];
13 
14   val.a[0] = 1;
15   val.a[1] = -2;
16   val.a[2] = -1;
17   val.a[3] = 2;
18 
19   exp[0] = 0x3c00;
20   exp[1] = 0xc000;
21   exp[2] = 0xbc00;
22   exp[3] = 0x4000;
23   exp[4] = 0;
24   exp[5] = 0;
25   exp[6] = 0;
26   exp[7] = 0;
27 
28   res.x = _mm_cvtps_ph (val.x, 0);
29 
30   if (check_union128i_w (res, exp))
31     abort ();
32 }
33