Lines Matching refs:BMI
3 …RUN: llc -mtriple=x86_64-unknown-linux-gnu -mattr=+bmi < %s | FileCheck %s --check-prefix=CHECK-BMI
21 ; CHECK-BMI-LABEL: out8_constmask:
22 ; CHECK-BMI: # %bb.0:
23 ; CHECK-BMI-NEXT: # kill: def $esi killed $esi def $rsi
24 ; CHECK-BMI-NEXT: # kill: def $edi killed $edi def $rdi
25 ; CHECK-BMI-NEXT: andb $85, %dil
26 ; CHECK-BMI-NEXT: andb $-86, %sil
27 ; CHECK-BMI-NEXT: leal (%rsi,%rdi), %eax
28 ; CHECK-BMI-NEXT: # kill: def $al killed $al killed $eax
29 ; CHECK-BMI-NEXT: retq
47 ; CHECK-BMI-LABEL: out16_constmask:
48 ; CHECK-BMI: # %bb.0:
49 ; CHECK-BMI-NEXT: # kill: def $esi killed $esi def $rsi
50 ; CHECK-BMI-NEXT: # kill: def $edi killed $edi def $rdi
51 ; CHECK-BMI-NEXT: andl $21845, %edi # imm = 0x5555
52 ; CHECK-BMI-NEXT: andl $-21846, %esi # imm = 0xAAAA
53 ; CHECK-BMI-NEXT: leal (%rsi,%rdi), %eax
54 ; CHECK-BMI-NEXT: # kill: def $ax killed $ax killed $eax
55 ; CHECK-BMI-NEXT: retq
72 ; CHECK-BMI-LABEL: out32_constmask:
73 ; CHECK-BMI: # %bb.0:
74 ; CHECK-BMI-NEXT: # kill: def $esi killed $esi def $rsi
75 ; CHECK-BMI-NEXT: # kill: def $edi killed $edi def $rdi
76 ; CHECK-BMI-NEXT: andl $1431655765, %edi # imm = 0x55555555
77 ; CHECK-BMI-NEXT: andl $-1431655766, %esi # imm = 0xAAAAAAAA
78 ; CHECK-BMI-NEXT: leal (%rsi,%rdi), %eax
79 ; CHECK-BMI-NEXT: retq
96 ; CHECK-BMI-LABEL: out64_constmask:
97 ; CHECK-BMI: # %bb.0:
98 ; CHECK-BMI-NEXT: movabsq $6148914691236517205, %rcx # imm = 0x5555555555555555
99 ; CHECK-BMI-NEXT: andq %rdi, %rcx
100 ; CHECK-BMI-NEXT: movabsq $-6148914691236517206, %rax # imm = 0xAAAAAAAAAAAAAAAA
101 ; CHECK-BMI-NEXT: andq %rsi, %rax
102 ; CHECK-BMI-NEXT: orq %rcx, %rax
103 ; CHECK-BMI-NEXT: retq
124 ; CHECK-BMI-LABEL: in8_constmask:
125 ; CHECK-BMI: # %bb.0:
126 ; CHECK-BMI-NEXT: movl %esi, %eax
127 ; CHECK-BMI-NEXT: xorl %esi, %edi
128 ; CHECK-BMI-NEXT: andb $85, %dil
129 ; CHECK-BMI-NEXT: xorb %dil, %al
130 ; CHECK-BMI-NEXT: # kill: def $al killed $al killed $eax
131 ; CHECK-BMI-NEXT: retq
148 ; CHECK-BMI-LABEL: in16_constmask:
149 ; CHECK-BMI: # %bb.0:
150 ; CHECK-BMI-NEXT: movl %edi, %eax
151 ; CHECK-BMI-NEXT: xorl %esi, %eax
152 ; CHECK-BMI-NEXT: andl $21845, %eax # imm = 0x5555
153 ; CHECK-BMI-NEXT: xorl %esi, %eax
154 ; CHECK-BMI-NEXT: # kill: def $ax killed $ax killed $eax
155 ; CHECK-BMI-NEXT: retq
171 ; CHECK-BMI-LABEL: in32_constmask:
172 ; CHECK-BMI: # %bb.0:
173 ; CHECK-BMI-NEXT: movl %edi, %eax
174 ; CHECK-BMI-NEXT: xorl %esi, %eax
175 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
176 ; CHECK-BMI-NEXT: xorl %esi, %eax
177 ; CHECK-BMI-NEXT: retq
193 ; CHECK-BMI-LABEL: in64_constmask:
194 ; CHECK-BMI: # %bb.0:
195 ; CHECK-BMI-NEXT: xorq %rsi, %rdi
196 ; CHECK-BMI-NEXT: movabsq $6148914691236517205, %rax # imm = 0x5555555555555555
197 ; CHECK-BMI-NEXT: andq %rdi, %rax
198 ; CHECK-BMI-NEXT: xorq %rsi, %rax
199 ; CHECK-BMI-NEXT: retq
219 ; CHECK-BMI-LABEL: in_constmask_commutativity_0_1:
220 ; CHECK-BMI: # %bb.0:
221 ; CHECK-BMI-NEXT: movl %edi, %eax
222 ; CHECK-BMI-NEXT: xorl %esi, %eax
223 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
224 ; CHECK-BMI-NEXT: xorl %esi, %eax
225 ; CHECK-BMI-NEXT: retq
241 ; CHECK-BMI-LABEL: in_constmask_commutativity_1_0:
242 ; CHECK-BMI: # %bb.0:
243 ; CHECK-BMI-NEXT: movl %esi, %eax
244 ; CHECK-BMI-NEXT: xorl %edi, %eax
245 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
246 ; CHECK-BMI-NEXT: xorl %edi, %eax
247 ; CHECK-BMI-NEXT: retq
263 ; CHECK-BMI-LABEL: in_constmask_commutativity_1_1:
264 ; CHECK-BMI: # %bb.0:
265 ; CHECK-BMI-NEXT: movl %esi, %eax
266 ; CHECK-BMI-NEXT: xorl %edi, %eax
267 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
268 ; CHECK-BMI-NEXT: xorl %edi, %eax
269 ; CHECK-BMI-NEXT: retq
290 ; CHECK-BMI-LABEL: in_complex_y0_constmask:
291 ; CHECK-BMI: # %bb.0:
292 ; CHECK-BMI-NEXT: movl %edi, %eax
293 ; CHECK-BMI-NEXT: andl %edx, %esi
294 ; CHECK-BMI-NEXT: xorl %esi, %eax
295 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
296 ; CHECK-BMI-NEXT: xorl %esi, %eax
297 ; CHECK-BMI-NEXT: retq
315 ; CHECK-BMI-LABEL: in_complex_y1_constmask:
316 ; CHECK-BMI: # %bb.0:
317 ; CHECK-BMI-NEXT: movl %edi, %eax
318 ; CHECK-BMI-NEXT: andl %edx, %esi
319 ; CHECK-BMI-NEXT: xorl %esi, %eax
320 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
321 ; CHECK-BMI-NEXT: xorl %esi, %eax
322 ; CHECK-BMI-NEXT: retq
357 ; CHECK-BMI-LABEL: in_multiuse_A_constmask:
358 ; CHECK-BMI: # %bb.0:
359 ; CHECK-BMI-NEXT: pushq %rbp
360 ; CHECK-BMI-NEXT: pushq %rbx
361 ; CHECK-BMI-NEXT: pushq %rax
362 ; CHECK-BMI-NEXT: movl %esi, %ebx
363 ; CHECK-BMI-NEXT: movl %edi, %ebp
364 ; CHECK-BMI-NEXT: xorl %esi, %ebp
365 ; CHECK-BMI-NEXT: andl $1431655765, %ebp # imm = 0x55555555
366 ; CHECK-BMI-NEXT: movl %ebp, %edi
367 ; CHECK-BMI-NEXT: callq use32
368 ; CHECK-BMI-NEXT: xorl %ebx, %ebp
369 ; CHECK-BMI-NEXT: movl %ebp, %eax
370 ; CHECK-BMI-NEXT: addq $8, %rsp
371 ; CHECK-BMI-NEXT: popq %rbx
372 ; CHECK-BMI-NEXT: popq %rbp
373 ; CHECK-BMI-NEXT: retq
399 ; CHECK-BMI-LABEL: in_multiuse_B_constmask:
400 ; CHECK-BMI: # %bb.0:
401 ; CHECK-BMI-NEXT: pushq %rbp
402 ; CHECK-BMI-NEXT: pushq %rbx
403 ; CHECK-BMI-NEXT: pushq %rax
404 ; CHECK-BMI-NEXT: movl %esi, %ebx
405 ; CHECK-BMI-NEXT: xorl %esi, %edi
406 ; CHECK-BMI-NEXT: movl %edi, %ebp
407 ; CHECK-BMI-NEXT: andl $1431655765, %ebp # imm = 0x55555555
408 ; CHECK-BMI-NEXT: callq use32
409 ; CHECK-BMI-NEXT: xorl %ebx, %ebp
410 ; CHECK-BMI-NEXT: movl %ebp, %eax
411 ; CHECK-BMI-NEXT: addq $8, %rsp
412 ; CHECK-BMI-NEXT: popq %rbx
413 ; CHECK-BMI-NEXT: popq %rbp
414 ; CHECK-BMI-NEXT: retq
433 ; CHECK-BMI-LABEL: n0_badconstmask:
434 ; CHECK-BMI: # %bb.0:
435 ; CHECK-BMI-NEXT: movl %esi, %eax
436 ; CHECK-BMI-NEXT: andl $1431655765, %edi # imm = 0x55555555
437 ; CHECK-BMI-NEXT: andl $-1431655765, %eax # imm = 0xAAAAAAAB
438 ; CHECK-BMI-NEXT: orl %edi, %eax
439 ; CHECK-BMI-NEXT: retq
455 ; CHECK-BMI-LABEL: n1_thirdvar_constmask:
456 ; CHECK-BMI: # %bb.0:
457 ; CHECK-BMI-NEXT: movl %edi, %eax
458 ; CHECK-BMI-NEXT: xorl %esi, %eax
459 ; CHECK-BMI-NEXT: andl $1431655765, %eax # imm = 0x55555555
460 ; CHECK-BMI-NEXT: xorl %edx, %eax
461 ; CHECK-BMI-NEXT: retq