Skip to content

Commit 63e6bba

Browse files
committed
Revert "[LoongArch] Support CTLZ with lsx/lasx"
This reverts commit 07cec73.
1 parent 07cec73 commit 63e6bba

File tree

5 files changed

+10
-327
lines changed

5 files changed

+10
-327
lines changed

llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ LoongArchTargetLowering::LoongArchTargetLowering(const TargetMachine &TM,
256256
VT, Legal);
257257
setOperationAction({ISD::AND, ISD::OR, ISD::XOR}, VT, Legal);
258258
setOperationAction({ISD::SHL, ISD::SRA, ISD::SRL}, VT, Legal);
259-
setOperationAction({ISD::CTPOP, ISD::CTLZ}, VT, Legal);
259+
setOperationAction(ISD::CTPOP, VT, Legal);
260260
}
261261
for (MVT VT : {MVT::v4f32, MVT::v2f64}) {
262262
setOperationAction({ISD::FADD, ISD::FSUB}, VT, Legal);
@@ -286,7 +286,7 @@ LoongArchTargetLowering::LoongArchTargetLowering(const TargetMachine &TM,
286286
VT, Legal);
287287
setOperationAction({ISD::AND, ISD::OR, ISD::XOR}, VT, Legal);
288288
setOperationAction({ISD::SHL, ISD::SRA, ISD::SRL}, VT, Legal);
289-
setOperationAction({ISD::CTPOP, ISD::CTLZ}, VT, Legal);
289+
setOperationAction(ISD::CTPOP, VT, Legal);
290290
}
291291
for (MVT VT : {MVT::v8f32, MVT::v4f64}) {
292292
setOperationAction({ISD::FADD, ISD::FSUB}, VT, Legal);
@@ -2827,15 +2827,6 @@ performINTRINSIC_WO_CHAINCombine(SDNode *N, SelectionDAG &DAG,
28272827
case Intrinsic::loongarch_lasx_xvsrai_d:
28282828
return DAG.getNode(ISD::SRA, DL, N->getValueType(0), N->getOperand(1),
28292829
lowerVectorSplatImm<6>(N, 2, DAG));
2830-
case Intrinsic::loongarch_lsx_vclz_b:
2831-
case Intrinsic::loongarch_lsx_vclz_h:
2832-
case Intrinsic::loongarch_lsx_vclz_w:
2833-
case Intrinsic::loongarch_lsx_vclz_d:
2834-
case Intrinsic::loongarch_lasx_xvclz_b:
2835-
case Intrinsic::loongarch_lasx_xvclz_h:
2836-
case Intrinsic::loongarch_lasx_xvclz_w:
2837-
case Intrinsic::loongarch_lasx_xvclz_d:
2838-
return DAG.getNode(ISD::CTLZ, DL, N->getValueType(0), N->getOperand(1));
28392830
case Intrinsic::loongarch_lsx_vpcnt_b:
28402831
case Intrinsic::loongarch_lsx_vpcnt_h:
28412832
case Intrinsic::loongarch_lsx_vpcnt_w:

llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,9 +1273,6 @@ defm : PatXrXr<sra, "XVSRA">;
12731273
defm : PatShiftXrXr<sra, "XVSRA">;
12741274
defm : PatShiftXrUimm<sra, "XVSRAI">;
12751275

1276-
// XVCLZ_{B/H/W/D}
1277-
defm : PatXr<ctlz, "XVCLZ">;
1278-
12791276
// XVPCNT_{B/H/W/D}
12801277
defm : PatXr<ctpop, "XVPCNT">;
12811278

@@ -1593,26 +1590,26 @@ foreach Inst = ["XVMADDWEV_Q_D", "XVMADDWOD_Q_D", "XVMADDWEV_Q_DU",
15931590
// (LAInst vty:$xj)>;
15941591
foreach Inst = ["XVEXTH_H_B", "XVEXTH_HU_BU",
15951592
"XVMSKLTZ_B", "XVMSKGEZ_B", "XVMSKNZ_B",
1596-
"XVCLO_B", "VEXT2XV_H_B", "VEXT2XV_HU_BU",
1593+
"XVCLO_B", "XVCLZ_B", "VEXT2XV_H_B", "VEXT2XV_HU_BU",
15971594
"VEXT2XV_W_B", "VEXT2XV_WU_BU", "VEXT2XV_D_B",
15981595
"VEXT2XV_DU_BU", "XVREPLVE0_B", "XVREPLVE0_Q"] in
15991596
def : Pat<(deriveLASXIntrinsic<Inst>.ret (v32i8 LASX256:$xj)),
16001597
(!cast<LAInst>(Inst) LASX256:$xj)>;
16011598
foreach Inst = ["XVEXTH_W_H", "XVEXTH_WU_HU", "XVMSKLTZ_H",
1602-
"XVCLO_H", "XVFCVTL_S_H", "XVFCVTH_S_H",
1599+
"XVCLO_H", "XVCLZ_H", "XVFCVTL_S_H", "XVFCVTH_S_H",
16031600
"VEXT2XV_W_H", "VEXT2XV_WU_HU", "VEXT2XV_D_H",
16041601
"VEXT2XV_DU_HU", "XVREPLVE0_H"] in
16051602
def : Pat<(deriveLASXIntrinsic<Inst>.ret (v16i16 LASX256:$xj)),
16061603
(!cast<LAInst>(Inst) LASX256:$xj)>;
16071604
foreach Inst = ["XVEXTH_D_W", "XVEXTH_DU_WU", "XVMSKLTZ_W",
1608-
"XVCLO_W", "XVFFINT_S_W", "XVFFINT_S_WU",
1605+
"XVCLO_W", "XVCLZ_W", "XVFFINT_S_W", "XVFFINT_S_WU",
16091606
"XVFFINTL_D_W", "XVFFINTH_D_W",
16101607
"VEXT2XV_D_W", "VEXT2XV_DU_WU", "XVREPLVE0_W"] in
16111608
def : Pat<(deriveLASXIntrinsic<Inst>.ret (v8i32 LASX256:$xj)),
16121609
(!cast<LAInst>(Inst) LASX256:$xj)>;
16131610
foreach Inst = ["XVEXTH_Q_D", "XVEXTH_QU_DU", "XVMSKLTZ_D",
16141611
"XVEXTL_Q_D", "XVEXTL_QU_DU",
1615-
"XVCLO_D", "XVFFINT_D_L", "XVFFINT_D_LU",
1612+
"XVCLO_D", "XVCLZ_D", "XVFFINT_D_L", "XVFFINT_D_LU",
16161613
"XVREPLVE0_D"] in
16171614
def : Pat<(deriveLASXIntrinsic<Inst>.ret (v4i64 LASX256:$xj)),
16181615
(!cast<LAInst>(Inst) LASX256:$xj)>;

llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,9 +1350,6 @@ defm : PatVrVr<sra, "VSRA">;
13501350
defm : PatShiftVrVr<sra, "VSRA">;
13511351
defm : PatShiftVrUimm<sra, "VSRAI">;
13521352

1353-
// VCLZ_{B/H/W/D}
1354-
defm : PatVr<ctlz, "VCLZ">;
1355-
13561353
// VPCNT_{B/H/W/D}
13571354
defm : PatVr<ctpop, "VPCNT">;
13581355

@@ -1677,21 +1674,21 @@ foreach Inst = ["VMADDWEV_Q_D", "VMADDWOD_Q_D", "VMADDWEV_Q_DU",
16771674
// (LAInst vty:$vj)>;
16781675
foreach Inst = ["VEXTH_H_B", "VEXTH_HU_BU",
16791676
"VMSKLTZ_B", "VMSKGEZ_B", "VMSKNZ_B",
1680-
"VCLO_B"] in
1677+
"VCLO_B", "VCLZ_B"] in
16811678
def : Pat<(deriveLSXIntrinsic<Inst>.ret (v16i8 LSX128:$vj)),
16821679
(!cast<LAInst>(Inst) LSX128:$vj)>;
16831680
foreach Inst = ["VEXTH_W_H", "VEXTH_WU_HU", "VMSKLTZ_H",
1684-
"VCLO_H", "VFCVTL_S_H", "VFCVTH_S_H"] in
1681+
"VCLO_H", "VCLZ_H", "VFCVTL_S_H", "VFCVTH_S_H"] in
16851682
def : Pat<(deriveLSXIntrinsic<Inst>.ret (v8i16 LSX128:$vj)),
16861683
(!cast<LAInst>(Inst) LSX128:$vj)>;
16871684
foreach Inst = ["VEXTH_D_W", "VEXTH_DU_WU", "VMSKLTZ_W",
1688-
"VCLO_W", "VFFINT_S_W", "VFFINT_S_WU",
1685+
"VCLO_W", "VCLZ_W", "VFFINT_S_W", "VFFINT_S_WU",
16891686
"VFFINTL_D_W", "VFFINTH_D_W"] in
16901687
def : Pat<(deriveLSXIntrinsic<Inst>.ret (v4i32 LSX128:$vj)),
16911688
(!cast<LAInst>(Inst) LSX128:$vj)>;
16921689
foreach Inst = ["VEXTH_Q_D", "VEXTH_QU_DU", "VMSKLTZ_D",
16931690
"VEXTL_Q_D", "VEXTL_QU_DU",
1694-
"VCLO_D", "VFFINT_D_L", "VFFINT_D_LU"] in
1691+
"VCLO_D", "VCLZ_D", "VFFINT_D_L", "VFFINT_D_LU"] in
16951692
def : Pat<(deriveLSXIntrinsic<Inst>.ret (v2i64 LSX128:$vj)),
16961693
(!cast<LAInst>(Inst) LSX128:$vj)>;
16971694

llvm/test/CodeGen/LoongArch/lasx/ctpop-ctlz.ll

Lines changed: 0 additions & 151 deletions
This file was deleted.

0 commit comments

Comments
 (0)