Lines Matching refs:AVX512DQ
2 …nl -mattr=+avx512dq | FileCheck %s --check-prefix=ALL --check-prefix=AVX512 --check-prefix=AVX512DQ
28 ; AVX512DQ-LABEL: var_shift_v32i16:
29 ; AVX512DQ: ## BB#0:
30 ; AVX512DQ-NEXT: vpxor %ymm4, %ymm4, %ymm4
31 ; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} ymm5 = ymm2[4],ymm4[4],ymm2[5],ymm4[5],ymm2[6],ymm4[6],ymm2…
32 ; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} ymm6 = ymm4[4],ymm0[4],ymm4[5],ymm0[5],ymm4[6],ymm0[6],ymm4…
33 ; AVX512DQ-NEXT: vpsllvd %ymm5, %ymm6, %ymm5
34 ; AVX512DQ-NEXT: vpsrld $16, %ymm5, %ymm5
35 ; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} ymm2 = ymm2[0],ymm4[0],ymm2[1],ymm4[1],ymm2[2],ymm4[2],ymm2…
36 ; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} ymm0 = ymm4[0],ymm0[0],ymm4[1],ymm0[1],ymm4[2],ymm0[2],ymm4…
37 ; AVX512DQ-NEXT: vpsllvd %ymm2, %ymm0, %ymm0
38 ; AVX512DQ-NEXT: vpsrld $16, %ymm0, %ymm0
39 ; AVX512DQ-NEXT: vpackusdw %ymm5, %ymm0, %ymm0
40 ; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} ymm2 = ymm3[4],ymm4[4],ymm3[5],ymm4[5],ymm3[6],ymm4[6],ymm3…
41 ; AVX512DQ-NEXT: vpunpckhwd {{.*#+}} ymm5 = ymm4[4],ymm1[4],ymm4[5],ymm1[5],ymm4[6],ymm1[6],ymm4…
42 ; AVX512DQ-NEXT: vpsllvd %ymm2, %ymm5, %ymm2
43 ; AVX512DQ-NEXT: vpsrld $16, %ymm2, %ymm2
44 ; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[2],ymm4[2],ymm3…
45 ; AVX512DQ-NEXT: vpunpcklwd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[2],ymm1[2],ymm4…
46 ; AVX512DQ-NEXT: vpsllvd %ymm3, %ymm1, %ymm1
47 ; AVX512DQ-NEXT: vpsrld $16, %ymm1, %ymm1
48 ; AVX512DQ-NEXT: vpackusdw %ymm2, %ymm1, %ymm1
49 ; AVX512DQ-NEXT: retq
60 ; AVX512DQ-LABEL: var_shift_v64i8:
61 ; AVX512DQ: ## BB#0:
62 ; AVX512DQ-NEXT: vpsllw $4, %ymm0, %ymm4
63 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [240,240,240,240,240,240,240,240,240,240,240,240,240,24…
64 ; AVX512DQ-NEXT: vpand %ymm5, %ymm4, %ymm4
65 ; AVX512DQ-NEXT: vpsllw $5, %ymm2, %ymm2
66 ; AVX512DQ-NEXT: vpblendvb %ymm2, %ymm4, %ymm0, %ymm0
67 ; AVX512DQ-NEXT: vpsllw $2, %ymm0, %ymm4
68 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm6 = [252,252,252,252,252,252,252,252,252,252,252,252,252,25…
69 ; AVX512DQ-NEXT: vpand %ymm6, %ymm4, %ymm4
70 ; AVX512DQ-NEXT: vpaddb %ymm2, %ymm2, %ymm2
71 ; AVX512DQ-NEXT: vpblendvb %ymm2, %ymm4, %ymm0, %ymm0
72 ; AVX512DQ-NEXT: vpaddb %ymm0, %ymm0, %ymm4
73 ; AVX512DQ-NEXT: vpaddb %ymm2, %ymm2, %ymm2
74 ; AVX512DQ-NEXT: vpblendvb %ymm2, %ymm4, %ymm0, %ymm0
75 ; AVX512DQ-NEXT: vpsllw $4, %ymm1, %ymm2
76 ; AVX512DQ-NEXT: vpand %ymm5, %ymm2, %ymm2
77 ; AVX512DQ-NEXT: vpsllw $5, %ymm3, %ymm3
78 ; AVX512DQ-NEXT: vpblendvb %ymm3, %ymm2, %ymm1, %ymm1
79 ; AVX512DQ-NEXT: vpsllw $2, %ymm1, %ymm2
80 ; AVX512DQ-NEXT: vpand %ymm6, %ymm2, %ymm2
81 ; AVX512DQ-NEXT: vpaddb %ymm3, %ymm3, %ymm3
82 ; AVX512DQ-NEXT: vpblendvb %ymm3, %ymm2, %ymm1, %ymm1
83 ; AVX512DQ-NEXT: vpaddb %ymm1, %ymm1, %ymm2
84 ; AVX512DQ-NEXT: vpaddb %ymm3, %ymm3, %ymm3
85 ; AVX512DQ-NEXT: vpblendvb %ymm3, %ymm2, %ymm1, %ymm1
86 ; AVX512DQ-NEXT: retq
118 ; AVX512DQ-LABEL: splatvar_shift_v32i16:
119 ; AVX512DQ: ## BB#0:
120 ; AVX512DQ-NEXT: vmovd %xmm2, %eax
121 ; AVX512DQ-NEXT: movzwl %ax, %eax
122 ; AVX512DQ-NEXT: vmovd %eax, %xmm2
123 ; AVX512DQ-NEXT: vpsllw %xmm2, %ymm0, %ymm0
124 ; AVX512DQ-NEXT: vpsllw %xmm2, %ymm1, %ymm1
125 ; AVX512DQ-NEXT: retq
140 ; AVX512DQ-LABEL: splatvar_shift_v64i8:
141 ; AVX512DQ: ## BB#0:
142 ; AVX512DQ-NEXT: vpbroadcastb %xmm2, %ymm2
143 ; AVX512DQ-NEXT: vpsllw $4, %ymm0, %ymm3
144 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm4 = [240,240,240,240,240,240,240,240,240,240,240,240,240,24…
145 ; AVX512DQ-NEXT: vpand %ymm4, %ymm3, %ymm3
146 ; AVX512DQ-NEXT: vpsllw $5, %ymm2, %ymm2
147 ; AVX512DQ-NEXT: vpblendvb %ymm2, %ymm3, %ymm0, %ymm0
148 ; AVX512DQ-NEXT: vpsllw $2, %ymm0, %ymm3
149 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [252,252,252,252,252,252,252,252,252,252,252,252,252,25…
150 ; AVX512DQ-NEXT: vpand %ymm5, %ymm3, %ymm3
151 ; AVX512DQ-NEXT: vpaddb %ymm2, %ymm2, %ymm6
152 ; AVX512DQ-NEXT: vpblendvb %ymm6, %ymm3, %ymm0, %ymm0
153 ; AVX512DQ-NEXT: vpaddb %ymm0, %ymm0, %ymm3
154 ; AVX512DQ-NEXT: vpaddb %ymm6, %ymm6, %ymm7
155 ; AVX512DQ-NEXT: vpblendvb %ymm7, %ymm3, %ymm0, %ymm0
156 ; AVX512DQ-NEXT: vpsllw $4, %ymm1, %ymm3
157 ; AVX512DQ-NEXT: vpand %ymm4, %ymm3, %ymm3
158 ; AVX512DQ-NEXT: vpblendvb %ymm2, %ymm3, %ymm1, %ymm1
159 ; AVX512DQ-NEXT: vpsllw $2, %ymm1, %ymm2
160 ; AVX512DQ-NEXT: vpand %ymm5, %ymm2, %ymm2
161 ; AVX512DQ-NEXT: vpblendvb %ymm6, %ymm2, %ymm1, %ymm1
162 ; AVX512DQ-NEXT: vpaddb %ymm1, %ymm1, %ymm2
163 ; AVX512DQ-NEXT: vpblendvb %ymm7, %ymm2, %ymm1, %ymm1
164 ; AVX512DQ-NEXT: retq
194 ; AVX512DQ-LABEL: constant_shift_v32i16:
195 ; AVX512DQ: ## BB#0:
196 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm2 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384…
197 ; AVX512DQ-NEXT: vpmullw %ymm2, %ymm0, %ymm0
198 ; AVX512DQ-NEXT: vpmullw %ymm2, %ymm1, %ymm1
199 ; AVX512DQ-NEXT: retq
210 ; AVX512DQ-LABEL: constant_shift_v64i8:
211 ; AVX512DQ: ## BB#0:
212 ; AVX512DQ-NEXT: vpsllw $4, %ymm0, %ymm2
213 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm3 = [240,240,240,240,240,240,240,240,240,240,240,240,240,24…
214 ; AVX512DQ-NEXT: vpand %ymm3, %ymm2, %ymm2
215 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm4 = [0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7,7,6,5,…
216 ; AVX512DQ-NEXT: vpsllw $5, %ymm4, %ymm4
217 ; AVX512DQ-NEXT: vpblendvb %ymm4, %ymm2, %ymm0, %ymm0
218 ; AVX512DQ-NEXT: vpsllw $2, %ymm0, %ymm2
219 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm5 = [252,252,252,252,252,252,252,252,252,252,252,252,252,25…
220 ; AVX512DQ-NEXT: vpand %ymm5, %ymm2, %ymm2
221 ; AVX512DQ-NEXT: vpaddb %ymm4, %ymm4, %ymm6
222 ; AVX512DQ-NEXT: vpblendvb %ymm6, %ymm2, %ymm0, %ymm0
223 ; AVX512DQ-NEXT: vpaddb %ymm0, %ymm0, %ymm2
224 ; AVX512DQ-NEXT: vpaddb %ymm6, %ymm6, %ymm7
225 ; AVX512DQ-NEXT: vpblendvb %ymm7, %ymm2, %ymm0, %ymm0
226 ; AVX512DQ-NEXT: vpsllw $4, %ymm1, %ymm2
227 ; AVX512DQ-NEXT: vpand %ymm3, %ymm2, %ymm2
228 ; AVX512DQ-NEXT: vpblendvb %ymm4, %ymm2, %ymm1, %ymm1
229 ; AVX512DQ-NEXT: vpsllw $2, %ymm1, %ymm2
230 ; AVX512DQ-NEXT: vpand %ymm5, %ymm2, %ymm2
231 ; AVX512DQ-NEXT: vpblendvb %ymm6, %ymm2, %ymm1, %ymm1
232 ; AVX512DQ-NEXT: vpaddb %ymm1, %ymm1, %ymm2
233 ; AVX512DQ-NEXT: vpblendvb %ymm7, %ymm2, %ymm1, %ymm1
234 ; AVX512DQ-NEXT: retq
262 ; AVX512DQ-LABEL: splatconstant_shift_v32i16:
263 ; AVX512DQ: ## BB#0:
264 ; AVX512DQ-NEXT: vpsllw $3, %ymm0, %ymm0
265 ; AVX512DQ-NEXT: vpsllw $3, %ymm1, %ymm1
266 ; AVX512DQ-NEXT: retq
277 ; AVX512DQ-LABEL: splatconstant_shift_v64i8:
278 ; AVX512DQ: ## BB#0:
279 ; AVX512DQ-NEXT: vpsllw $3, %ymm0, %ymm0
280 ; AVX512DQ-NEXT: vmovdqa {{.*#+}} ymm2 = [248,248,248,248,248,248,248,248,248,248,248,248,248,24…
281 ; AVX512DQ-NEXT: vpand %ymm2, %ymm0, %ymm0
282 ; AVX512DQ-NEXT: vpsllw $3, %ymm1, %ymm1
283 ; AVX512DQ-NEXT: vpand %ymm2, %ymm1, %ymm1
284 ; AVX512DQ-NEXT: retq