@@ -1080,7 +1080,7 @@ entry:
1080
1080
define i32 @ashr_shift_mul (i32 %x ) {
1081
1081
; CHECK-LABEL: @ashr_shift_mul(
1082
1082
; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
1083
- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1083
+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
1084
1084
; CHECK-NEXT: ret i32 [[RES]]
1085
1085
;
1086
1086
%a = ashr exact i32 %x , 3
@@ -1090,8 +1090,8 @@ define i32 @ashr_shift_mul(i32 %x) {
1090
1090
1091
1091
define i32 @ashr_shift_mul_nuw (i32 %x ) {
1092
1092
; 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]]
1095
1095
; CHECK-NEXT: ret i32 [[RES]]
1096
1096
;
1097
1097
%a = ashr exact i32 %x , 3
@@ -1102,7 +1102,7 @@ define i32 @ashr_shift_mul_nuw(i32 %x) {
1102
1102
define i32 @ashr_shift_mul_nsw (i32 %x ) {
1103
1103
; CHECK-LABEL: @ashr_shift_mul_nsw(
1104
1104
; 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]]
1106
1106
; CHECK-NEXT: ret i32 [[RES]]
1107
1107
;
1108
1108
%a = ashr exact i32 %x , 3
@@ -1113,7 +1113,7 @@ define i32 @ashr_shift_mul_nsw(i32 %x) {
1113
1113
define i32 @lshr_shift_mul_nuw (i32 %x ) {
1114
1114
; CHECK-LABEL: @lshr_shift_mul_nuw(
1115
1115
; 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]]
1117
1117
; CHECK-NEXT: ret i32 [[RES]]
1118
1118
;
1119
1119
%a = lshr exact i32 %x , 3
@@ -1124,7 +1124,7 @@ define i32 @lshr_shift_mul_nuw(i32 %x) {
1124
1124
define i32 @lshr_shift_mul (i32 %x ) {
1125
1125
; CHECK-LABEL: @lshr_shift_mul(
1126
1126
; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1127
- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1127
+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
1128
1128
; CHECK-NEXT: ret i32 [[RES]]
1129
1129
;
1130
1130
%a = lshr exact i32 %x , 3
@@ -1135,7 +1135,7 @@ define i32 @lshr_shift_mul(i32 %x) {
1135
1135
define i32 @lshr_shift_mul_nsw (i32 %x ) {
1136
1136
; CHECK-LABEL: @lshr_shift_mul_nsw(
1137
1137
; 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]]
1139
1139
; CHECK-NEXT: ret i32 [[RES]]
1140
1140
;
1141
1141
%a = lshr exact i32 %x , 3
@@ -1173,7 +1173,7 @@ define i32 @lshr_multiuse(i32 %x) {
1173
1173
; CHECK-LABEL: @lshr_multiuse(
1174
1174
; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1175
1175
; 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]]
1177
1177
; CHECK-NEXT: ret i32 [[RES]]
1178
1178
;
1179
1179
%a = lshr exact i32 %x , 3
@@ -1186,7 +1186,7 @@ define i32 @lshr_multiuse_no_flags(i32 %x) {
1186
1186
; CHECK-LABEL: @lshr_multiuse_no_flags(
1187
1187
; CHECK-NEXT: [[A:%.*]] = lshr exact i32 [[X:%.*]], 3
1188
1188
; CHECK-NEXT: call void @use(i32 [[A]])
1189
- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1189
+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
1190
1190
; CHECK-NEXT: ret i32 [[RES]]
1191
1191
;
1192
1192
%a = lshr exact i32 %x , 3
@@ -1199,7 +1199,7 @@ define i32 @ashr_multiuse_no_flags(i32 %x) {
1199
1199
; CHECK-LABEL: @ashr_multiuse_no_flags(
1200
1200
; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
1201
1201
; CHECK-NEXT: call void @use(i32 [[A]])
1202
- ; CHECK-NEXT: [[RES:%.*]] = mul i32 [[A ]], 9
1202
+ ; CHECK-NEXT: [[RES:%.*]] = add i32 [[X ]], [[A]]
1203
1203
; CHECK-NEXT: ret i32 [[RES]]
1204
1204
;
1205
1205
%a = ashr exact i32 %x , 3
@@ -1212,7 +1212,7 @@ define i32 @ashr_multiuse(i32 %x) {
1212
1212
; CHECK-LABEL: @ashr_multiuse(
1213
1213
; CHECK-NEXT: [[A:%.*]] = ashr exact i32 [[X:%.*]], 3
1214
1214
; 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]]
1216
1216
; CHECK-NEXT: ret i32 [[RES]]
1217
1217
;
1218
1218
%a = ashr exact i32 %x , 3
0 commit comments