[llvm] 595a738 - [X86] combineBitOpWithMOVMSK - avoid duplicate SDLoc/operands code. NFC.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 6 07:23:51 PDT 2024
Author: Simon Pilgrim
Date: 2024-10-06T15:23:38+01:00
New Revision: 595a738fb4239560a3292fa99ca12628215495e7
URL: https://github.com/llvm/llvm-project/commit/595a738fb4239560a3292fa99ca12628215495e7
DIFF: https://github.com/llvm/llvm-project/commit/595a738fb4239560a3292fa99ca12628215495e7.diff
LOG: [X86] combineBitOpWithMOVMSK - avoid duplicate SDLoc/operands code. NFC.
Reuse values from the callers directly.
Added:
Modified:
llvm/lib/Target/X86/X86ISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index db04a4774aa6fc..dc02b9adfdf219 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -49853,14 +49853,11 @@ static SDValue convertIntLogicToFPLogic(SDNode *N, SelectionDAG &DAG,
// Attempt to fold BITOP(MOVMSK(X),MOVMSK(Y)) -> MOVMSK(BITOP(X,Y))
// to reduce XMM->GPR traffic.
-static SDValue combineBitOpWithMOVMSK(SDNode *N, SelectionDAG &DAG) {
- unsigned Opc = N->getOpcode();
+static SDValue combineBitOpWithMOVMSK(unsigned Opc, const SDLoc &DL, SDValue N0,
+ SDValue N1, SelectionDAG &DAG) {
assert((Opc == ISD::OR || Opc == ISD::AND || Opc == ISD::XOR) &&
"Unexpected bit opcode");
- SDValue N0 = N->getOperand(0);
- SDValue N1 = N->getOperand(1);
-
// Both operands must be single use MOVMSK.
if (N0.getOpcode() != X86ISD::MOVMSK || !N0.hasOneUse() ||
N1.getOpcode() != X86ISD::MOVMSK || !N1.hasOneUse())
@@ -49877,7 +49874,6 @@ static SDValue combineBitOpWithMOVMSK(SDNode *N, SelectionDAG &DAG) {
VecVT0.getScalarSizeInBits() != VecVT1.getScalarSizeInBits())
return SDValue();
- SDLoc DL(N);
unsigned VecOpc =
VecVT0.isFloatingPoint() ? convertIntLogicToFPLogicOpcode(Opc) : Opc;
SDValue Result =
@@ -50521,7 +50517,7 @@ static SDValue combineAnd(SDNode *N, SelectionDAG &DAG,
if (SDValue V = combineScalarAndWithMaskSetcc(N, DAG, Subtarget))
return V;
- if (SDValue R = combineBitOpWithMOVMSK(N, DAG))
+ if (SDValue R = combineBitOpWithMOVMSK(N->getOpcode(), dl, N0, N1, DAG))
return R;
if (SDValue R = combineBitOpWithShift(N->getOpcode(), dl, VT, N0, N1, DAG))
@@ -51306,7 +51302,7 @@ static SDValue combineOr(SDNode *N, SelectionDAG &DAG,
if (SDValue SetCC = combineAndOrForCcmpCtest(N, DAG, DCI, Subtarget))
return SetCC;
- if (SDValue R = combineBitOpWithMOVMSK(N, DAG))
+ if (SDValue R = combineBitOpWithMOVMSK(N->getOpcode(), dl, N0, N1, DAG))
return R;
if (SDValue R = combineBitOpWithShift(N->getOpcode(), dl, VT, N0, N1, DAG))
@@ -53623,7 +53619,7 @@ static SDValue combineXor(SDNode *N, SelectionDAG &DAG,
if (SDValue Cmp = foldVectorXorShiftIntoCmp(N, DAG, Subtarget))
return Cmp;
- if (SDValue R = combineBitOpWithMOVMSK(N, DAG))
+ if (SDValue R = combineBitOpWithMOVMSK(N->getOpcode(), DL, N0, N1, DAG))
return R;
if (SDValue R = combineBitOpWithShift(N->getOpcode(), DL, VT, N0, N1, DAG))
More information about the llvm-commits
mailing list