2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mavx2 -fdump-tree-optimized" } */
4 /* { dg-final { scan-tree-dump-not "link_error" "optimized" } } */
8 extern void link_error (void);
13 int a
= _mm_movemask_pd (_mm_set_pd (-2.0, 2.0));
14 if (a
!= 2) link_error ();
15 int b
= _mm_movemask_pd (_mm_set_pd (0.0, __builtin_copysign (0.0, -4.0)));
16 if (b
!= 1) link_error ();
17 int c
= _mm_movemask_ps (_mm_set_ps (__builtin_copysignf (0.0f
, -4.0f
), 0.0f
,
19 if (c
!= 10) link_error ();
20 int d
= _mm_movemask_epi8 (_mm_set_epi8 (-4, 8, -8, -12, 12, 15, 0, -1, -3,
21 -128, 127, 126, 120, -120, 0, 5));
22 if (d
!= 0xb1c4) link_error ();
23 int e
= _mm256_movemask_pd (_mm256_set_pd (-4.0, 0.0, 4.0,
24 __builtin_copysign (0.0, -4.0)));
25 if (e
!= 9) link_error ();
26 int f
= _mm256_movemask_ps (_mm256_set_ps (-8.0f
, -16.0f
, 12.0f
, 127.0f
,
28 __builtin_copysign (0.0f
,
30 if (f
!= 0xc9) link_error ();
31 int g
= _mm256_movemask_epi8 (_mm256_set_epi8 (-4, 8, -8, -12, 12, 15, 0, -1,
32 -3, -128, 127, 126, 120, -120,
33 0, 5, 12, 100, -20, -50, -70,
34 2, -65, 0, -1, 1, 2, -2, -9,
36 if (g
!= (int) 0xb1c43a9dU
) link_error ();