3
3
4
4
define i1 @remove_shift_nuw_ab (i8 %a , i8 %b , i8 %s ) {
5
5
; CHECK-LABEL: @remove_shift_nuw_ab(
6
- ; CHECK-NEXT: [[T:%.*]] = shl nuw i8 [[A:%.*]], [[S:%.*]]
7
- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T]], [[B:%.*]]
6
+ ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T:%.*]], [[B:%.*]]
8
7
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
9
8
; CHECK-NEXT: ret i1 [[IC]]
10
9
;
@@ -16,8 +15,7 @@ define i1 @remove_shift_nuw_ab(i8 %a, i8 %b, i8 %s) {
16
15
17
16
define i1 @remove_shift_nuw_ba (i8 %a , i8 %b , i8 %s ) {
18
17
; CHECK-LABEL: @remove_shift_nuw_ba(
19
- ; CHECK-NEXT: [[T:%.*]] = shl nuw i8 [[A:%.*]], [[S:%.*]]
20
- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[B:%.*]], [[T]]
18
+ ; CHECK-NEXT: [[OR:%.*]] = or i8 [[B:%.*]], [[T:%.*]]
21
19
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
22
20
; CHECK-NEXT: ret i1 [[IC]]
23
21
;
@@ -29,8 +27,7 @@ define i1 @remove_shift_nuw_ba(i8 %a, i8 %b, i8 %s) {
29
27
30
28
define i1 @remove_shift_nsw (i8 %a , i8 %b , i8 %s ) {
31
29
; CHECK-LABEL: @remove_shift_nsw(
32
- ; CHECK-NEXT: [[T:%.*]] = shl nsw i8 [[A:%.*]], [[S:%.*]]
33
- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T]], [[B:%.*]]
30
+ ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T:%.*]], [[B:%.*]]
34
31
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
35
32
; CHECK-NEXT: ret i1 [[IC]]
36
33
;
@@ -42,8 +39,7 @@ define i1 @remove_shift_nsw(i8 %a, i8 %b, i8 %s) {
42
39
43
40
define i1 @remove_shift_nuw_ne (i8 %a , i8 %b , i8 %s ) {
44
41
; CHECK-LABEL: @remove_shift_nuw_ne(
45
- ; CHECK-NEXT: [[T:%.*]] = shl nuw i8 [[A:%.*]], [[S:%.*]]
46
- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T]], [[B:%.*]]
42
+ ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T:%.*]], [[B:%.*]]
47
43
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
48
44
; CHECK-NEXT: ret i1 [[IC]]
49
45
;
@@ -55,8 +51,7 @@ define i1 @remove_shift_nuw_ne(i8 %a, i8 %b, i8 %s) {
55
51
56
52
define i1 @remove_shift_nsw_ne (i8 %a , i8 %b , i8 %s ) {
57
53
; CHECK-LABEL: @remove_shift_nsw_ne(
58
- ; CHECK-NEXT: [[T:%.*]] = shl nsw i8 [[A:%.*]], [[S:%.*]]
59
- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T]], [[B:%.*]]
54
+ ; CHECK-NEXT: [[OR:%.*]] = or i8 [[T:%.*]], [[B:%.*]]
60
55
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
61
56
; CHECK-NEXT: ret i1 [[IC]]
62
57
;
@@ -81,9 +76,8 @@ define i1 @remove_shift_wraps(i8 %a, i8 %b, i8 %s) {
81
76
82
77
define i1 @remove_shift_chain_d (i8 %a , i8 %b , i8 %c , i8 %d , i8 %s ) {
83
78
; CHECK-LABEL: @remove_shift_chain_d(
84
- ; CHECK-NEXT: [[DT:%.*]] = shl nuw i8 [[D:%.*]], [[S:%.*]]
85
79
; CHECK-NEXT: [[OR1:%.*]] = or i8 [[A:%.*]], [[B:%.*]]
86
- ; CHECK-NEXT: [[OR2:%.*]] = or i8 [[C:%.*]], [[DT]]
80
+ ; CHECK-NEXT: [[OR2:%.*]] = or i8 [[C:%.*]], [[DT:%.* ]]
87
81
; CHECK-NEXT: [[OR:%.*]] = or i8 [[OR1]], [[OR2]]
88
82
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
89
83
; CHECK-NEXT: ret i1 [[IC]]
@@ -98,12 +92,8 @@ define i1 @remove_shift_chain_d(i8 %a, i8 %b, i8 %c, i8 %d, i8 %s) {
98
92
99
93
define i1 @remove_shift_chain_abcd (i8 %a , i8 %b , i8 %c , i8 %d , i8 %s ) {
100
94
; CHECK-LABEL: @remove_shift_chain_abcd(
101
- ; CHECK-NEXT: [[AT:%.*]] = shl nuw i8 [[A:%.*]], [[S:%.*]]
102
- ; CHECK-NEXT: [[BT:%.*]] = shl nuw i8 [[B:%.*]], 2
103
- ; CHECK-NEXT: [[CT:%.*]] = shl nuw i8 [[C:%.*]], 1
104
- ; CHECK-NEXT: [[DT:%.*]] = shl nuw i8 [[D:%.*]], [[S]]
105
- ; CHECK-NEXT: [[OR1:%.*]] = or i8 [[AT]], [[BT]]
106
- ; CHECK-NEXT: [[OR2:%.*]] = or i8 [[CT]], [[DT]]
95
+ ; CHECK-NEXT: [[OR1:%.*]] = or i8 [[AT:%.*]], [[BT:%.*]]
96
+ ; CHECK-NEXT: [[OR2:%.*]] = or i8 [[CT:%.*]], [[DT:%.*]]
107
97
; CHECK-NEXT: [[OR:%.*]] = or i8 [[OR1]], [[OR2]]
108
98
; CHECK-NEXT: [[IC:%.*]] = icmp eq i8 [[OR]], 0
109
99
; CHECK-NEXT: ret i1 [[IC]]
0 commit comments