Lines Matching refs:MASK
3 ; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s --check-prefixes=X64,X64-MASK
15 ; fold (shl (lshr x, c1), c2) -> (0) (and x, MASK) or
16 ; (1) (and (shl x, (sub c2, c1), MASK) or
17 ; (2) (and (lshr x, (sub c1, c2), MASK)
46 ; X64-MASK-LABEL: test_i8_shl_lshr_1:
47 ; X64-MASK: # %bb.0:
48 ; X64-MASK-NEXT: # kill: def $edi killed $edi def $rdi
49 ; X64-MASK-NEXT: leal (,%rdi,4), %eax
50 ; X64-MASK-NEXT: andb $-32, %al
51 ; X64-MASK-NEXT: # kill: def $al killed $al killed $eax
52 ; X64-MASK-NEXT: retq
74 ; X64-MASK-LABEL: test_i8_shl_lshr_2:
75 ; X64-MASK: # %bb.0:
76 ; X64-MASK-NEXT: movl %edi, %eax
77 ; X64-MASK-NEXT: shrb $2, %al
78 ; X64-MASK-NEXT: andb $56, %al
79 ; X64-MASK-NEXT: # kill: def $al killed $al killed $eax
80 ; X64-MASK-NEXT: retq
122 ; X64-MASK-LABEL: test_i16_shl_lshr_1:
123 ; X64-MASK: # %bb.0:
124 ; X64-MASK-NEXT: # kill: def $edi killed $edi def $rdi
125 ; X64-MASK-NEXT: leal (,%rdi,4), %eax
126 ; X64-MASK-NEXT: andl $65504, %eax # imm = 0xFFE0
127 ; X64-MASK-NEXT: # kill: def $ax killed $ax killed $eax
128 ; X64-MASK-NEXT: retq
151 ; X64-MASK-LABEL: test_i16_shl_lshr_2:
152 ; X64-MASK: # %bb.0:
153 ; X64-MASK-NEXT: movl %edi, %eax
154 ; X64-MASK-NEXT: shrl $2, %eax
155 ; X64-MASK-NEXT: andl $16376, %eax # imm = 0x3FF8
156 ; X64-MASK-NEXT: # kill: def $ax killed $ax killed $eax
157 ; X64-MASK-NEXT: retq
196 ; X64-MASK-LABEL: test_i32_shl_lshr_1:
197 ; X64-MASK: # %bb.0:
198 ; X64-MASK-NEXT: # kill: def $edi killed $edi def $rdi
199 ; X64-MASK-NEXT: leal (,%rdi,4), %eax
200 ; X64-MASK-NEXT: andl $-32, %eax
201 ; X64-MASK-NEXT: retq
222 ; X64-MASK-LABEL: test_i32_shl_lshr_2:
223 ; X64-MASK: # %bb.0:
224 ; X64-MASK-NEXT: movl %edi, %eax
225 ; X64-MASK-NEXT: shrl $2, %eax
226 ; X64-MASK-NEXT: andl $-8, %eax
227 ; X64-MASK-NEXT: retq
268 ; X64-MASK-LABEL: test_i64_shl_lshr_1:
269 ; X64-MASK: # %bb.0:
270 ; X64-MASK-NEXT: leaq (,%rdi,4), %rax
271 ; X64-MASK-NEXT: andq $-32, %rax
272 ; X64-MASK-NEXT: retq
295 ; X64-MASK-LABEL: test_i64_shl_lshr_2:
296 ; X64-MASK: # %bb.0:
297 ; X64-MASK-NEXT: movq %rdi, %rax
298 ; X64-MASK-NEXT: shrq $2, %rax
299 ; X64-MASK-NEXT: andq $-8, %rax
300 ; X64-MASK-NEXT: retq
313 ; fold (lshr (shl x, c1), c2) -> (0) (and x, MASK) or
314 ; (1) (and (shl x, (sub c1, c2), MASK) or
315 ; (2) (and (lshr x, (sub c2, c1), MASK)
344 ; X64-MASK-LABEL: test_i8_lshr_lshr_1:
345 ; X64-MASK: # %bb.0:
346 ; X64-MASK-NEXT: movl %edi, %eax
347 ; X64-MASK-NEXT: shrb $2, %al
348 ; X64-MASK-NEXT: andb $7, %al
349 ; X64-MASK-NEXT: # kill: def $al killed $al killed $eax
350 ; X64-MASK-NEXT: retq
372 ; X64-MASK-LABEL: test_i8_lshr_lshr_2:
373 ; X64-MASK: # %bb.0:
374 ; X64-MASK-NEXT: # kill: def $edi killed $edi def $rdi
375 ; X64-MASK-NEXT: leal (,%rdi,4), %eax
376 ; X64-MASK-NEXT: andb $28, %al
377 ; X64-MASK-NEXT: # kill: def $al killed $al killed $eax
378 ; X64-MASK-NEXT: retq
420 ; X64-MASK-LABEL: test_i16_lshr_lshr_1:
421 ; X64-MASK: # %bb.0:
422 ; X64-MASK-NEXT: movl %edi, %eax
423 ; X64-MASK-NEXT: shrl $2, %eax
424 ; X64-MASK-NEXT: andl $2047, %eax # imm = 0x7FF
425 ; X64-MASK-NEXT: # kill: def $ax killed $ax killed $eax
426 ; X64-MASK-NEXT: retq
499 ; X64-MASK-LABEL: test_i32_lshr_lshr_1:
500 ; X64-MASK: # %bb.0:
501 ; X64-MASK-NEXT: movl %edi, %eax
502 ; X64-MASK-NEXT: shrl $2, %eax
503 ; X64-MASK-NEXT: andl $134217727, %eax # imm = 0x7FFFFFF
504 ; X64-MASK-NEXT: retq
525 ; X64-MASK-LABEL: test_i32_lshr_lshr_2:
526 ; X64-MASK: # %bb.0:
527 ; X64-MASK-NEXT: # kill: def $edi killed $edi def $rdi
528 ; X64-MASK-NEXT: leal (,%rdi,4), %eax
529 ; X64-MASK-NEXT: andl $536870908, %eax # imm = 0x1FFFFFFC
530 ; X64-MASK-NEXT: retq
551 ; X64-MASK-LABEL: test_i64_lshr_lshr_0:
552 ; X64-MASK: # %bb.0:
553 ; X64-MASK-NEXT: movabsq $2305843009213693951, %rax # imm = 0x1FFFFFFFFFFFFFFF
554 ; X64-MASK-NEXT: andq %rdi, %rax
555 ; X64-MASK-NEXT: retq
594 ; X64-MASK-LABEL: test_i64_lshr_lshr_1:
595 ; X64-MASK: # %bb.0:
596 ; X64-MASK-NEXT: shrq $2, %rdi
597 ; X64-MASK-NEXT: movabsq $576460752303423487, %rax # imm = 0x7FFFFFFFFFFFFFF
598 ; X64-MASK-NEXT: andq %rdi, %rax
599 ; X64-MASK-NEXT: retq
621 ; X64-MASK-LABEL: test_i64_lshr_lshr_2:
622 ; X64-MASK: # %bb.0:
623 ; X64-MASK-NEXT: leaq (,%rdi,4), %rcx
624 ; X64-MASK-NEXT: movabsq $2305843009213693948, %rax # imm = 0x1FFFFFFFFFFFFFFC
625 ; X64-MASK-NEXT: andq %rcx, %rax
626 ; X64-MASK-NEXT: retq