Skip to content

Commit 54d08e4

Browse files
committed
Address review comments
1 parent 9438023 commit 54d08e4

File tree

2 files changed

+27
-46
lines changed

2 files changed

+27
-46
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 25 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -357,48 +357,27 @@ AArch64TargetLowering::AArch64TargetLowering(const TargetMachine &TM,
357357
addRegisterClass(MVT::f128, &AArch64::FPR128RegClass);
358358
}
359359

360-
if (Subtarget->isNeonAvailable()) {
361-
addRegisterClass(MVT::v16i8, &AArch64::FPR8RegClass);
362-
addRegisterClass(MVT::v8i16, &AArch64::FPR16RegClass);
363-
// Someone set us up the NEON.
364-
addDRTypeForNEON(MVT::v2f32);
365-
addDRTypeForNEON(MVT::v8i8);
366-
addDRTypeForNEON(MVT::v4i16);
367-
addDRTypeForNEON(MVT::v2i32);
368-
addDRTypeForNEON(MVT::v1i64);
369-
addDRTypeForNEON(MVT::v1f64);
370-
addDRTypeForNEON(MVT::v4f16);
371-
addDRTypeForNEON(MVT::v4bf16);
372-
373-
addQRTypeForNEON(MVT::v4f32);
374-
addQRTypeForNEON(MVT::v2f64);
375-
addQRTypeForNEON(MVT::v16i8);
376-
addQRTypeForNEON(MVT::v8i16);
377-
addQRTypeForNEON(MVT::v4i32);
378-
addQRTypeForNEON(MVT::v2i64);
379-
addQRTypeForNEON(MVT::v8f16);
380-
addQRTypeForNEON(MVT::v8bf16);
381-
} else if (Subtarget->hasNEON() || Subtarget->useSVEForFixedLengthVectors()) {
360+
if (Subtarget->hasNEON()) {
382361
addRegisterClass(MVT::v16i8, &AArch64::FPR8RegClass);
383362
addRegisterClass(MVT::v8i16, &AArch64::FPR16RegClass);
384363

385-
addRegisterClass(MVT::v2f32, &AArch64::FPR64RegClass);
386-
addRegisterClass(MVT::v8i8, &AArch64::FPR64RegClass);
387-
addRegisterClass(MVT::v4i16, &AArch64::FPR64RegClass);
388-
addRegisterClass(MVT::v2i32, &AArch64::FPR64RegClass);
389-
addRegisterClass(MVT::v1i64, &AArch64::FPR64RegClass);
390-
addRegisterClass(MVT::v1f64, &AArch64::FPR64RegClass);
391-
addRegisterClass(MVT::v4f16, &AArch64::FPR64RegClass);
392-
addRegisterClass(MVT::v4bf16, &AArch64::FPR64RegClass);
393-
394-
addRegisterClass(MVT::v4f32, &AArch64::FPR128RegClass);
395-
addRegisterClass(MVT::v2f64, &AArch64::FPR128RegClass);
396-
addRegisterClass(MVT::v16i8, &AArch64::FPR128RegClass);
397-
addRegisterClass(MVT::v8i16, &AArch64::FPR128RegClass);
398-
addRegisterClass(MVT::v4i32, &AArch64::FPR128RegClass);
399-
addRegisterClass(MVT::v2i64, &AArch64::FPR128RegClass);
400-
addRegisterClass(MVT::v8f16, &AArch64::FPR128RegClass);
401-
addRegisterClass(MVT::v8bf16, &AArch64::FPR128RegClass);
364+
addDRType(MVT::v2f32);
365+
addDRType(MVT::v8i8);
366+
addDRType(MVT::v4i16);
367+
addDRType(MVT::v2i32);
368+
addDRType(MVT::v1i64);
369+
addDRType(MVT::v1f64);
370+
addDRType(MVT::v4f16);
371+
addDRType(MVT::v4bf16);
372+
373+
addQRType(MVT::v4f32);
374+
addQRType(MVT::v2f64);
375+
addQRType(MVT::v16i8);
376+
addQRType(MVT::v8i16);
377+
addQRType(MVT::v4i32);
378+
addQRType(MVT::v2i64);
379+
addQRType(MVT::v8f16);
380+
addQRType(MVT::v8bf16);
402381
}
403382

404383
if (Subtarget->hasSVEorSME()) {
@@ -1358,7 +1337,7 @@ AArch64TargetLowering::AArch64TargetLowering(const TargetMachine &TM,
13581337
// FADDP custom lowering
13591338
for (MVT VT : { MVT::v16f16, MVT::v8f32, MVT::v4f64 })
13601339
setOperationAction(ISD::FADD, VT, Custom);
1361-
} else {
1340+
} else /* !isNeonAvailable */ {
13621341
for (MVT VT : MVT::fixedlen_vector_valuetypes()) {
13631342
for (unsigned Op = 0; Op < ISD::BUILTIN_OP_END; ++Op)
13641343
setOperationAction(Op, VT, Expand);
@@ -2059,14 +2038,16 @@ void AArch64TargetLowering::addTypeForFixedLengthSVE(MVT VT) {
20592038
setOperationAction(ISD::ZERO_EXTEND, VT, Default);
20602039
}
20612040

2062-
void AArch64TargetLowering::addDRTypeForNEON(MVT VT) {
2041+
void AArch64TargetLowering::addDRType(MVT VT) {
20632042
addRegisterClass(VT, &AArch64::FPR64RegClass);
2064-
addTypeForNEON(VT);
2043+
if (Subtarget->isNeonAvailable())
2044+
addTypeForNEON(VT);
20652045
}
20662046

2067-
void AArch64TargetLowering::addQRTypeForNEON(MVT VT) {
2047+
void AArch64TargetLowering::addQRType(MVT VT) {
20682048
addRegisterClass(VT, &AArch64::FPR128RegClass);
2069-
addTypeForNEON(VT);
2049+
if (Subtarget->isNeonAvailable())
2050+
addTypeForNEON(VT);
20702051
}
20712052

20722053
EVT AArch64TargetLowering::getSetCCResultType(const DataLayout &,

llvm/lib/Target/AArch64/AArch64ISelLowering.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,8 +1017,8 @@ class AArch64TargetLowering : public TargetLowering {
10171017

10181018
void addTypeForNEON(MVT VT);
10191019
void addTypeForFixedLengthSVE(MVT VT);
1020-
void addDRTypeForNEON(MVT VT);
1021-
void addQRTypeForNEON(MVT VT);
1020+
void addDRType(MVT VT);
1021+
void addQRType(MVT VT);
10221022

10231023
bool shouldExpandBuildVectorWithShuffles(EVT, unsigned) const override;
10241024

0 commit comments

Comments
 (0)