summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/AArch64')
-rw-r--r--llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
index 36f7f4e46d0..a06eee0973e 100644
--- a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
+++ b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
@@ -26,6 +26,7 @@ using namespace llvm;
AArch64MachineLegalizer::AArch64MachineLegalizer() {
using namespace TargetOpcode;
+ const LLT s1 = LLT::scalar(1);
const LLT s8 = LLT::scalar(8);
const LLT s16 = LLT::scalar(16);
const LLT s32 = LLT::scalar(32);
@@ -54,6 +55,14 @@ AArch64MachineLegalizer::AArch64MachineLegalizer() {
for (auto Ty : {s32, s64})
setAction(MemOp, Ty, Legal);
+ for (auto Ty : {s32, s64}) {
+ setAction(TargetOpcode::G_CONSTANT, Ty, Legal);
+ setAction(TargetOpcode::G_FCONSTANT, Ty, Legal);
+ }
+
+ for (auto Ty : {s1, s8, s16})
+ setAction(TargetOpcode::G_CONSTANT, Ty, WidenScalar);
+
setAction(G_BR, LLT::unsized(), Legal);
OpenPOWER on IntegriCloud