File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
llvm/test/Transforms/InstCombine Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -1301,3 +1301,46 @@ define i32 @udiv_select_of_constants_divisor(i1 %b, i32 %x) {
1301
1301
%r = udiv i32 %x , %s
1302
1302
ret i32 %r
1303
1303
}
1304
+
1305
+ ; PR34063
1306
+ ; 1 / X !=/== -1
1307
+
1308
+ define i1 @sdiv_one_icmpeq_one (i32 %x ) {
1309
+ ; CHECK-LABEL: @sdiv_one_icmpeq_one(
1310
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 1
1311
+ ; CHECK-NEXT: ret i1 [[TMP1]]
1312
+ ;
1313
+ %A = sdiv i32 1 , %x
1314
+ %B = icmp eq i32 %A , 1
1315
+ ret i1 %B
1316
+ }
1317
+
1318
+ define i1 @sdiv_one_icmpeq_negone (i32 %x ) {
1319
+ ; CHECK-LABEL: @sdiv_one_icmpeq_negone(
1320
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], -1
1321
+ ; CHECK-NEXT: ret i1 [[TMP1]]
1322
+ ;
1323
+ %A = sdiv i32 1 , %x
1324
+ %B = icmp eq i32 %A , -1
1325
+ ret i1 %B
1326
+ }
1327
+
1328
+ define i1 @udiv_one_icmpeq_one (i32 %x ) {
1329
+ ; CHECK-LABEL: @udiv_one_icmpeq_one(
1330
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 1
1331
+ ; CHECK-NEXT: ret i1 [[TMP1]]
1332
+ ;
1333
+ %A = udiv i32 1 , %x
1334
+ %B = icmp eq i32 %A , 1
1335
+ ret i1 %B
1336
+ }
1337
+
1338
+ define i1 @udiv_one_icmpne_one (i32 %x ) {
1339
+ ; CHECK-LABEL: @udiv_one_icmpne_one(
1340
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp ne i32 [[X:%.*]], 1
1341
+ ; CHECK-NEXT: ret i1 [[TMP1]]
1342
+ ;
1343
+ %A = udiv i32 1 , %x
1344
+ %B = icmp ne i32 %A , 1
1345
+ ret i1 %B
1346
+ }
You can’t perform that action at this time.
0 commit comments