@@ -925,18 +925,15 @@ define i8 @udiv_by_zero(i8 %x, i8 %i, i8 %v) {
925925; CHECK-LABEL: @udiv_by_zero(
926926; CHECK-NEXT: entry:
927927; CHECK-NEXT: switch i8 [[I:%.*]], label [[SW_DEFAULT:%.*]] [
928- ; CHECK-NEXT: i8 0, label [[RETURN:%.*]]
929- ; CHECK-NEXT: i8 2, label [[SW_BB1:%.*]]
930928; CHECK-NEXT: i8 9, label [[SW_BB2:%.*]]
929+ ; CHECK-NEXT: i8 2, label [[RETURN:%.*]]
931930; CHECK-NEXT: ]
932- ; CHECK: sw.bb1:
933- ; CHECK-NEXT: br label [[RETURN]]
934931; CHECK: sw.bb2:
935932; CHECK-NEXT: br label [[RETURN]]
936933; CHECK: sw.default:
937934; CHECK-NEXT: br label [[RETURN]]
938935; CHECK: return:
939- ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ 2, [[SW_BB1]] ], [ 9, [[SW_BB2]] ], [ [[V:%.*]], [[SW_DEFAULT]] ], [ 0 , [[ENTRY:%.*]] ]
936+ ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ 9, [[SW_BB2]] ], [ [[V:%.*]], [[SW_DEFAULT]] ], [ 2 , [[ENTRY:%.*]] ]
940937; CHECK-NEXT: [[R:%.*]] = udiv i8 [[X:%.*]], [[Y]]
941938; CHECK-NEXT: ret i8 [[R]]
942939;
@@ -976,9 +973,9 @@ define i8 @urem_by_zero(i8 %x, i8 %i, i8 %v) {
976973; CHECK: sw.bb2:
977974; CHECK-NEXT: br label [[RETURN]]
978975; CHECK: sw.default:
979- ; CHECK-NEXT: br label [[RETURN]]
976+ ; CHECK-NEXT: unreachable
980977; CHECK: return:
981- ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ 2, [[SW_BB1]] ], [ 9, [[SW_BB2]] ], [ 0, [[SW_DEFAULT]] ], [ [[V:%.*]], [[ENTRY:%.*]] ]
978+ ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ 2, [[SW_BB1]] ], [ 9, [[SW_BB2]] ], [ [[V:%.*]], [[ENTRY:%.*]] ]
982979; CHECK-NEXT: [[R:%.*]] = urem i8 [[X:%.*]], [[Y]]
983980; CHECK-NEXT: ret i8 [[R]]
984981;
@@ -1054,13 +1051,10 @@ define i8 @srem_by_zero(i8 %x, i8 %i) {
10541051; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
10551052; CHECK: if.then:
10561053; CHECK-NEXT: call void @side.effect()
1057- ; CHECK-NEXT: br label [[IF_END:%.*]]
1054+ ; CHECK-NEXT: unreachable
10581055; CHECK: if.else:
10591056; CHECK-NEXT: [[V:%.*]] = call i8 @get.i8()
1060- ; CHECK-NEXT: br label [[IF_END]]
1061- ; CHECK: if.end:
1062- ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ 0, [[IF_THEN]] ], [ [[V]], [[IF_ELSE]] ]
1063- ; CHECK-NEXT: [[R:%.*]] = srem i8 [[X:%.*]], [[Y]]
1057+ ; CHECK-NEXT: [[R:%.*]] = srem i8 [[X:%.*]], [[V]]
10641058; CHECK-NEXT: ret i8 [[R]]
10651059;
10661060entry:
@@ -1162,19 +1156,16 @@ define i8 @sdiv_overflow_ub_2x(i8 %i) {
11621156; CHECK-LABEL: @sdiv_overflow_ub_2x(
11631157; CHECK-NEXT: entry:
11641158; CHECK-NEXT: switch i8 [[I:%.*]], label [[SW_DEFAULT:%.*]] [
1165- ; CHECK-NEXT: i8 0 , label [[RETURN:%.*]]
1159+ ; CHECK-NEXT: i8 9 , label [[RETURN:%.*]]
11661160; CHECK-NEXT: i8 2, label [[SW_BB1:%.*]]
1167- ; CHECK-NEXT: i8 9, label [[SW_BB2:%.*]]
11681161; CHECK-NEXT: ]
11691162; CHECK: sw.bb1:
11701163; CHECK-NEXT: [[V:%.*]] = call i8 @get.i8()
11711164; CHECK-NEXT: br label [[RETURN]]
1172- ; CHECK: sw.bb2:
1173- ; CHECK-NEXT: br label [[RETURN]]
11741165; CHECK: sw.default:
11751166; CHECK-NEXT: unreachable
11761167; CHECK: return:
1177- ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ [[V]], [[SW_BB1]] ], [ -1, [[SW_BB2]] ], [ 0, [[ ENTRY:%.*]] ]
1168+ ; CHECK-NEXT: [[Y:%.*]] = phi i8 [ [[V]], [[SW_BB1]] ], [ -1, [[ENTRY:%.*]] ]
11781169; CHECK-NEXT: [[R:%.*]] = sdiv i8 -128, [[Y]]
11791170; CHECK-NEXT: ret i8 [[R]]
11801171;
0 commit comments