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)10f1 (__m128i x) 11 { 12 return _mm_movemask_epi8 (x); 13 } 14 15 unsigned long long f2(__m128i x)16f2 (__m128i x) 17 { 18 return (unsigned) _mm_movemask_epi8 (x); 19 } 20 21 unsigned long long f3(__m128 x)22f3 (__m128 x) 23 { 24 return _mm_movemask_ps (x); 25 } 26 27 unsigned long long f4(__m128 x)28f4 (__m128 x) 29 { 30 return (unsigned) _mm_movemask_ps (x); 31 } 32 33 unsigned long long f5(__m128d x)34f5 (__m128d x) 35 { 36 return _mm_movemask_pd (x); 37 } 38 39 unsigned long long f6(__m128d x)40f6 (__m128d x) 41 { 42 return (unsigned) _mm_movemask_pd (x); 43 } 44 45 unsigned long long f7(__m256 x)46f7 (__m256 x) 47 { 48 return _mm256_movemask_ps (x); 49 } 50 51 unsigned long long f8(__m256 x)52f8 (__m256 x) 53 { 54 return (unsigned) _mm256_movemask_ps (x); 55 } 56 57 unsigned long long f9(__m256d x)58f9 (__m256d x) 59 { 60 return _mm256_movemask_pd (x); 61 } 62 63 unsigned long long f10(__m256d x)64f10 (__m256d x) 65 { 66 return (unsigned) _mm256_movemask_pd (x); 67 } 68 69 unsigned long long f11(__m256i x)70f11 (__m256i x) 71 { 72 return (unsigned) _mm256_movemask_epi8 (x); 73 } 74