[llvm] 747214e - [X86] getFauxShuffleMask - OR(BITCAST(SHUFFLE()),BITCAST(SHUFFLE())) patterns should return bitcasted source values (#134993)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 9 04:54:19 PDT 2025


Author: Simon Pilgrim
Date: 2025-04-09T12:54:16+01:00
New Revision: 747214e59be67ec1088de2f9db5d46607bb59565

URL: https://github.com/llvm/llvm-project/commit/747214e59be67ec1088de2f9db5d46607bb59565
DIFF: https://github.com/llvm/llvm-project/commit/747214e59be67ec1088de2f9db5d46607bb59565.diff

LOG: [X86] getFauxShuffleMask - OR(BITCAST(SHUFFLE()),BITCAST(SHUFFLE())) patterns should return bitcasted source values (#134993)

Noticed while investigating #133947 regressions - if we peek through
bitcasts we can lose track of oneuse/combined nodes in shuffle combining

Currently the same codegen as combineX86ShufflesRecursively still peeks
through the bitcasts itself, but we will soon handle this consistently
as another part of #133947

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 11bea60d941ff..a3c423270f44a 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -6155,8 +6155,8 @@ static bool getFauxShuffleMask(SDValue N, const APInt &DemandedElts,
       else
         return false;
     }
-    Ops.push_back(N0);
-    Ops.push_back(N1);
+    Ops.push_back(N.getOperand(0));
+    Ops.push_back(N.getOperand(1));
     return true;
   }
   case ISD::CONCAT_VECTORS: {


        


More information about the llvm-commits mailing list