@@ -173,12 +173,8 @@ if.end:
173173
174174define i32 @uadd_no_overflow (i32 %a , i32 %b ) {
175175; 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]]
182178;
183179 %val = tail call { i32 , i1 } @llvm.uadd.with.overflow.i32 (i32 %a , i32 %b )
184180 %ov = extractvalue { i32 , i1 } %val , 1
@@ -190,12 +186,8 @@ define i32 @uadd_no_overflow(i32 %a, i32 %b) {
190186
191187define i32 @smul_no_overflow (i32 %a , i32 %b ) {
192188; 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]]
199191;
200192 %val = tail call { i32 , i1 } @llvm.smul.with.overflow.i32 (i32 %a , i32 %b )
201193 %ov = extractvalue { i32 , i1 } %val , 1
0 commit comments