@@ -1080,7 +1080,7 @@ entry:
10801080define i32 @ashr_shift_mul (i32 %x ) {
10811081; CHECK-LABEL: @ashr_shift_mul(
10821082; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
1083- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1083+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
10841084; CHECK-NEXT: ret i32 [[RES]]
10851085;
10861086 %a = ashr exact i32 %x , 3
@@ -1090,8 +1090,8 @@ define i32 @ashr_shift_mul(i32 %x) {
10901090
10911091define i32 @ashr_shift_mul_nuw (i32 %x ) {
10921092; CHECK-LABEL: @ashr_shift_mul_nuw(
1093- ; CHECK-NEXT: [[A :%.*]] = ashr exact i32 [[X:%.*]], 3
1094- ; CHECK-NEXT: [[RES:%.*]] = mul nuw i32 [[A ]], 9
1093+ ; CHECK-NEXT: [[TMP1 :%.*]] = lshr exact i32 [[X:%.*]], 3
1094+ ; CHECK-NEXT: [[RES:%.*]] = add nuw i32 [[X ]], [[TMP1]]
10951095; CHECK-NEXT: ret i32 [[RES]]
10961096;
10971097 %a = ashr exact i32 %x , 3
@@ -1102,7 +1102,7 @@ define i32 @ashr_shift_mul_nuw(i32 %x) {
11021102define i32 @ashr_shift_mul_nsw (i32 %x ) {
11031103; CHECK-LABEL: @ashr_shift_mul_nsw(
11041104; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
1105- ; CHECK-NEXT: [[RES:%.*]] = mul nsw i32 [[A ]], 9
1105+ ; CHECK-NEXT: [[RES:%.*]] = add nsw i32 [[X ]], [[A]]
11061106; CHECK-NEXT: ret i32 [[RES]]
11071107;
11081108 %a = ashr exact i32 %x , 3
@@ -1113,7 +1113,7 @@ define i32 @ashr_shift_mul_nsw(i32 %x) {
11131113define i32 @lshr_shift_mul_nuw (i32 %x ) {
11141114; CHECK-LABEL: @lshr_shift_mul_nuw(
11151115; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1116- ; CHECK-NEXT: [[RES:%.*]] = mul nuw i32 [[A ]], 9
1116+ ; CHECK-NEXT: [[RES:%.*]] = add nuw i32 [[X ]], [[A]]
11171117; CHECK-NEXT: ret i32 [[RES]]
11181118;
11191119 %a = lshr exact i32 %x , 3
@@ -1124,7 +1124,7 @@ define i32 @lshr_shift_mul_nuw(i32 %x) {
11241124define i32 @lshr_shift_mul (i32 %x ) {
11251125; CHECK-LABEL: @lshr_shift_mul(
11261126; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1127- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1127+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
11281128; CHECK-NEXT: ret i32 [[RES]]
11291129;
11301130 %a = lshr exact i32 %x , 3
@@ -1135,7 +1135,7 @@ define i32 @lshr_shift_mul(i32 %x) {
11351135define i32 @lshr_shift_mul_nsw (i32 %x ) {
11361136; CHECK-LABEL: @lshr_shift_mul_nsw(
11371137; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1138- ; CHECK-NEXT: [[RES:%.*]] = mul nuw nsw i32 [[A ]], 9
1138+ ; CHECK-NEXT: [[RES:%.*]] = add nsw i32 [[X ]], [[A]]
11391139; CHECK-NEXT: ret i32 [[RES]]
11401140;
11411141 %a = lshr exact i32 %x , 3
@@ -1173,7 +1173,7 @@ define i32 @lshr_multiuse(i32 %x) {
11731173; CHECK-LABEL: @lshr_multiuse(
11741174; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
11751175; CHECK-NEXT: call void @use(i32 [[A]])
1176- ; CHECK-NEXT: [[RES:%.*]] = mul nuw nsw i32 [[A ]], 9
1176+ ; CHECK-NEXT: [[RES:%.*]] = add nsw i32 [[X ]], [[A]]
11771177; CHECK-NEXT: ret i32 [[RES]]
11781178;
11791179 %a = lshr exact i32 %x , 3
@@ -1186,7 +1186,7 @@ define i32 @lshr_multiuse_no_flags(i32 %x) {
11861186; CHECK-LABEL: @lshr_multiuse_no_flags(
11871187; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
11881188; CHECK-NEXT: call void @use(i32 [[A]])
1189- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1189+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
11901190; CHECK-NEXT: ret i32 [[RES]]
11911191;
11921192 %a = lshr exact i32 %x , 3
@@ -1199,7 +1199,7 @@ define i32 @ashr_multiuse_no_flags(i32 %x) {
11991199; CHECK-LABEL: @ashr_multiuse_no_flags(
12001200; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
12011201; CHECK-NEXT: call void @use(i32 [[A]])
1202- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1202+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
12031203; CHECK-NEXT: ret i32 [[RES]]
12041204;
12051205 %a = ashr exact i32 %x , 3
@@ -1212,7 +1212,7 @@ define i32 @ashr_multiuse(i32 %x) {
12121212; CHECK-LABEL: @ashr_multiuse(
12131213; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
12141214; CHECK-NEXT: call void @use(i32 [[A]])
1215- ; CHECK-NEXT: [[RES:%.*]] = mul nsw i32 [[A ]], 9
1215+ ; CHECK-NEXT: [[RES:%.*]] = add nsw i32 [[X ]], [[A]]
12161216; CHECK-NEXT: ret i32 [[RES]]
12171217;
12181218 %a = ashr exact i32 %x , 3
0 commit comments