Skip to content

Commit 6bdf7e0

Browse files
committed
AArch64: Use TargetConstant for intrinsic IDs
These should always use TargetConstant
1 parent 2d51705 commit 6bdf7e0

File tree

1 file changed

+47
-41
lines changed

1 file changed

+47
-41
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5544,9 +5544,10 @@ SDValue AArch64TargetLowering::LowerGET_ROUNDING(SDValue Op,
55445544
SDLoc DL(Op);
55455545

55465546
SDValue Chain = Op.getOperand(0);
5547-
SDValue FPCR_64 = DAG.getNode(
5548-
ISD::INTRINSIC_W_CHAIN, DL, {MVT::i64, MVT::Other},
5549-
{Chain, DAG.getConstant(Intrinsic::aarch64_get_fpcr, DL, MVT::i64)});
5547+
SDValue FPCR_64 =
5548+
DAG.getNode(ISD::INTRINSIC_W_CHAIN, DL, {MVT::i64, MVT::Other},
5549+
{Chain, DAG.getTargetConstant(Intrinsic::aarch64_get_fpcr, DL,
5550+
MVT::i64)});
55505551
Chain = FPCR_64.getValue(1);
55515552
SDValue FPCR_32 = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, FPCR_64);
55525553
SDValue FltRounds = DAG.getNode(ISD::ADD, DL, MVT::i32, FPCR_32,
@@ -5632,7 +5633,8 @@ SDValue AArch64TargetLowering::LowerSET_FPMODE(SDValue Op,
56325633

56335634
// Set new value of FPCR.
56345635
SDValue Ops2[] = {
5635-
Chain, DAG.getConstant(Intrinsic::aarch64_set_fpcr, DL, MVT::i64), FPCR};
5636+
Chain, DAG.getTargetConstant(Intrinsic::aarch64_set_fpcr, DL, MVT::i64),
5637+
FPCR};
56365638
return DAG.getNode(ISD::INTRINSIC_VOID, DL, MVT::Other, Ops2);
56375639
}
56385640

@@ -5655,9 +5657,9 @@ SDValue AArch64TargetLowering::LowerRESET_FPMODE(SDValue Op,
56555657
DAG.getConstant(AArch64::ReservedFPControlBits, DL, MVT::i64));
56565658

56575659
// Set new value of FPCR.
5658-
SDValue Ops2[] = {Chain,
5659-
DAG.getConstant(Intrinsic::aarch64_set_fpcr, DL, MVT::i64),
5660-
FPSCRMasked};
5660+
SDValue Ops2[] = {
5661+
Chain, DAG.getTargetConstant(Intrinsic::aarch64_set_fpcr, DL, MVT::i64),
5662+
FPSCRMasked};
56615663
return DAG.getNode(ISD::INTRINSIC_VOID, DL, MVT::Other, Ops2);
56625664
}
56635665

@@ -7289,17 +7291,19 @@ SDValue AArch64TargetLowering::LowerVECTOR_COMPRESS(SDValue Op,
72897291

72907292
SDValue Compressed = DAG.getNode(
72917293
ISD::INTRINSIC_WO_CHAIN, DL, Vec.getValueType(),
7292-
DAG.getConstant(Intrinsic::aarch64_sve_compact, DL, MVT::i64), Mask, Vec);
7294+
DAG.getTargetConstant(Intrinsic::aarch64_sve_compact, DL, MVT::i64), Mask,
7295+
Vec);
72937296

72947297
// compact fills with 0s, so if our passthru is all 0s, do nothing here.
72957298
if (HasPassthru && !ISD::isConstantSplatVectorAllZeros(Passthru.getNode())) {
72967299
SDValue Offset = DAG.getNode(
72977300
ISD::INTRINSIC_WO_CHAIN, DL, MVT::i64,
7298-
DAG.getConstant(Intrinsic::aarch64_sve_cntp, DL, MVT::i64), Mask, Mask);
7301+
DAG.getTargetConstant(Intrinsic::aarch64_sve_cntp, DL, MVT::i64), Mask,
7302+
Mask);
72997303

