diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -216,7 +216,7 @@ "IsPaired128Slow", "true", "Paired 128 bit loads and stores are slow">; def FeatureAscendStoreAddress : SubtargetFeature<"ascend-store-address", - "IsStoreAddressAscend", "false", + "IsStoreAddressAscend", "true", "Schedule vector stores by ascending address">; def FeatureSlowSTRQro : SubtargetFeature<"slow-strqro-store", "IsSTRQroSlow", diff --git a/llvm/lib/Target/AArch64/AArch64MachineScheduler.cpp b/llvm/lib/Target/AArch64/AArch64MachineScheduler.cpp --- a/llvm/lib/Target/AArch64/AArch64MachineScheduler.cpp +++ b/llvm/lib/Target/AArch64/AArch64MachineScheduler.cpp @@ -22,8 +22,8 @@ return false; case AArch64::STURQi: case AArch64::STRQui: - if (MI->getMF()->getSubtarget().isStoreAddressAscend()) - return false; + if (!MI->getMF()->getSubtarget().isStoreAddressAscend()) + return false; LLVM_FALLTHROUGH; case AArch64::STPQi: return AArch64InstrInfo::getLdStOffsetOp(*MI).isImm();