mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-06-12 11:06:17 +00:00

https://bugs.llvm.org/show_bug.cgi?id=32379 (Closes: #876072) * Fix sanitizer build failure with glibc-2.26. * build using gold on arm64 and s390x. For backports, arm64 might still need the BFD linker, and building with only one or two processes in parallel. * On amd64, s390x, arm64 and ppc64el, build with -g1 instead of -g. * Set CMAKE_CXX_FLAGS_RELWITHDEBINFO and pass opt_flags.
40 lines
1.5 KiB
Diff
40 lines
1.5 KiB
Diff
Index: llvm-toolchain-3.9-3.9.1/lib/Target/ARM/ARMISelLowering.cpp
|
|
===================================================================
|
|
--- llvm-toolchain-3.9-3.9.1.orig/lib/Target/ARM/ARMISelLowering.cpp
|
|
+++ llvm-toolchain-3.9-3.9.1/lib/Target/ARM/ARMISelLowering.cpp
|
|
@@ -10805,8 +10805,8 @@ static void computeKnownBits(SelectionDA
|
|
if (Op.getOpcode() == ARMISD::CMOV) {
|
|
APInt KZ2(KnownZero.getBitWidth(), 0);
|
|
APInt KO2(KnownOne.getBitWidth(), 0);
|
|
- computeKnownBits(DAG, Op.getOperand(1), KnownZero, KnownOne);
|
|
- computeKnownBits(DAG, Op.getOperand(2), KZ2, KO2);
|
|
+ computeKnownBits(DAG, Op.getOperand(0), KnownZero, KnownOne);
|
|
+ computeKnownBits(DAG, Op.getOperand(1), KZ2, KO2);
|
|
|
|
KnownZero &= KZ2;
|
|
KnownOne &= KO2;
|
|
Index: llvm-toolchain-3.9-3.9.1/test/CodeGen/ARM/no-cmov2bfi.ll
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ llvm-toolchain-3.9-3.9.1/test/CodeGen/ARM/no-cmov2bfi.ll
|
|
@@ -0,0 +1,19 @@
|
|
+; RUN: llc < %s -mtriple=thumbv7 | FileCheck --check-prefix=CHECK-NOBFI %s
|
|
+
|
|
+declare zeroext i1 @dummy()
|
|
+
|
|
+define i8 @test(i8 %a1, i1 %c) {
|
|
+; CHECK-NOBFI-NOT: bfi
|
|
+; CHECK-NOBFI: bl dummy
|
|
+; CHECK-NOBFI: cmp r0, #0
|
|
+; CHECK-NOBFI: it ne
|
|
+; CHECK-NOBFI: orrne [[REG:r[0-9]+]], [[REG]], #8
|
|
+; CHECK-NOBFI: mov r0, [[REG]]
|
|
+
|
|
+ %1 = and i8 %a1, -9
|
|
+ %2 = select i1 %c, i8 %1, i8 %a1
|
|
+ %3 = tail call zeroext i1 @dummy()
|
|
+ %4 = or i8 %2, 8
|
|
+ %ret = select i1 %3, i8 %4, i8 %2
|
|
+ ret i8 %ret
|
|
+}
|