summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-08-25 17:37:35 +0000
committerTim Northover <tnorthover@apple.com>2016-08-25 17:37:35 +0000
commit7a1ec0141ac6c24b3f5960cf3b98e52cfacfd800 (patch)
tree429ed8ab7e9f51f1d860dc4e65b78667f2bb4cd2
parent438c77ca1adf6ea29d25f5c53336dacff5ac5a21 (diff)
downloadbcm5719-llvm-7a1ec0141ac6c24b3f5960cf3b98e52cfacfd800.tar.gz
bcm5719-llvm-7a1ec0141ac6c24b3f5960cf3b98e52cfacfd800.zip
GlobalISel: mark pointer constants as legal on AArch64.
llvm-svn: 279759
-rw-r--r--llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp2
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir3
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
index e6012aa1cef..8ba69333ae0 100644
--- a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
+++ b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp
@@ -72,6 +72,8 @@ AArch64MachineLegalizer::AArch64MachineLegalizer() {
setAction({TargetOpcode::G_FCONSTANT, Ty}, Legal);
}
+ setAction({G_CONSTANT, p0}, Legal);
+
for (auto Ty : {s1, s8, s16})
setAction({TargetOpcode::G_CONSTANT, Ty}, WidenScalar);
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
index 2bf6e86973e..b432db629ae 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
@@ -21,6 +21,7 @@ registers:
- { id: 2, class: _ }
- { id: 3, class: _ }
- { id: 4, class: _ }
+ - { id: 5, class: _ }
body: |
bb.0.entry:
; CHECK-LABEL: name: test_constant
@@ -32,12 +33,14 @@ body: |
; CHECK: %2(16) = G_TRUNC { s16, s32 } [[TMP]]
; CHECK: %3(32) = G_CONSTANT s32 -1
; CHECK: %4(64) = G_CONSTANT s64 1
+ ; CHECK: %5(64) = G_CONSTANT p0 0
%0(1) = G_CONSTANT s1 0
%1(8) = G_CONSTANT s8 42
%2(16) = G_CONSTANT s16 65535
%3(32) = G_CONSTANT s32 -1
%4(64) = G_CONSTANT s64 1
+ %5(64) = G_CONSTANT p0 0
...
---
OpenPOWER on IntegriCloud