[PATCH] D158654: [SDAG][RISCV] Avoid folding `setcc (xor C1, -1), C2, cond` into `setcc (xor C2, -1), C1, cond`
Yingwei Zheng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 23 13:20:48 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGd6639f83a98f: [SDAG][RISCV] Avoid folding `setcc (xor C1, -1), C2, cond` into `setcc (xor C2… (authored by dtcxzyw).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158654/new/
https://reviews.llvm.org/D158654
Files:
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/test/CodeGen/RISCV/pr64935.ll
Index: llvm/test/CodeGen/RISCV/pr64935.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/RISCV/pr64935.ll
@@ -0,0 +1,17 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
+; RUN: llc -mtriple=riscv32 < %s | FileCheck %s
+
+define i1 @f() {
+; CHECK-LABEL: f:
+; CHECK: # %bb.0:
+; CHECK-NEXT: lui a0, 524288
+; CHECK-NEXT: not a0, a0
+; CHECK-NEXT: sltiu a0, a0, 2
+; CHECK-NEXT: xori a0, a0, 1
+; CHECK-NEXT: ret
+ %B25 = shl i64 4294967296, -9223372036854775808
+ %B13 = sub i64 -1, -9223372036854775808
+ %C8 = icmp ugt i64 %B13, %B25
+ %B5 = sub i64 0, 4294967296 ; Don't remove this instruction!
+ ret i1 %C8
+}
Index: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -5093,7 +5093,8 @@
if (isBitwiseNot(N1))
return DAG.getSetCC(dl, VT, N1.getOperand(0), N0.getOperand(0), Cond);
- if (DAG.isConstantIntBuildVectorOrConstantInt(N1)) {
+ if (DAG.isConstantIntBuildVectorOrConstantInt(N1) &&
+ !DAG.isConstantIntBuildVectorOrConstantInt(N0.getOperand(0))) {
SDValue Not = DAG.getNOT(dl, N1, OpVT);
return DAG.getSetCC(dl, VT, Not, N0.getOperand(0), Cond);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158654.552864.patch
Type: text/x-patch
Size: 1436 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230823/1769f0f0/attachment.bin>
More information about the llvm-commits
mailing list