Lines Matching refs:AVX2
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=avx2 | FileCheck %s --check-prefixes=ANY,X64-AVX2
26 ; X64-AVX2-LABEL: rotl_i8_const_shift:
27 ; X64-AVX2: # %bb.0:
28 ; X64-AVX2-NEXT: movl %edi, %eax
29 ; X64-AVX2-NEXT: rolb $3, %al
30 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
31 ; X64-AVX2-NEXT: retq
43 ; X64-AVX2-LABEL: rotl_i8_const_shift1:
44 ; X64-AVX2: # %bb.0:
45 ; X64-AVX2-NEXT: movl %edi, %eax
46 ; X64-AVX2-NEXT: rolb %al
47 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
48 ; X64-AVX2-NEXT: retq
60 ; X64-AVX2-LABEL: rotl_i8_const_shift7:
61 ; X64-AVX2: # %bb.0:
62 ; X64-AVX2-NEXT: movl %edi, %eax
63 ; X64-AVX2-NEXT: rorb %al
64 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
65 ; X64-AVX2-NEXT: retq
80 ; X64-AVX2-LABEL: rotl_i64_const_shift:
81 ; X64-AVX2: # %bb.0:
82 ; X64-AVX2-NEXT: movq %rdi, %rax
83 ; X64-AVX2-NEXT: rolq $3, %rax
84 ; X64-AVX2-NEXT: retq
97 ; X64-AVX2-LABEL: rotl_i16:
98 ; X64-AVX2: # %bb.0:
99 ; X64-AVX2-NEXT: movl %esi, %ecx
100 ; X64-AVX2-NEXT: movl %edi, %eax
101 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
102 ; X64-AVX2-NEXT: rolw %cl, %ax
103 ; X64-AVX2-NEXT: # kill: def $ax killed $ax killed $eax
104 ; X64-AVX2-NEXT: retq
117 ; X64-AVX2-LABEL: rotl_i32:
118 ; X64-AVX2: # %bb.0:
119 ; X64-AVX2-NEXT: movl %esi, %ecx
120 ; X64-AVX2-NEXT: movl %edi, %eax
121 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
122 ; X64-AVX2-NEXT: roll %cl, %eax
123 ; X64-AVX2-NEXT: retq
150 ; X64-AVX2-LABEL: rotl_v4i32:
151 ; X64-AVX2: # %bb.0:
152 ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm2 = [31,31,31,31]
153 ; X64-AVX2-NEXT: vpand %xmm2, %xmm1, %xmm1
154 ; X64-AVX2-NEXT: vpsllvd %xmm1, %xmm0, %xmm2
155 ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm3 = [32,32,32,32]
156 ; X64-AVX2-NEXT: vpsubd %xmm1, %xmm3, %xmm1
157 ; X64-AVX2-NEXT: vpsrlvd %xmm1, %xmm0, %xmm0
158 ; X64-AVX2-NEXT: vpor %xmm0, %xmm2, %xmm0
159 ; X64-AVX2-NEXT: retq
175 ; X64-AVX2-LABEL: rotl_v4i32_const_shift:
176 ; X64-AVX2: # %bb.0:
177 ; X64-AVX2-NEXT: vpsrld $29, %xmm0, %xmm1
178 ; X64-AVX2-NEXT: vpslld $3, %xmm0, %xmm0
179 ; X64-AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
180 ; X64-AVX2-NEXT: retq
194 ; X64-AVX2-LABEL: rotr_i8_const_shift:
195 ; X64-AVX2: # %bb.0:
196 ; X64-AVX2-NEXT: movl %edi, %eax
197 ; X64-AVX2-NEXT: rorb $3, %al
198 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
199 ; X64-AVX2-NEXT: retq
211 ; X64-AVX2-LABEL: rotr_i8_const_shift1:
212 ; X64-AVX2: # %bb.0:
213 ; X64-AVX2-NEXT: movl %edi, %eax
214 ; X64-AVX2-NEXT: rorb %al
215 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
216 ; X64-AVX2-NEXT: retq
228 ; X64-AVX2-LABEL: rotr_i8_const_shift7:
229 ; X64-AVX2: # %bb.0:
230 ; X64-AVX2-NEXT: movl %edi, %eax
231 ; X64-AVX2-NEXT: rolb %al
232 ; X64-AVX2-NEXT: # kill: def $al killed $al killed $eax
233 ; X64-AVX2-NEXT: retq
245 ; X64-AVX2-LABEL: rotr_i32_const_shift:
246 ; X64-AVX2: # %bb.0:
247 ; X64-AVX2-NEXT: movl %edi, %eax
248 ; X64-AVX2-NEXT: rorl $3, %eax
249 ; X64-AVX2-NEXT: retq
264 ; X64-AVX2-LABEL: rotr_i16:
265 ; X64-AVX2: # %bb.0:
266 ; X64-AVX2-NEXT: movl %esi, %ecx
267 ; X64-AVX2-NEXT: movl %edi, %eax
268 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $ecx
269 ; X64-AVX2-NEXT: rorw %cl, %ax
270 ; X64-AVX2-NEXT: # kill: def $ax killed $ax killed $eax
271 ; X64-AVX2-NEXT: retq
309 ; X64-AVX2-LABEL: rotr_i64:
310 ; X64-AVX2: # %bb.0:
311 ; X64-AVX2-NEXT: movq %rsi, %rcx
312 ; X64-AVX2-NEXT: movq %rdi, %rax
313 ; X64-AVX2-NEXT: # kill: def $cl killed $cl killed $rcx
314 ; X64-AVX2-NEXT: rorq %cl, %rax
315 ; X64-AVX2-NEXT: retq
344 ; X64-AVX2-LABEL: rotr_v4i32:
345 ; X64-AVX2: # %bb.0:
346 ; X64-AVX2-NEXT: vpxor %xmm2, %xmm2, %xmm2
347 ; X64-AVX2-NEXT: vpsubd %xmm1, %xmm2, %xmm1
348 ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm2 = [31,31,31,31]
349 ; X64-AVX2-NEXT: vpand %xmm2, %xmm1, %xmm1
350 ; X64-AVX2-NEXT: vpsllvd %xmm1, %xmm0, %xmm2
351 ; X64-AVX2-NEXT: vpbroadcastd {{.*#+}} xmm3 = [32,32,32,32]
352 ; X64-AVX2-NEXT: vpsubd %xmm1, %xmm3, %xmm1
353 ; X64-AVX2-NEXT: vpsrlvd %xmm1, %xmm0, %xmm0
354 ; X64-AVX2-NEXT: vpor %xmm0, %xmm2, %xmm0
355 ; X64-AVX2-NEXT: retq
371 ; X64-AVX2-LABEL: rotr_v4i32_const_shift:
372 ; X64-AVX2: # %bb.0:
373 ; X64-AVX2-NEXT: vpsrld $3, %xmm0, %xmm1
374 ; X64-AVX2-NEXT: vpslld $29, %xmm0, %xmm0
375 ; X64-AVX2-NEXT: vpor %xmm1, %xmm0, %xmm0
376 ; X64-AVX2-NEXT: retq
387 ; X64-AVX2-LABEL: rotl_i32_shift_by_bitwidth:
388 ; X64-AVX2: # %bb.0:
389 ; X64-AVX2-NEXT: movl %edi, %eax
390 ; X64-AVX2-NEXT: retq
401 ; X64-AVX2-LABEL: rotr_i32_shift_by_bitwidth:
402 ; X64-AVX2: # %bb.0:
403 ; X64-AVX2-NEXT: movl %edi, %eax
404 ; X64-AVX2-NEXT: retq