Skip to content

Commit 0ba090c

Browse files
committed
fixup! Amend code after Kerry's PR comments
1 parent e9b5c3f commit 0ba090c

File tree

2 files changed

+15
-17
lines changed

2 files changed

+15
-17
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27848,12 +27848,10 @@ AArch64TargetLowering::shouldExpandAtomicRMWInIR(AtomicRMWInst *AI) const {
2784827848
if (CanUseLSE128)
2784927849
return AtomicExpansionKind::None;
2785027850

27851-
// Add support for LDFADD and friends
27852-
bool CanUseAtomicFP =
27853-
Subtarget->hasLSFE() && (AI->getOperation() == AtomicRMWInst::FAdd ||
27851+
// If LSFE available, use atomic FP instructions in preference to expansion
27852+
if (Subtarget->hasLSFE() && (AI->getOperation() == AtomicRMWInst::FAdd ||
2785427853
AI->getOperation() == AtomicRMWInst::FMax ||
27855-
AI->getOperation() == AtomicRMWInst::FMin);
27856-
if (CanUseAtomicFP)
27854+
AI->getOperation() == AtomicRMWInst::FMin))
2785727855
return AtomicExpansionKind::None;
2785827856

2785927857
// Nand is not supported in LSE.

llvm/lib/Target/AArch64/AArch64InstrFormats.td

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12485,22 +12485,22 @@ multiclass LDOPregister_patterns_mod<string inst, string op, string mod> {
1248512485

1248612486
let Predicates = [HasLSFE] in
1248712487
multiclass LDFPOPregister_patterns_ord_dag<string inst, string suffix, string op,
12488-
ValueType vt, dag SrcRHS, dag DstRHS> {
12489-
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_monotonic") FPR64:$Rn, SrcRHS),
12490-
(!cast<Instruction>(inst # suffix) DstRHS, FPR64:$Rn)>;
12491-
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_acquire") FPR64:$Rn, SrcRHS),
12492-
(!cast<Instruction>(inst # "A" # suffix) DstRHS, FPR64:$Rn)>;
12493-
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_release") FPR64:$Rn, SrcRHS),
12494-
(!cast<Instruction>(inst # "L" # suffix) DstRHS, FPR64:$Rn)>;
12495-
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_acq_rel") FPR64:$Rn, SrcRHS),
12496-
(!cast<Instruction>(inst # "AL" # suffix) DstRHS, FPR64:$Rn)>;
12497-
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_seq_cst") FPR64:$Rn, SrcRHS),
12498-
(!cast<Instruction>(inst # "AL" # suffix) DstRHS, FPR64:$Rn)>;
12488+
ValueType vt, dag data> {
12489+
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_monotonic") FPR64:$Rn, data),
12490+
(!cast<Instruction>(inst # suffix) data, FPR64:$Rn)>;
12491+
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_acquire") FPR64:$Rn, data),
12492+
(!cast<Instruction>(inst # "A" # suffix) data, FPR64:$Rn)>;
12493+
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_release") FPR64:$Rn, data),
12494+
(!cast<Instruction>(inst # "L" # suffix) data, FPR64:$Rn)>;
12495+
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_acq_rel") FPR64:$Rn, data),
12496+
(!cast<Instruction>(inst # "AL" # suffix) data, FPR64:$Rn)>;
12497+
def : Pat<(!cast<PatFrag>(op#"_"#vt#"_seq_cst") FPR64:$Rn, data),
12498+
(!cast<Instruction>(inst # "AL" # suffix) data, FPR64:$Rn)>;
1249912499
}
1250012500

1250112501
multiclass LDFPOPregister_patterns_ord<string inst, string suffix, string op,
1250212502
ValueType vt, dag RHS> {
12503-
defm : LDFPOPregister_patterns_ord_dag<inst, suffix, op, vt, RHS, RHS>;
12503+
defm : LDFPOPregister_patterns_ord_dag<inst, suffix, op, vt, RHS>;
1250412504
}
1250512505

1250612506
multiclass LDFPOPregister_patterns<string inst, string op> {

0 commit comments

Comments
 (0)