@@ -925,18 +925,15 @@ define i8 @udiv_by_zero(i8 %x, i8 %i, i8 %v) {
925
925
; CHECK-LABEL: @udiv_by_zero(
926
926
; CHECK-NEXT: entry:
927
927
; CHECK-NEXT: switch i8 [[I:%.*]], label [[SW_DEFAULT:%.*]] [
928
- ; CHECK-NEXT: i8 0, label [[RETURN:%.*]]
929
- ; CHECK-NEXT: i8 2, label [[SW_BB1:%.*]]
930
928
; CHECK-NEXT: i8 9, label [[SW_BB2:%.*]]
929
+ ; CHECK-NEXT: i8 2, label [[RETURN:%.*]]
931
930
; CHECK-NEXT: ]
932
- ; CHECK: sw.bb1:
933
- ; CHECK-NEXT: br label [[RETURN]]
934
931
; CHECK: sw.bb2:
935
932
; CHECK-NEXT: br label [[RETURN]]
936
933
; CHECK: sw.default:
937
934
; CHECK-NEXT: br label [[RETURN]]
938
935
; 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:%.*]] ]
940
937
; CHECK-NEXT: [[R:%.*]] = udiv i8 [[X:%.*]], [[Y]]
941
938
; CHECK-NEXT: ret i8 [[R]]
942
939
;
@@ -976,9 +973,9 @@ define i8 @urem_by_zero(i8 %x, i8 %i, i8 %v) {
976
973
; CHECK: sw.bb2:
977
974
; CHECK-NEXT: br label [[RETURN]]
978
975
; CHECK: sw.default:
979
- ; CHECK-NEXT: br label [[RETURN]]
976
+ ; CHECK-NEXT: unreachable
980
977
; 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:%.*]] ]
982
979
; CHECK-NEXT: [[R:%.*]] = urem i8 [[X:%.*]], [[Y]]
983
980
; CHECK-NEXT: ret i8 [[R]]
984
981
;
@@ -1054,13 +1051,10 @@ define i8 @srem_by_zero(i8 %x, i8 %i) {
1054
1051
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_ELSE:%.*]]
1055
1052
; CHECK: if.then:
1056
1053
; CHECK-NEXT: call void @side.effect()
1057
- ; CHECK-NEXT: br label [[IF_END:%.*]]
1054
+ ; CHECK-NEXT: unreachable
1058
1055
; CHECK: if.else:
1059
1056
; 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]]
1064
1058
; CHECK-NEXT: ret i8 [[R]]
1065
1059
;
1066
1060
entry:
@@ -1162,19 +1156,16 @@ define i8 @sdiv_overflow_ub_2x(i8 %i) {
1162
1156
; CHECK-LABEL: @sdiv_overflow_ub_2x(
1163
1157
; CHECK-NEXT: entry:
1164
1158
; CHECK-NEXT: switch i8 [[I:%.*]], label [[SW_DEFAULT:%.*]] [
1165
- ; CHECK-NEXT: i8 0 , label [[RETURN:%.*]]
1159
+ ; CHECK-NEXT: i8 9 , label [[RETURN:%.*]]
1166
1160
; CHECK-NEXT: i8 2, label [[SW_BB1:%.*]]
1167
- ; CHECK-NEXT: i8 9, label [[SW_BB2:%.*]]
1168
1161
; CHECK-NEXT: ]
1169
1162
; CHECK: sw.bb1:
1170
1163
; CHECK-NEXT: [[V:%.*]] = call i8 @get.i8()
1171
1164
; CHECK-NEXT: br label [[RETURN]]
1172
- ; CHECK: sw.bb2:
1173
- ; CHECK-NEXT: br label [[RETURN]]
1174
1165
; CHECK: sw.default:
1175
1166
; CHECK-NEXT: unreachable
1176
1167
; 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:%.*]] ]
1178
1169
; CHECK-NEXT: [[R:%.*]] = sdiv i8 -128, [[Y]]
1179
1170
; CHECK-NEXT: ret i8 [[R]]
1180
1171
;
0 commit comments