73007304
SDValue IndexMask = DAG.getNode(
73017305
ISD::INTRINSIC_WO_CHAIN, DL, MaskVT,
7302-
DAG.getConstant(Intrinsic::aarch64_sve_whilelo, DL, MVT::i64),
7306+
DAG.getTargetConstant(Intrinsic::aarch64_sve_whilelo, DL, MVT::i64),
73037307
DAG.getConstant(0, DL, MVT::i64), Offset);
73047308

73057309
Compressed =
@@ -7428,10 +7432,10 @@ static SDValue LowerFLDEXP(SDValue Op, SelectionDAG &DAG) {
74287432
DAG.getUNDEF(ExpVT), Exp, Zero);
74297433
SDValue VPg = getPTrue(DAG, DL, XVT.changeVectorElementType(MVT::i1),
74307434
AArch64SVEPredPattern::all);
7431-
SDValue FScale =
7432-
DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, XVT,
7433-
DAG.getConstant(Intrinsic::aarch64_sve_fscale, DL, MVT::i64),
7434-
VPg, VX, VExp);
7435+
SDValue FScale = DAG.getNode(
7436+
ISD::INTRINSIC_WO_CHAIN, DL, XVT,
7437+
DAG.getTargetConstant(Intrinsic::aarch64_sve_fscale, DL, MVT::i64), VPg,
7438+
VX, VExp);
74357439
SDValue Final =
74367440
DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, X.getValueType(), FScale, Zero);
74377441
if (X.getValueType() != XScalarTy)
@@ -8094,7 +8098,7 @@ static SDValue emitRestoreZALazySave(SDValue Chain, SDLoc DL,
80948098
TLI.getLibcallName(LC), TLI.getPointerTy(DAG.getDataLayout()));
80958099
SDValue TPIDR2_EL0 = DAG.getNode(
80968100
ISD::INTRINSIC_W_CHAIN, DL, MVT::i64, Chain,
8097-
DAG.getConstant(Intrinsic::aarch64_sme_get_tpidr2, DL, MVT::i32));
8101+
DAG.getTargetConstant(Intrinsic::aarch64_sme_get_tpidr2, DL, MVT::i32));
80988102
// Copy the address of the TPIDR2 block into X0 before 'calling' the
80998103
// RESTORE_ZA pseudo.
81008104
SDValue Glue;
@@ -8109,7 +8113,7 @@ static SDValue emitRestoreZALazySave(SDValue Chain, SDLoc DL,
81098113
// Finally reset the TPIDR2_EL0 register to 0.
81108114
Chain = DAG.getNode(
81118115
ISD::INTRINSIC_VOID, DL, MVT::Other, Chain,
8112-
DAG.getConstant(Intrinsic::aarch64_sme_set_tpidr2, DL, MVT::i32),
8116+
DAG.getTargetConstant(Intrinsic::aarch64_sme_set_tpidr2, DL, MVT::i32),
81138117
DAG.getConstant(0, DL, MVT::i64));
81148118
TPIDR2.Uses++;
81158119
return Chain;
@@ -8704,7 +8708,7 @@ SDValue AArch64TargetLowering::LowerFormalArguments(
87048708
if (Attrs.isNewZT0())
87058709
Chain = DAG.getNode(
87068710
ISD::INTRINSIC_VOID, DL, MVT::Other, Chain,
8707-
DAG.getConstant(Intrinsic::aarch64_sme_zero_zt, DL, MVT::i32),
8711+
DAG.getTargetConstant(Intrinsic::aarch64_sme_zero_zt, DL, MVT::i32),
87088712
DAG.getTargetConstant(0, DL, MVT::i32));
87098713
}
87108714

@@ -9517,7 +9521,7 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
95179521
DAG.getTargetLoweringInfo().getFrameIndexTy(DAG.getDataLayout()));
95189522
Chain = DAG.getNode(
95199523
ISD::INTRINSIC_VOID, DL, MVT::Other, Chain,
9520-
DAG.getConstant(Intrinsic::aarch64_sme_set_tpidr2, DL, MVT::i32),
9524+
DAG.getTargetConstant(Intrinsic::aarch64_sme_set_tpidr2, DL, MVT::i32),
95219525
TPIDR2ObjAddr);
95229526
OptimizationRemarkEmitter ORE(&MF.getFunction());
95239527
ORE.emit([&]() {
@@ -13408,8 +13412,8 @@ SDValue ReconstructShuffleWithRuntimeMask(SDValue Op, SelectionDAG &DAG) {
1340813412

1340913413
return DAG.getNode(
1341013414
ISD::INTRINSIC_WO_CHAIN, DL, VT,
13411-
DAG.getConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32), SourceVec,
13412-
MaskSourceVec);
13415+
DAG.getTargetConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32),
13416+
SourceVec, MaskSourceVec);
1341313417
}
1341413418

