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