Skip to content

Commit e139297

Browse files
committed
Remove vunzip2a/b lowering for now
1 parent 99cb8c3 commit e139297

File tree

4 files changed

+78
-196
lines changed

4 files changed

+78
-196
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4913,8 +4913,7 @@ static SDValue lowerVIZIP(unsigned Opc, SDValue Op0, SDValue Op1,
49134913
const SDLoc &DL, SelectionDAG &DAG,
49144914
const RISCVSubtarget &Subtarget) {
49154915
assert(RISCVISD::RI_VZIPEVEN_VL == Opc || RISCVISD::RI_VZIPODD_VL == Opc ||
4916-
RISCVISD::RI_VZIP2A_VL == Opc || RISCVISD::RI_VUNZIP2A_VL == Opc ||
4917-
RISCVISD::RI_VUNZIP2B_VL == Opc);
4916+
RISCVISD::RI_VZIP2A_VL == Opc);
49184917
assert(Op0.getSimpleValueType() == Op1.getSimpleValueType());
49194918

49204919
MVT VT = Op0.getSimpleValueType();
@@ -5452,7 +5451,6 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
54525451
SDLoc DL(Op);
54535452
MVT XLenVT = Subtarget.getXLenVT();
54545453
MVT VT = Op.getSimpleValueType();
5455-
EVT ElemVT = VT.getVectorElementType();
54565454
unsigned NumElts = VT.getVectorNumElements();
54575455
ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Op.getNode());
54585456

@@ -5625,24 +5623,6 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
56255623
}
56265624
}
56275625

5628-
// If this is an e64 deinterleave(2) (possibly with two distinct sources)
5629-
// match to the vunzip2a/vunzip2b.
5630-
unsigned Index = 0;
5631-
if (Subtarget.hasVendorXRivosVizip() && ElemVT == MVT::i64 &&
5632-
ShuffleVectorInst::isDeInterleaveMaskOfFactor(Mask, 2, Index) &&
5633-
1 < count_if(Mask, [](int Idx) { return Idx != -1; })) {
5634-
MVT HalfVT = VT.getHalfNumVectorElementsVT();
5635-
unsigned Opc =
5636-
Index == 0 ? RISCVISD::RI_VUNZIP2A_VL : RISCVISD::RI_VUNZIP2B_VL;
5637-
V1 = lowerVIZIP(Opc, V1, DAG.getUNDEF(VT), DL, DAG, Subtarget);
5638-
V2 = lowerVIZIP(Opc, V2, DAG.getUNDEF(VT), DL, DAG, Subtarget);
5639-
5640-
V1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, V1,
5641-
DAG.getVectorIdxConstant(0, DL));
5642-
V2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, HalfVT, V2,
5643-
DAG.getVectorIdxConstant(0, DL));
5644-
return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, V1, V2);
5645-
}
56465626

