Lines Matching refs:lshr
24 %shl = lshr i32 %shr, -2
42 %shr = lshr i32 %c, 7
71 %conv2 = lshr i32 %shl, 24
117 %B = lshr i232 %A, 231
118 %C = lshr i232 %B, 1
126 %B = lshr <2 x i32> %A, <i32 28, i32 28>
127 %C = lshr <2 x i32> %B, <i32 4, i32 4>
135 %B = lshr <2 x i32> %A, <i32 29, i32 28>
136 %C = lshr <2 x i32> %B, <i32 4, i32 5>
142 ; CHECK-NEXT: [[SH_DIFF:%.*]] = lshr i32 [[X:%.*]], 2
147 %rt = lshr i32 %x, 5
160 %rt = lshr i32 %x, 3
218 ; CHECK-NEXT: [[RT:%.*]] = lshr i32 [[X:%.*]], 5
224 %rt = lshr i32 %x, 5
233 ; CHECK-NEXT: [[RT:%.*]] = lshr i32 [[X:%.*]], 3
239 %rt = lshr i32 %x, 3
248 ; CHECK-NEXT: [[RT:%.*]] = lshr i32 [[X:%.*]], 5
254 %rt = lshr i32 %x, 5
263 ; CHECK-NEXT: [[RT:%.*]] = lshr i32 [[X:%.*]], 3
269 %rt = lshr i32 %x, 3
301 ; CHECK-NEXT: [[S:%.*]] = lshr i32 -33, [[X:%.*]]
303 ; CHECK-NEXT: [[R:%.*]] = lshr i32 536870907, [[X]]
306 %s = lshr i32 -33, %x
308 %r = lshr i32 %s, 3
314 ; CHECK-NEXT: [[R:%.*]] = lshr <3 x i8> <i8 4, i8 poison, i8 0>, [[X:%.*]]
317 %s = lshr <3 x i8> <i8 33, i8 -2, i8 1>, %x
318 %r = lshr <3 x i8> %s, <i8 3, i8 -1, i8 7>
349 ; CHECK-NEXT: [[DIV1:%.*]] = lshr i32 [[A:%.*]], [[TMP1]]
361 ; CHECK-NEXT: [[R:%.*]] = lshr i32 [[S]], 3
365 %r = lshr i32 %s, 3
382 ; CHECK-NEXT: [[S:%.*]] = lshr i32 -33, [[X:%.*]]
386 %s = lshr i32 -33, %x
393 ; CHECK-NEXT: [[S:%.*]] = lshr i32 -33, [[X:%.*]]
397 %s = lshr i32 -33, %x
416 ; CHECK-NEXT: [[R:%.*]] = lshr i32 [[S]], 3
420 %r = lshr i32 %s, 3
424 ; Pre-shift a constant to eliminate lshr.
433 %lshr = lshr i8 %shl, 3
434 %r = or i8 %lshr, 224 ; 0b1110_0000
438 ; Pre-shift a constant to eliminate disguised lshr.
450 %lshr = ashr i8 %shl, 3
451 %r = or i8 %lshr, 224 ; 0b1110_0000
460 ; CHECK-NEXT: [[LSHR:%.*]] = lshr exact i8 [[SHL]], 3
465 %lshr = lshr i8 %shl, 3
466 %r = or i8 %lshr, 192 ; 0b1100_0000
475 ; CHECK-NEXT: [[LSHR:%.*]] = lshr i8 [[SHL]], 3
480 %lshr = lshr i8 %shl, 3
481 %r = or i8 %lshr, 224 ; 0b1110_0000
494 %lshr = lshr <2 x i8> %shl, <i8 2, i8 2>
495 %r = trunc <2 x i8> %lshr to <2 x i6>
504 ; CHECK-NEXT: [[LSHR:%.*]] = lshr <2 x i8> [[SHL]], <i8 2, i8 2>
509 %lshr = lshr <2 x i8> %shl, <i8 2, i8 2>
510 %r = trunc <2 x i8> %lshr to <2 x i6>
519 ; CHECK-NEXT: [[LSHR:%.*]] = lshr <2 x i8> [[SHL]], <i8 undef, i8 2>
524 %lshr = lshr <2 x i8> %shl, <i8 undef, i8 2>
525 %r = trunc <2 x i8> %lshr to <2 x i6>
534 ; CHECK-NEXT: [[LSHR:%.*]] = lshr <2 x i8> [[SHL]], <i8 1, i8 2>
539 %lshr = lshr <2 x i8> %shl, <i8 1, i8 2>
540 %r = trunc <2 x i8> %lshr to <2 x i6>
553 %lshr = lshr <2 x i8> %shl, <i8 2, i8 2>
554 %r = trunc <2 x i8> %lshr to <2 x i6>
563 ; CHECK-NEXT: [[LSHR:%.*]] = lshr <2 x i8> [[SHL]], <i8 3, i8 2>
568 %lshr = lshr <2 x i8> %shl, <i8 3, i8 2>
569 %r = trunc <2 x i8> %lshr to <2 x i6>
582 %lshr = lshr i16 %shl, 4
583 %r = and i16 %lshr, 4094 ; 0b0000_1111_1111_1110
591 ; CHECK-NEXT: [[TMP1:%.*]] = lshr i8 -32, [[X:%.*]]
595 %shr = lshr i8 28, %x ; 0b0001_1100
601 ; Extra use on lshr is ok and 'and' is another demand limiter.
605 ; CHECK-NEXT: [[SHR:%.*]] = lshr i8 28, [[X:%.*]]
607 ; CHECK-NEXT: [[TMP1:%.*]] = lshr i8 -32, [[X]]
611 %shr = lshr i8 28, %x ; 0b0001_1100
622 ; CHECK-NEXT: [[SHR:%.*]] = lshr i8 28, [[X:%.*]]
627 %shr = lshr i8 28, %x ; 0b0001_1100
637 ; CHECK-NEXT: [[SHR:%.*]] = lshr i8 60, [[X:%.*]]
642 %shr = lshr i8 60, %x ; 0b0011_1100
652 ; CHECK-NEXT: [[TMP1:%.*]] = lshr <2 x i8> <i8 -76, i8 -76>, [[X:%.*]]
656 %shr = lshr <2 x i8> <i8 45, i8 45>, %x ; 0b0010_1101
666 ; CHECK-NEXT: [[SHR:%.*]] = lshr <2 x i8> <i8 45, i8 45>, [[X:%.*]]
671 %shr = lshr <2 x i8> <i8 45, i8 45>, %x ; 0b0010_1101
681 ; CHECK-NEXT: [[SHR:%.*]] = lshr <2 x i8> <i8 undef, i8 45>, [[X:%.*]]
686 %shr = lshr <2 x i8> <i8 undef, i8 45>, %x ; 0b0010_1101
696 ; CHECK-NEXT: [[SHR:%.*]] = lshr <2 x i8> <i8 45, i8 45>, [[X:%.*]]
701 %shr = lshr <2 x i8> <i8 45, i8 45>, %x ; 0b0010_1101
707 ; non-splat lshr constant is ok.
711 ; CHECK-NEXT: [[TMP1:%.*]] = lshr <2 x i8> <i8 -76, i8 52>, [[X:%.*]]
715 %shr = lshr <2 x i8> <i8 45, i8 13>, %x ; 0b0010_1101. 0b0000_1101
725 ; CHECK-NEXT: [[SHR:%.*]] = lshr <2 x i8> <i8 45, i8 13>, [[X:%.*]]
730 %shr = lshr <2 x i8> <i8 45, i8 13>, %x ; 0b0010_1101. 0b0000_1101