diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-09-16 15:12:43 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-09-16 15:12:43 +0000 |
commit | 7b3b2e7f652d17ceea538d03da1db3c3fc379e22 (patch) | |
tree | 22e1b5bfe37584d4206a60f638c09bff3d2a0e9c /llvm/lib/Target | |
parent | 90637f61961bd7a3d2c56b15ced60b36ca6ca940 (diff) | |
download | bcm5719-llvm-7b3b2e7f652d17ceea538d03da1db3c3fc379e22.tar.gz bcm5719-llvm-7b3b2e7f652d17ceea538d03da1db3c3fc379e22.zip |
[AArch64][GlobalISel] Add default regbank mapping for G_FCMP.
llvm-svn: 281738
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp index ab70820e086..dab6225e4cf 100644 --- a/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp @@ -221,6 +221,16 @@ AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { OpBanks[Idx] = AArch64::GPRRegBankID; } + // Some of the floating-point instructions have mixed GPR and FPR operands: + // fine-tune the computed mapping. + switch (Opc) { + case TargetOpcode::G_FCMP: { + OpBanks = {AArch64::GPRRegBankID, /* Predicate */ 0, AArch64::FPRRegBankID, + AArch64::FPRRegBankID}; + break; + } + } + // Finally construct the computed mapping. for (unsigned Idx = 0; Idx < MI.getNumOperands(); ++Idx) if (MI.getOperand(Idx).isReg()) |