56475627
if (SDValue V =
56485628
lowerVECTOR_SHUFFLEAsVSlideup(DL, VT, V1, V2, Mask, Subtarget, DAG))
@@ -6821,7 +6801,7 @@ static bool hasPassthruOp(unsigned Opcode) {
68216801
Opcode <= RISCVISD::LAST_STRICTFP_OPCODE &&
68226802
"not a RISC-V target specific op");
68236803
static_assert(
6824-
RISCVISD::LAST_VL_VECTOR_OP - RISCVISD::FIRST_VL_VECTOR_OP == 132 &&
6804+
RISCVISD::LAST_VL_VECTOR_OP - RISCVISD::FIRST_VL_VECTOR_OP == 130 &&
68256805
RISCVISD::LAST_STRICTFP_OPCODE - RISCVISD::FIRST_STRICTFP_OPCODE == 21 &&
68266806
"adding target specific op should update this function");
68276807
if (Opcode >= RISCVISD::ADD_VL && Opcode <= RISCVISD::VFMAX_VL)
@@ -6845,7 +6825,7 @@ static bool hasMaskOp(unsigned Opcode) {
68456825
Opcode <= RISCVISD::LAST_STRICTFP_OPCODE &&
68466826
"not a RISC-V target specific op");
68476827
static_assert(
6848-
RISCVISD::LAST_VL_VECTOR_OP - RISCVISD::FIRST_VL_VECTOR_OP == 132 &&
6828+
RISCVISD::LAST_VL_VECTOR_OP - RISCVISD::FIRST_VL_VECTOR_OP == 130 &&
68496829
RISCVISD::LAST_STRICTFP_OPCODE - RISCVISD::FIRST_STRICTFP_OPCODE == 21 &&
68506830
"adding target specific op should update this function");
68516831
if (Opcode >= RISCVISD::TRUNCATE_VECTOR_VL && Opcode <= RISCVISD::SETCC_VL)
@@ -21873,8 +21853,6 @@ const char *RISCVTargetLowering::getTargetNodeName(unsigned Opcode) const {
2187321853
NODE_NAME_CASE(RI_VZIPEVEN_VL)
2187421854
NODE_NAME_CASE(RI_VZIPODD_VL)
2187521855
NODE_NAME_CASE(RI_VZIP2A_VL)
21876-
NODE_NAME_CASE(RI_VUNZIP2A_VL)
21877-
NODE_NAME_CASE(RI_VUNZIP2B_VL)
2187821856
NODE_NAME_CASE(READ_CSR)
2187921857
NODE_NAME_CASE(WRITE_CSR)
2188021858
NODE_NAME_CASE(SWAP_CSR)

llvm/lib/Target/RISCV/RISCVISelLowering.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,10 +407,8 @@ enum NodeType : unsigned {
407407
RI_VZIPEVEN_VL,
408408
RI_VZIPODD_VL,
409409
RI_VZIP2A_VL,
410-
RI_VUNZIP2A_VL,
411-
RI_VUNZIP2B_VL,
412410

413-
LAST_VL_VECTOR_OP = RI_VUNZIP2B_VL,
411+
LAST_VL_VECTOR_OP = RI_VZIP2A_VL,
414412

415413
// Read VLENB CSR
416414
READ_VLENB,

llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ defm RI_VUNZIP2B_V : VALU_IV_V<"ri.vunzip2b", 0b011000>;
7171
def ri_vzipeven_vl : SDNode<"RISCVISD::RI_VZIPEVEN_VL", SDT_RISCVIntBinOp_VL>;
7272
def ri_vzipodd_vl : SDNode<"RISCVISD::RI_VZIPODD_VL", SDT_RISCVIntBinOp_VL>;
7373
def ri_vzip2a_vl : SDNode<"RISCVISD::RI_VZIP2A_VL", SDT_RISCVIntBinOp_VL>;
74-
def ri_vunzip2a_vl : SDNode<"RISCVISD::RI_VUNZIP2A_VL", SDT_RISCVIntBinOp_VL>;
75-
def ri_vunzip2b_vl : SDNode<"RISCVISD::RI_VUNZIP2B_VL", SDT_RISCVIntBinOp_VL>;
7674

7775
multiclass RIVPseudoVALU_VV {
7876
foreach m = MxList in {
@@ -86,8 +84,6 @@ let Predicates = [HasVendorXRivosVizip],
8684
defm PseudoRI_VZIPEVEN : RIVPseudoVALU_VV;
8785
defm PseudoRI_VZIPODD : RIVPseudoVALU_VV;
8886
defm PseudoRI_VZIP2A : RIVPseudoVALU_VV;
89-
defm PseudoRI_VUNZIP2A : RIVPseudoVALU_VV;
90-
defm PseudoRI_VUNZIP2B : RIVPseudoVALU_VV;
9187
}
9288

9389
multiclass RIVPatBinaryVL_VV<SDPatternOperator vop, string instruction_name,
@@ -104,8 +100,6 @@ multiclass RIVPatBinaryVL_VV<SDPatternOperator vop, string instruction_name,
104100
defm : RIVPatBinaryVL_VV<ri_vzipeven_vl, "PseudoRI_VZIPEVEN">;
105101
defm : RIVPatBinaryVL_VV<ri_vzipodd_vl, "PseudoRI_VZIPODD">;
106102
defm : RIVPatBinaryVL_VV<ri_vzip2a_vl, "PseudoRI_VZIP2A">;
107-
defm : RIVPatBinaryVL_VV<ri_vunzip2a_vl, "PseudoRI_VUNZIP2A">;
108-
defm : RIVPatBinaryVL_VV<ri_vunzip2b_vl, "PseudoRI_VUNZIP2B">;
109103

110104
//===----------------------------------------------------------------------===//
111105
// XRivosVisni
@@ -127,5 +121,3 @@ def RI_VEXTRACT : CustomRivosXVI<0b010111, OPMVV, (outs GPR:$rd),
127121
(ins VR:$vs2, uimm5:$imm),
128122
"ri.vextract.x.v", "$rd, $vs2, $imm">;
129123
}
130-
131-

0 commit comments

Comments
 (0)