@@ -9927,11 +9927,11 @@ static SDValue getMaskNode(SDValue Mask, MVT MaskVT,
99279927 const SDLoc &dl);
99289928
99299929// X86 has dedicated shuffle that can be lowered to VEXPAND
9930- static SDValue lowerShuffleToEXPAND (const SDLoc &DL, MVT VT,
9931- const APInt &Zeroable ,
9932- ArrayRef<int> Mask, SDValue &V1 ,
9933- SDValue &V2, SelectionDAG &DAG ,
9934- const X86Subtarget &Subtarget ) {
9930+ static SDValue lowerShuffleWithEXPAND (const SDLoc &DL, MVT VT, SDValue V1 ,
9931+ SDValue V2, ArrayRef<int> Mask ,
9932+ const APInt &Zeroable ,
9933+ const X86Subtarget &Subtarget ,
9934+ SelectionDAG &DAG ) {
99359935 bool IsLeftZeroSide = true;
99369936 if (!isNonZeroElementsInOrder(Zeroable, Mask, V1.getValueType(),
99379937 IsLeftZeroSide))
@@ -15966,8 +15966,8 @@ static SDValue lowerV4F64Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1596615966
1596715967 // If we have VLX support, we can use VEXPAND.
1596815968 if (Subtarget.hasVLX())
15969- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v4f64, Zeroable, Mask, V1, V2,
15970- DAG , Subtarget))
15969+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v4f64, V1, V2, Mask ,
15970+ Zeroable , Subtarget, DAG ))
1597115971 return V;
1597215972
1597315973 // If we have AVX2 then we always want to lower with a blend because an v4 we
@@ -16046,8 +16046,8 @@ static SDValue lowerV4I64Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1604616046 Zeroable, Subtarget, DAG))
1604716047 return Rotate;
1604816048
16049- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v4i64, Zeroable, Mask, V1, V2,
16050- DAG , Subtarget))
16049+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v4i64, V1, V2, Mask ,
16050+ Zeroable , Subtarget, DAG ))
1605116051 return V;
1605216052 }
1605316053
@@ -16184,8 +16184,8 @@ static SDValue lowerV8F32Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1618416184
1618516185 // If we have VLX support, we can use VEXPAND.
1618616186 if (Subtarget.hasVLX())
16187- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v8f32, Zeroable, Mask, V1, V2,
16188- DAG , Subtarget))
16187+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v8f32, V1, V2, Mask ,
16188+ Zeroable , Subtarget, DAG ))
1618916189 return V;
1619016190
1619116191 // Try to match an interleave of two v8f32s and lower them as unpck and
@@ -16308,8 +16308,8 @@ static SDValue lowerV8I32Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1630816308 Zeroable, Subtarget, DAG))
1630916309 return Rotate;
1631016310
16311- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v8i32, Zeroable, Mask, V1, V2,
16312- DAG , Subtarget))
16311+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v8i32, V1, V2, Mask ,
16312+ Zeroable , Subtarget, DAG ))
1631316313 return V;
1631416314 }
1631516315
@@ -16827,8 +16827,8 @@ static SDValue lowerV8F64Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1682716827 Zeroable, Subtarget, DAG))
1682816828 return Op;
1682916829
16830- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v8f64, Zeroable, Mask, V1, V2 ,
16831- DAG, Subtarget))
16830+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v8f64, V1, V2, Mask, Zeroable ,
16831+ Subtarget, DAG ))
1683216832 return V;
1683316833
1683416834 if (SDValue Blend = lowerShuffleAsBlend(DL, MVT::v8f64, V1, V2, Mask,
@@ -16898,8 +16898,8 @@ static SDValue lowerV16F32Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1689816898 }
1689916899
1690016900 // If we have AVX512F support, we can use VEXPAND.
16901- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v16f32, Zeroable , Mask,
16902- V1, V2 , DAG, Subtarget ))
16901+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v16f32, V1, V2 , Mask,
16902+ Zeroable, Subtarget , DAG))
1690316903 return V;
1690416904
1690516905 return lowerShuffleWithPERMV(DL, MVT::v16f32, Mask, V1, V2, Subtarget, DAG);
@@ -16967,8 +16967,8 @@ static SDValue lowerV8I64Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1696716967 return Unpck;
1696816968
1696916969 // If we have AVX512F support, we can use VEXPAND.
16970- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v8i64, Zeroable, Mask, V1, V2 ,
16971- DAG, Subtarget))
16970+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v8i64, V1, V2, Mask, Zeroable ,
16971+ Subtarget, DAG ))
1697216972 return V;
1697316973
1697416974 if (SDValue Blend = lowerShuffleAsBlend(DL, MVT::v8i64, V1, V2, Mask,
@@ -17064,8 +17064,8 @@ static SDValue lowerV16I32Shuffle(const SDLoc &DL, ArrayRef<int> Mask,
1706417064 return V;
1706517065
1706617066 // If we have AVX512F support, we can use VEXPAND.
17067- if (SDValue V = lowerShuffleToEXPAND (DL, MVT::v16i32, Zeroable, Mask, V1, V2,
17068- DAG , Subtarget))
17067+ if (SDValue V = lowerShuffleWithEXPAND (DL, MVT::v16i32, V1, V2, Mask ,
17068+ Zeroable , Subtarget, DAG ))
1706917069 return V;
1707017070
1707117071 if (SDValue Blend = lowerShuffleAsBlend(DL, MVT::v16i32, V1, V2, Mask,
0 commit comments