@@ -784,8 +784,9 @@ SITargetLowering::SITargetLowering(const TargetMachine &TM,
784784 {MVT::v2i16, MVT::v2f16, MVT::v2bf16}, Custom);
785785
786786 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},
789790 Custom);
790791
791792 for (MVT VT : {MVT::v4i16, MVT::v8i16, MVT::v16i16, MVT::v32i16})
@@ -7545,9 +7546,8 @@ SDValue SITargetLowering::lowerVECTOR_SHUFFLE(SDValue Op,
75457546 SDLoc SL(Op);
75467547 EVT ResultVT = Op.getValueType();
75477548 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);
75517551 int SrcNumElts = Op.getOperand(0).getValueType().getVectorNumElements();
75527552
75537553 // vector_shuffle <0,1,6,7> lhs, rhs
0 commit comments