1 /* PR target/85323 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mavx512vl -mavx512bw -fdump-tree-optimized" } */
4 /* { dg-final { scan-tree-dump-times "return x_\[0-9]*.D.;" 3 "optimized" } } */
5 
6 #include <x86intrin.h>
7 
8 __m128i
foo(__m128i x)9 foo (__m128i x)
10 {
11   x = _mm_sll_epi64 (x, _mm_set1_epi32 (0));
12   x = _mm_sll_epi32 (x, _mm_set1_epi32 (0));
13   x = _mm_sll_epi16 (x, _mm_set1_epi32 (0));
14   x = _mm_srl_epi64 (x, _mm_set1_epi32 (0));
15   x = _mm_srl_epi32 (x, _mm_set1_epi32 (0));
16   x = _mm_srl_epi16 (x, _mm_set1_epi32 (0));
17   x = _mm_sra_epi64 (x, _mm_set1_epi32 (0));
18   x = _mm_sra_epi32 (x, _mm_set1_epi32 (0));
19   x = _mm_sra_epi16 (x, _mm_set1_epi32 (0));
20   x = _mm_slli_epi64 (x, 0);
21   x = _mm_slli_epi32 (x, 0);
22   x = _mm_slli_epi16 (x, 0);
23   x = _mm_srli_epi64 (x, 0);
24   x = _mm_srli_epi32 (x, 0);
25   x = _mm_srli_epi16 (x, 0);
26   x = _mm_srai_epi64 (x, 0);
27   x = _mm_srai_epi32 (x, 0);
28   x = _mm_srai_epi16 (x, 0);
29   return x;
30 }
31 
32 __m256i
bar(__m256i x)33 bar (__m256i x)
34 {
35   x = _mm256_sll_epi64 (x, _mm_set1_epi32 (0));
36   x = _mm256_sll_epi32 (x, _mm_set1_epi32 (0));
37   x = _mm256_sll_epi16 (x, _mm_set1_epi32 (0));
38   x = _mm256_srl_epi64 (x, _mm_set1_epi32 (0));
39   x = _mm256_srl_epi32 (x, _mm_set1_epi32 (0));
40   x = _mm256_srl_epi16 (x, _mm_set1_epi32 (0));
41   x = _mm256_sra_epi64 (x, _mm_set1_epi32 (0));
42   x = _mm256_sra_epi32 (x, _mm_set1_epi32 (0));
43   x = _mm256_sra_epi16 (x, _mm_set1_epi32 (0));
44   x = _mm256_slli_epi64 (x, 0);
45   x = _mm256_slli_epi32 (x, 0);
46   x = _mm256_slli_epi16 (x, 0);
47   x = _mm256_srli_epi64 (x, 0);
48   x = _mm256_srli_epi32 (x, 0);
49   x = _mm256_srli_epi16 (x, 0);
50   x = _mm256_srai_epi64 (x, 0);
51   x = _mm256_srai_epi32 (x, 0);
52   x = _mm256_srai_epi16 (x, 0);
53   return x;
54 }
55 
56 __m512i
baz(__m512i x)57 baz (__m512i x)
58 {
59   x = _mm512_sll_epi64 (x, _mm_set1_epi32 (0));
60   x = _mm512_sll_epi32 (x, _mm_set1_epi32 (0));
61   x = _mm512_sll_epi16 (x, _mm_set1_epi32 (0));
62   x = _mm512_srl_epi64 (x, _mm_set1_epi32 (0));
63   x = _mm512_srl_epi32 (x, _mm_set1_epi32 (0));
64   x = _mm512_srl_epi16 (x, _mm_set1_epi32 (0));
65   x = _mm512_sra_epi64 (x, _mm_set1_epi32 (0));
66   x = _mm512_sra_epi32 (x, _mm_set1_epi32 (0));
67   x = _mm512_sra_epi16 (x, _mm_set1_epi32 (0));
68   x = _mm512_slli_epi64 (x, 0);
69   x = _mm512_slli_epi32 (x, 0);
70   x = _mm512_slli_epi16 (x, 0);
71   x = _mm512_srli_epi64 (x, 0);
72   x = _mm512_srli_epi32 (x, 0);
73   x = _mm512_srli_epi16 (x, 0);
74   x = _mm512_srai_epi64 (x, 0);
75   x = _mm512_srai_epi32 (x, 0);
76   x = _mm512_srai_epi16 (x, 0);
77   return x;
78 }
79