[llvm] [NVPTX] Propagate truncate to operands (PR #98666)
    Justin Fargnoli via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jul 17 12:45:13 PDT 2024
    
    
  
================
@@ -5541,6 +5541,53 @@ static SDValue PerformREMCombine(SDNode *N,
   return SDValue();
 }
 
+// truncate (logic_op x, y) --> logic_op (truncate x), (truncate y)
+// This will reduce register pressure.
+static SDValue PerformTruncCombine(SDNode *N,
+                                   TargetLowering::DAGCombinerInfo &DCI) {
+  if (!DCI.isBeforeLegalizeOps())
+    return SDValue();
+
+  SDValue LogicalOp = N->getOperand(0);
+  switch (LogicalOp.getOpcode()) {
+  default:
+    break;
+  case ISD::ADD:
+  case ISD::SUB:
+  case ISD::MUL:
+  case ISD::AND:
+  case ISD::OR:
+  case ISD::XOR: {
+    EVT VT = N->getValueType(0);
+    EVT LogicalVT = LogicalOp.getValueType();
+    if (VT != MVT::i32 || LogicalVT != MVT::i64)
----------------
justinfargnoli wrote:
I agree! Glad to know that this is preferred :) 
https://github.com/llvm/llvm-project/pull/98666
    
    
More information about the llvm-commits
mailing list