Skip to content

Commit 7e7bf0b

Browse files
committed
[CGP] Drop poison-generating flags in optimizeBranch
1 parent 1c8e4bb commit 7e7bf0b

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

llvm/lib/CodeGen/CodeGenPrepare.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8270,6 +8270,7 @@ static bool optimizeBranch(BranchInst *Branch, const TargetLowering &TLI,
82708270
IRBuilder<> Builder(Branch);
82718271
if (UI->getParent() != Branch->getParent())
82728272
UI->moveBefore(Branch);
8273+
UI->dropPoisonGeneratingFlags();
82738274
Value *NewCmp = Builder.CreateCmp(ICmpInst::ICMP_EQ, UI,
82748275
ConstantInt::get(UI->getType(), 0));
82758276
LLVM_DEBUG(dbgs() << "Converting " << *Cmp << "\n");
@@ -8283,6 +8284,7 @@ static bool optimizeBranch(BranchInst *Branch, const TargetLowering &TLI,
82838284
IRBuilder<> Builder(Branch);
82848285
if (UI->getParent() != Branch->getParent())
82858286
UI->moveBefore(Branch);
8287+
UI->dropPoisonGeneratingFlags();
82868288
Value *NewCmp = Builder.CreateCmp(Cmp->getPredicate(), UI,
82878289
ConstantInt::get(UI->getType(), 0));
82888290
LLVM_DEBUG(dbgs() << "Converting " << *Cmp << "\n");

llvm/test/Transforms/CodeGenPrepare/RISCV/convert-to-eqz.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ define i8 @hoist_add(i8 %x) {
55
; CHECK-LABEL: define i8 @hoist_add(
66
; CHECK-SAME: i8 [[X:%.*]]) {
77
; CHECK-NEXT: entry:
8-
; CHECK-NEXT: [[INC:%.*]] = add nuw nsw i8 [[X]], 1
8+
; CHECK-NEXT: [[INC:%.*]] = add i8 [[X]], 1
99
; CHECK-NEXT: [[TMP0:%.*]] = icmp eq i8 [[INC]], 0
1010
; CHECK-NEXT: br i1 [[TMP0]], label [[EXIT:%.*]], label [[IF_THEN:%.*]]
1111
; CHECK: if.then:
@@ -31,7 +31,7 @@ define i8 @hoist_lshr(i8 %x) {
3131
; CHECK-LABEL: define i8 @hoist_lshr(
3232
; CHECK-SAME: i8 [[X:%.*]]) {
3333
; CHECK-NEXT: entry:
34-
; CHECK-NEXT: [[INC:%.*]] = lshr exact i8 [[X]], 3
34+
; CHECK-NEXT: [[INC:%.*]] = lshr i8 [[X]], 3
3535
; CHECK-NEXT: [[TMP0:%.*]] = icmp eq i8 [[INC]], 0
3636
; CHECK-NEXT: br i1 [[TMP0]], label [[EXIT:%.*]], label [[IF_THEN:%.*]]
3737
; CHECK: if.then:
@@ -57,7 +57,7 @@ define i8 @nomove_add(i8 %x) {
5757
; CHECK-LABEL: define i8 @nomove_add(
5858
; CHECK-SAME: i8 [[X:%.*]]) {
5959
; CHECK-NEXT: entry:
60-
; CHECK-NEXT: [[INC:%.*]] = add nuw nsw i8 [[X]], 1
60+
; CHECK-NEXT: [[INC:%.*]] = add i8 [[X]], 1
6161
; CHECK-NEXT: [[TMP0:%.*]] = icmp eq i8 [[INC]], 0
6262
; CHECK-NEXT: br i1 [[TMP0]], label [[EXIT:%.*]], label [[IF_THEN:%.*]]
6363
; CHECK: if.then:

0 commit comments

Comments
 (0)