Lines Matching refs:AVX2
3 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mattr=avx2 | FileCheck %s --check-prefix=AVX2
16 ; AVX2-LABEL: test1:
17 ; AVX2: # BB#0:
18 ; AVX2-NEXT: vpmullw {{.*}}(%rip), %xmm0, %xmm0
19 ; AVX2-NEXT: retq
35 ; AVX2-LABEL: test2:
36 ; AVX2: # BB#0:
37 ; AVX2-NEXT: vpmullw {{.*}}(%rip), %xmm0, %xmm0
38 ; AVX2-NEXT: retq
58 ; AVX2-LABEL: test3:
59 ; AVX2: # BB#0:
60 ; AVX2-NEXT: vpsllvd {{.*}}(%rip), %xmm0, %xmm0
61 ; AVX2-NEXT: retq
77 ; AVX2-LABEL: test4:
78 ; AVX2: # BB#0:
79 ; AVX2-NEXT: vpsllvd {{.*}}(%rip), %xmm0, %xmm0
80 ; AVX2-NEXT: retq
90 ; If we have AVX/SSE2 but not AVX2, verify that the following shift is split
91 ; into two pmullw instructions. With AVX2, the test case below would produce
102 ; AVX2-LABEL: test5:
103 ; AVX2: # BB#0:
104 ; AVX2-NEXT: vpmullw {{.*}}(%rip), %ymm0, %ymm0
105 ; AVX2-NEXT: retq
115 ; If we have AVX/SSE4.1 but not AVX2, verify that the following shift is split
116 ; into two pmulld instructions. With AVX2, the test case below would produce
127 ; AVX2-LABEL: test6:
128 ; AVX2: # BB#0:
129 ; AVX2-NEXT: vpsllvd {{.*}}(%rip), %ymm0, %ymm0
130 ; AVX2-NEXT: retq
140 ; With AVX2 and AVX512, the test case below should produce a sequence of
154 ; AVX2-LABEL: test7:
155 ; AVX2: # BB#0:
156 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [2,2,4,8,128,1,512,2048,2,2,4,8,128,1,512,2048]
157 ; AVX2-NEXT: vpmullw %ymm2, %ymm0, %ymm0
158 ; AVX2-NEXT: vpmullw %ymm2, %ymm1, %ymm1
159 ; AVX2-NEXT: retq
184 ; AVX2-LABEL: test8:
185 ; AVX2: # BB#0:
186 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [1,1,2,3,1,1,2,3]
187 ; AVX2-NEXT: vpsllvd %ymm2, %ymm0, %ymm0
188 ; AVX2-NEXT: vpsllvd %ymm2, %ymm1, %ymm1
189 ; AVX2-NEXT: retq
199 ; The shift from 'test9' gets shifted separately and blended if we don't have AVX2/AVX512f support.
216 ; AVX2-LABEL: test9:
217 ; AVX2: # BB#0:
218 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [1,1,2,3]
219 ; AVX2-NEXT: vpsllvq %ymm2, %ymm0, %ymm0
220 ; AVX2-NEXT: vpsllvq %ymm2, %ymm1, %ymm1
221 ; AVX2-NEXT: retq