[llvm] 5f35009 - [RISCV] Remove a ComputeNumSignBits call from an isel special case.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 4 23:32:24 PST 2022
Author: Craig Topper
Date: 2022-02-04T23:26:53-08:00
New Revision: 5f350099960c7615d8b0329fd3c251cbfd260407
URL: https://github.com/llvm/llvm-project/commit/5f350099960c7615d8b0329fd3c251cbfd260407
DIFF: https://github.com/llvm/llvm-project/commit/5f350099960c7615d8b0329fd3c251cbfd260407.diff
LOG: [RISCV] Remove a ComputeNumSignBits call from an isel special case.
Only isel (and (srl (sexti32 Y), c2), c1) -> (srliw (sraiw Y, 31), c3 - 32)
when there is a sext_inreg present. Don't both checking for Y
having 32 sign bits.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
index c7173040175a8..bc0fde3f66632 100644
--- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
@@ -734,11 +734,11 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
//
// This pattern occurs when (i32 (srl (sra 31), c3 - 32)) is type
// legalized and goes through DAG combine.
- SDValue Y;
if (C2 >= 32 && (C3 - C2) == 1 && N0.hasOneUse() &&
- selectSExti32(X, Y)) {
+ X.getOpcode() == ISD::SIGN_EXTEND_INREG &&
+ cast<VTSDNode>(X.getOperand(1))->getVT() == MVT::i32) {
SDNode *SRAIW =
- CurDAG->getMachineNode(RISCV::SRAIW, DL, XLenVT, Y,
+ CurDAG->getMachineNode(RISCV::SRAIW, DL, XLenVT, X.getOperand(0),
CurDAG->getTargetConstant(31, DL, XLenVT));
SDNode *SRLIW = CurDAG->getMachineNode(
RISCV::SRLIW, DL, XLenVT, SDValue(SRAIW, 0),
More information about the llvm-commits
mailing list