@@ -173,12 +173,8 @@ if.end:
173
173
174
174
define i32 @uadd_no_overflow (i32 %a , i32 %b ) {
175
175
; CHECK-LABEL: @uadd_no_overflow(
176
- ; CHECK-NEXT: [[VAL:%.*]] = tail call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 [[A:%.*]], i32 [[B:%.*]])
177
- ; CHECK-NEXT: [[OV:%.*]] = extractvalue { i32, i1 } [[VAL]], 1
178
- ; CHECK-NEXT: [[NOWRAP:%.*]] = xor i1 [[OV]], true
179
- ; CHECK-NEXT: tail call void @llvm.assume(i1 [[NOWRAP]])
180
- ; CHECK-NEXT: [[RES:%.*]] = extractvalue { i32, i1 } [[VAL]], 0
181
- ; CHECK-NEXT: ret i32 [[RES]]
176
+ ; CHECK-NEXT: [[TMP1:%.*]] = add nuw i32 [[A:%.*]], [[B:%.*]]
177
+ ; CHECK-NEXT: ret i32 [[TMP1]]
182
178
;
183
179
%val = tail call { i32 , i1 } @llvm.uadd.with.overflow.i32 (i32 %a , i32 %b )
184
180
%ov = extractvalue { i32 , i1 } %val , 1
@@ -190,12 +186,8 @@ define i32 @uadd_no_overflow(i32 %a, i32 %b) {
190
186
191
187
define i32 @smul_no_overflow (i32 %a , i32 %b ) {
192
188
; CHECK-LABEL: @smul_no_overflow(
193
- ; CHECK-NEXT: [[VAL:%.*]] = tail call { i32, i1 } @llvm.smul.with.overflow.i32(i32 [[A:%.*]], i32 [[B:%.*]])
194
- ; CHECK-NEXT: [[OV:%.*]] = extractvalue { i32, i1 } [[VAL]], 1
195
- ; CHECK-NEXT: [[NOWRAP:%.*]] = xor i1 [[OV]], true
196
- ; CHECK-NEXT: tail call void @llvm.assume(i1 [[NOWRAP]])
197
- ; CHECK-NEXT: [[RES:%.*]] = extractvalue { i32, i1 } [[VAL]], 0
198
- ; CHECK-NEXT: ret i32 [[RES]]
189
+ ; CHECK-NEXT: [[TMP1:%.*]] = mul nsw i32 [[A:%.*]], [[B:%.*]]
190
+ ; CHECK-NEXT: ret i32 [[TMP1]]
199
191
;
200
192
%val = tail call { i32 , i1 } @llvm.smul.with.overflow.i32 (i32 %a , i32 %b )
201
193
%ov = extractvalue { i32 , i1 } %val , 1
0 commit comments