@@ -784,8 +784,9 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
784
784
{MVT::v2i16, MVT::v2f16, MVT::v2bf16}, Custom);
785
785
786
786
setOperationAction(ISD::VECTOR_SHUFFLE,
787
- {MVT::v4f16, MVT::v4i16, MVT::v8f16, MVT::v8i16,
788
- MVT::v16f16, MVT::v16i16, MVT::v32f16, MVT::v32i16},
787
+ {MVT::v4f16, MVT::v4i16, MVT::v4bf16, MVT::v8f16,
788
+ MVT::v8i16, MVT::v8bf16, MVT::v16f16, MVT::v16i16,
789
+ MVT::v16bf16, MVT::v32f16, MVT::v32i16, MVT::v32bf16},
789
790
Custom);
790
791
791
792
for (MVT VT : {MVT::v4i16, MVT::v8i16, MVT::v16i16, MVT::v32i16})
@@ -7545,9 +7546,8 @@ SDValue SITargetLowering::lowerVECTOR_SHUFFLE(SDValue Op,
7545
7546
SDLoc SL(Op);
7546
7547
EVT ResultVT = Op.getValueType();
7547
7548
ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Op);
7548
-
7549
- EVT PackVT = ResultVT.isInteger() ? MVT::v2i16 : MVT::v2f16;
7550
- EVT EltVT = PackVT.getVectorElementType();
7549
+ MVT EltVT = ResultVT.getVectorElementType().getSimpleVT();
7550
+ MVT PackVT = MVT::getVectorVT(EltVT, 2);
7551
7551
int SrcNumElts = Op.getOperand(0).getValueType().getVectorNumElements();
7552
7552
7553
7553
// vector_shuffle <0,1,6,7> lhs, rhs
0 commit comments