1341513419
// Gather data to see if the operation can be modelled as a
@@ -14265,14 +14269,16 @@ static SDValue GenerateTBL(SDValue Op, ArrayRef<int> ShuffleMask,
1426514269
V1Cst = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v16i8, V1Cst, V1Cst);
1426614270
Shuffle = DAG.getNode(
1426714271
ISD::INTRINSIC_WO_CHAIN, DL, IndexVT,
14268-
DAG.getConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32), V1Cst,
14272+
DAG.getTargetConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32),
14273+
V1Cst,
1426914274
DAG.getBuildVector(IndexVT, DL, ArrayRef(TBLMask.data(), IndexLen)));
1427014275
} else {
1427114276
if (IndexLen == 8) {
1427214277
V1Cst = DAG.getNode(ISD::CONCAT_VECTORS, DL, MVT::v16i8, V1Cst, V2Cst);
1427314278
Shuffle = DAG.getNode(
1427414279
ISD::INTRINSIC_WO_CHAIN, DL, IndexVT,
14275-
DAG.getConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32), V1Cst,
14280+
DAG.getTargetConstant(Intrinsic::aarch64_neon_tbl1, DL, MVT::i32),
14281+
V1Cst,
1427614282
DAG.getBuildVector(IndexVT, DL, ArrayRef(TBLMask.data(), IndexLen)));
1427714283
} else {
1427814284
// FIXME: We cannot, for the moment, emit a TBL2 instruction because we
@@ -14283,8 +14289,8 @@ static SDValue GenerateTBL(SDValue Op, ArrayRef<int> ShuffleMask,
1428314289
// IndexLen));
1428414290
Shuffle = DAG.getNode(
1428514291
ISD::INTRINSIC_WO_CHAIN, DL, IndexVT,
14286-
DAG.getConstant(Intrinsic::aarch64_neon_tbl2, DL, MVT::i32), V1Cst,
14287-
V2Cst,
14292+
DAG.getTargetConstant(Intrinsic::aarch64_neon_tbl2, DL, MVT::i32),
14293+
V1Cst, V2Cst,
1428814294
DAG.getBuildVector(IndexVT, DL, ArrayRef(TBLMask.data(), IndexLen)));
1428914295
}
1429014296
}
@@ -16437,10 +16443,10 @@ SDValue AArch64TargetLowering::LowerVectorSRA_SRL_SHL(SDValue Op,
1643716443
if (isVShiftLImm(Op.getOperand(1), VT, false, Cnt) && Cnt < EltSize)
1643816444
return DAG.getNode(AArch64ISD::VSHL, DL, VT, Op.getOperand(0),
1643916445
DAG.getTargetConstant(Cnt, DL, MVT::i32));
16440-
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VT,
16441-
DAG.getConstant(Intrinsic::aarch64_neon_ushl, DL,
16442-
MVT::i32),
16443-
Op.getOperand(0), Op.getOperand(1));
16446+
return DAG.getNode(
16447+
ISD::INTRINSIC_WO_CHAIN, DL, VT,
16448+
DAG.getTargetConstant(Intrinsic::aarch64_neon_ushl, DL, MVT::i32),
16449+
Op.getOperand(0), Op.getOperand(1));
1644416450
case ISD::SRA:
1644516451
case ISD::SRL:
1644616452
if (VT.isScalableVector() &&
@@ -20160,7 +20166,7 @@ static SDValue performFpToIntCombine(SDNode *N, SelectionDAG &DAG,
2016020166
: Intrinsic::aarch64_neon_vcvtfp2fxu;
2016120167
SDValue FixConv =
2016220168
DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, ResTy,
20163-
DAG.getConstant(IntrinsicOpcode, DL, MVT::i32),
20169+
DAG.getTargetConstant(IntrinsicOpcode, DL, MVT::i32),
2016420170
Op->getOperand(0), DAG.getTargetConstant(C, DL, MVT::i32));
2016520171
// We can handle smaller integers by generating an extra trunc.
2016620172
if (IntBits < FloatBits)
@@ -27416,8 +27422,8 @@ static SDValue combineSVEPrefetchVecBaseImmOff(SDNode *N, SelectionDAG &DAG,
2741627422
// ...and remap the intrinsic `aarch64_sve_prf<T>_gather_scalar_offset` to
2741727423
// `aarch64_sve_prfb_gather_uxtw_index`.
2741827424
SDLoc DL(N);
27419-
Ops[1] = DAG.getConstant(Intrinsic::aarch64_sve_prfb_gather_uxtw_index, DL,
27420-
MVT::i64);
27425+
Ops[1] = DAG.getTargetConstant(Intrinsic::aarch64_sve_prfb_gather_uxtw_index,
27426+
DL, MVT::i64);
2742127427

2742227428
return DAG.getNode(N->getOpcode(), DL, DAG.getVTList(MVT::Other), Ops);
2742327429
}
@@ -31251,10 +31257,10 @@ static SDValue GenerateFixedLengthSVETBL(SDValue Op, SDValue Op1, SDValue Op2,
3125131257

3125231258
SDValue Shuffle;
3125331259
if (IsSingleOp)
31254-
Shuffle =
31255-
DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, ContainerVT,
31256-
DAG.getConstant(Intrinsic::aarch64_sve_tbl, DL, MVT::i32),
31257-
Op1, SVEMask);
31260+
Shuffle = DAG.getNode(
31261+
ISD::INTRINSIC_WO_CHAIN, DL, ContainerVT,
31262+
DAG.getTargetConstant(Intrinsic::aarch64_sve_tbl, DL, MVT::i32), Op1,
31263+
SVEMask);
3125831264
else if (Subtarget.hasSVE2()) {
3125931265
if (!MinMaxEqual) {
3126031266
unsigned MinNumElts = AArch64::SVEBitsPerBlock / BitsPerElt;
@@ -31273,10 +31279,10 @@ static SDValue GenerateFixedLengthSVETBL(SDValue Op, SDValue Op1, SDValue Op2,
3127331279
SVEMask = convertToScalableVector(
3127431280
DAG, getContainerForFixedLengthVector(DAG, MaskType), UpdatedVecMask);
3127531281
}
31276-
Shuffle =
31277-
DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, ContainerVT,
31278-
DAG.getConstant(Intrinsic::aarch64_sve_tbl2, DL, MVT::i32),
31279-
Op1, Op2, SVEMask);
31282+
Shuffle = DAG.getNode(
31283+
ISD::INTRINSIC_WO_CHAIN, DL, ContainerVT,
31284+
DAG.getTargetConstant(Intrinsic::aarch64_sve_tbl2, DL, MVT::i32), Op1,
31285+
Op2, SVEMask);
3128031286
}
3128131287
Shuffle = convertFromScalableVector(DAG, VT, Shuffle);
3128231288
return DAG.getNode(ISD::BITCAST, DL, Op.getValueType(), Shuffle);
@@ -31436,8 +31442,8 @@ SDValue AArch64TargetLowering::LowerFixedLengthVECTOR_SHUFFLEToSVE(
3143631442
unsigned SegmentElts = VT.getVectorNumElements() / Segments;
3143731443
if (std::optional<unsigned> Lane =
3143831444
isDUPQMask(ShuffleMask, Segments, SegmentElts)) {
31439-
SDValue IID =
31440-
DAG.getConstant(Intrinsic::aarch64_sve_dup_laneq, DL, MVT::i64);
31445+
SDValue IID = DAG.getTargetConstant(Intrinsic::aarch64_sve_dup_laneq,
31446+
DL, MVT::i64);
3144131447
return convertFromScalableVector(
3144231448
DAG, VT,
3144331449
DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, ContainerVT,

0 commit comments

Comments
 (0)