Skip to content

Commit caf2a3b

Browse files
committed
[InstCombine] Drop ub-implying attrs and metadata after speculating an instruction
1 parent 13788ab commit caf2a3b

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -1650,6 +1650,7 @@ static Value *foldOperationIntoSelectOperand(Instruction &I, SelectInst *SI,
16501650
Value *NewOp, InstCombiner &IC) {
16511651
Instruction *Clone = I.clone();
16521652
Clone->replaceUsesOfWith(SI, NewOp);
1653+
Clone->dropUBImplyingAttrsAndMetadata();
16531654
IC.InsertNewInstBefore(Clone, SI->getIterator());
16541655
return Clone;
16551656
}

llvm/test/Transforms/InstCombine/intrinsic-select.ll

+3-3
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ define i32 @vec_to_scalar_select_vector(<2 x i1> %b) {
244244
define i8 @test_drop_noundef(i1 %cond, i8 %val) {
245245
; CHECK-LABEL: @test_drop_noundef(
246246
; CHECK-NEXT: entry:
247-
; CHECK-NEXT: [[TMP0:%.*]] = call noundef i8 @llvm.smin.i8(i8 [[VAL:%.*]], i8 0)
247+
; CHECK-NEXT: [[TMP0:%.*]] = call i8 @llvm.smin.i8(i8 [[VAL:%.*]], i8 0)
248248
; CHECK-NEXT: [[RET:%.*]] = select i1 [[COND:%.*]], i8 -1, i8 [[TMP0]]
249249
; CHECK-NEXT: ret i8 [[RET]]
250250
;
@@ -262,10 +262,10 @@ define i1 @pr85536(i32 %a) {
262262
; CHECK-NEXT: [[ZEXT:%.*]] = zext i32 [[SHL1]] to i64
263263
; CHECK-NEXT: [[SHL2:%.*]] = shl i64 [[ZEXT]], 48
264264
; CHECK-NEXT: [[SHR:%.*]] = ashr exact i64 [[SHL2]], 48
265-
; CHECK-NEXT: [[TMP0:%.*]] = call noundef i64 @llvm.smin.i64(i64 [[SHR]], i64 0)
265+
; CHECK-NEXT: [[TMP0:%.*]] = call i64 @llvm.smin.i64(i64 [[SHR]], i64 0)
266266
; CHECK-NEXT: [[TMP1:%.*]] = and i64 [[TMP0]], 65535
267267
; CHECK-NEXT: [[RET1:%.*]] = icmp eq i64 [[TMP1]], 0
268-
; CHECK-NEXT: [[RET:%.*]] = and i1 [[CMP1]], [[RET1]]
268+
; CHECK-NEXT: [[RET:%.*]] = select i1 [[CMP1]], i1 [[RET1]], i1 false
269269
; CHECK-NEXT: ret i1 [[RET]]
270270
;
271271
entry:

0 commit comments

Comments
 (0)