1 /* PR target/91824 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mavx2" } */
4 /* { dg-final { scan-assembler-not "cltq" } } */
5 /* { dg-final { scan-assembler-not "movl\t%eax, %eax" } } */
6 
7 #include <x86intrin.h>
8 
9 unsigned long long
f1(__m128i x)10 f1 (__m128i x)
11 {
12   return _mm_movemask_epi8 (x);
13 }
14 
15 unsigned long long
f2(__m128i x)16 f2 (__m128i x)
17 {
18   return (unsigned) _mm_movemask_epi8 (x);
19 }
20 
21 unsigned long long
f3(__m128 x)22 f3 (__m128 x)
23 {
24   return _mm_movemask_ps (x);
25 }
26 
27 unsigned long long
f4(__m128 x)28 f4 (__m128 x)
29 {
30   return (unsigned) _mm_movemask_ps (x);
31 }
32 
33 unsigned long long
f5(__m128d x)34 f5 (__m128d x)
35 {
36   return _mm_movemask_pd (x);
37 }
38 
39 unsigned long long
f6(__m128d x)40 f6 (__m128d x)
41 {
42   return (unsigned) _mm_movemask_pd (x);
43 }
44 
45 unsigned long long
f7(__m256 x)46 f7 (__m256 x)
47 {
48   return _mm256_movemask_ps (x);
49 }
50 
51 unsigned long long
f8(__m256 x)52 f8 (__m256 x)
53 {
54   return (unsigned) _mm256_movemask_ps (x);
55 }
56 
57 unsigned long long
f9(__m256d x)58 f9 (__m256d x)
59 {
60   return _mm256_movemask_pd (x);
61 }
62 
63 unsigned long long
f10(__m256d x)64 f10 (__m256d x)
65 {
66   return (unsigned) _mm256_movemask_pd (x);
67 }
68 
69 unsigned long long
f11(__m256i x)70 f11 (__m256i x)
71 {
72   return (unsigned) _mm256_movemask_epi8 (x);
73 }
74