@@ -125,10 +125,8 @@ define i64 @fshr_select_no_combine(i64 %a, i64 %b, i64 %c) {
125
125
; (select (icmp x, 0, eq), 0, (sdiv x, y)) -> (sdiv x, y)
126
126
define i64 @sdiv_select (i64 %a , i64 %b ) {
127
127
; CHECK-LABEL: @sdiv_select(
128
- ; CHECK-NEXT: [[COND:%.*]] = icmp eq i64 [[A:%.*]], 0
129
- ; CHECK-NEXT: [[DIV:%.*]] = sdiv i64 [[A]], [[B_FR:%.*]]
130
- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i64 0, i64 [[DIV]]
131
- ; CHECK-NEXT: ret i64 [[SELECT]]
128
+ ; CHECK-NEXT: [[DIV:%.*]] = sdiv i64 [[A:%.*]], [[B_FR:%.*]]
129
+ ; CHECK-NEXT: ret i64 [[DIV]]
132
130
;
133
131
%cond = icmp eq i64 %a , 0
134
132
%div = sdiv i64 %a , %b
@@ -139,10 +137,8 @@ define i64 @sdiv_select(i64 %a, i64 %b) {
139
137
; (select (icmp x, 0, eq), 0, (udiv x, y)) -> (udiv x, y)
140
138
define i64 @udiv_select (i64 %a , i64 %b ) {
141
139
; CHECK-LABEL: @udiv_select(
142
- ; CHECK-NEXT: [[COND:%.*]] = icmp eq i64 [[A:%.*]], 0
143
- ; CHECK-NEXT: [[DIV:%.*]] = udiv i64 [[A]], [[B_FR:%.*]]
144
- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i64 0, i64 [[DIV]]
145
- ; CHECK-NEXT: ret i64 [[SELECT]]
140
+ ; CHECK-NEXT: [[DIV:%.*]] = udiv i64 [[A:%.*]], [[B_FR:%.*]]
141
+ ; CHECK-NEXT: ret i64 [[DIV]]
146
142
;
147
143
%cond = icmp eq i64 %a , 0
148
144
%div = udiv i64 %a , %b
@@ -153,10 +149,8 @@ define i64 @udiv_select(i64 %a, i64 %b) {
153
149
; (select (icmp x, 0, eq), 0, (srem x, y)) -> (srem x, y)
154
150
define i64 @srem_select (i64 %a , i64 %b ) {
155
151
; CHECK-LABEL: @srem_select(
156
- ; CHECK-NEXT: [[COND:%.*]] = icmp eq i64 [[A:%.*]], 0
157
- ; CHECK-NEXT: [[REM:%.*]] = srem i64 [[A]], [[B:%.*]]
158
- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i64 0, i64 [[REM]]
159
- ; CHECK-NEXT: ret i64 [[SELECT]]
152
+ ; CHECK-NEXT: [[REM:%.*]] = srem i64 [[A:%.*]], [[B:%.*]]
153
+ ; CHECK-NEXT: ret i64 [[REM]]
160
154
;
161
155
%cond = icmp eq i64 %a , 0
162
156
%rem = srem i64 %a , %b
@@ -167,10 +161,8 @@ define i64 @srem_select(i64 %a, i64 %b) {
167
161
; (select (icmp x, 0, eq), 0, (urem x, y)) -> (urem x, y)
168
162
define i64 @urem_select (i64 %a , i64 %b ) {
169
163
; CHECK-LABEL: @urem_select(
170
- ; CHECK-NEXT: [[COND:%.*]] = icmp eq i64 [[A:%.*]], 0
171
- ; CHECK-NEXT: [[REM:%.*]] = urem i64 [[A]], [[B:%.*]]
172
- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], i64 0, i64 [[REM]]
173
- ; CHECK-NEXT: ret i64 [[SELECT]]
164
+ ; CHECK-NEXT: [[REM:%.*]] = urem i64 [[A:%.*]], [[B:%.*]]
165
+ ; CHECK-NEXT: ret i64 [[REM]]
174
166
;
175
167
%cond = icmp eq i64 %a , 0
176
168
%rem = urem i64 %a , %b
0 commit comments