[llvm] 6e488e4 - Reland "[X86][NFC] Refactor: there's only v16bf16 in 256-bit shuffle"

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 5 19:54:59 PDT 2023


Author: Phoebe Wang
Date: 2023-06-06T10:49:25+08:00
New Revision: 6e488e40e75f5e118792c80f58f6ecc48c2cab76

URL: https://github.com/llvm/llvm-project/commit/6e488e40e75f5e118792c80f58f6ecc48c2cab76
DIFF: https://github.com/llvm/llvm-project/commit/6e488e40e75f5e118792c80f58f6ecc48c2cab76.diff

LOG: Reland "[X86][NFC] Refactor: there's only v16bf16 in 256-bit shuffle"

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 2542c8d1a3c63..cd6ba547a201a 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -19101,11 +19101,11 @@ static SDValue lower256BitShuffle(const SDLoc &DL, ArrayRef<int> Mask, MVT VT,
     return DAG.getBitcast(VT, DAG.getVectorShuffle(FpVT, DL, V1, V2, Mask));
   }
 
-  if (VT == MVT::v16f16 || VT.getVectorElementType() == MVT::bf16) {
-    MVT IVT = VT.changeVectorElementTypeToInteger();
-    V1 = DAG.getBitcast(IVT, V1);
-    V2 = DAG.getBitcast(IVT, V2);
-    return DAG.getBitcast(VT, DAG.getVectorShuffle(IVT, DL, V1, V2, Mask));
+  if (VT == MVT::v16f16 || VT == MVT::v16bf16) {
+    V1 = DAG.getBitcast(MVT::v16i16, V1);
+    V2 = DAG.getBitcast(MVT::v16i16, V2);
+    return DAG.getBitcast(VT,
+                          DAG.getVectorShuffle(MVT::v16i16, DL, V1, V2, Mask));
   }
 
   switch (VT.SimpleTy) {


        


More information about the llvm-commits mailing list