diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp --- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -6,6 +6,7 @@ // //===----------------------------------------------------------------------===// +#include "AArch64Subtarget.h" #include "MCTargetDesc/AArch64AddressingModes.h" #include "MCTargetDesc/AArch64MCExpr.h" #include "MCTargetDesc/AArch64MCTargetDesc.h" @@ -4705,7 +4706,8 @@ // instruction for FP registers correctly in some rare circumstances. Convert // it to a safe instruction and warn (because silently changing someone's // assembly is rude). - if (getSTI().getFeatureBits()[AArch64::FeatureZCZeroingFPWorkaround] && + if (static_cast(getSTI()) + .hasZeroCycleZeroingFPWorkaround() && NumOperands == 4 && Tok == "movi") { AArch64Operand &Op1 = static_cast(*Operands[1]); AArch64Operand &Op2 = static_cast(*Operands[2]);