Skip to content

Commit a3b8305

Browse files
author
git apple-llvm automerger
committed
Merge commit '750247bc1cc3' from llvm.org/main into next
2 parents 37b8e4c + 750247b commit a3b8305

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

llvm/lib/Target/ARM/ARMISelLowering.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20138,8 +20138,8 @@ void ARMTargetLowering::computeKnownBitsForTargetNode(const SDValue Op,
2013820138
else if (Op.getOpcode() == ARMISD::CSINV)
2013920139
std::swap(KnownOp1.Zero, KnownOp1.One);
2014020140
else if (Op.getOpcode() == ARMISD::CSNEG)
20141-
KnownOp1 = KnownBits::mul(
20142-
KnownOp1, KnownBits::makeConstant(APInt(32, -1)));
20141+
KnownOp1 = KnownBits::mul(KnownOp1,
20142+
KnownBits::makeConstant(APInt::getAllOnes(32)));
2014320143

2014420144
Known = KnownOp0.intersectWith(KnownOp1);
2014520145
break;

llvm/test/CodeGen/Thumb2/csel.ll

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,3 +364,18 @@ entry:
364364
%t = xor i32 %s, %spec.select
365365
ret i32 %t
366366
}
367+
368+
define i32 @test_known_bits(i32 %a, i32 %b) {
369+
; CHECK-LABEL: test_known_bits:
370+
; CHECK: @ %bb.0: @ %entry
371+
; CHECK-NEXT: movs r2, #1
372+
; CHECK-NEXT: cmp r0, #0
373+
; CHECK-NEXT: cneg r0, r2, mi
374+
; CHECK-NEXT: add r0, r1
375+
; CHECK-NEXT: bx lr
376+
entry:
377+
%c = icmp slt i32 %a, 0
378+
%s = select i1 %c, i32 -1, i32 1
379+
%t = add i32 %s, %b
380+
ret i32 %t
381+
}

0 commit comments

Comments
 (0)