diff options
| author | Tim Northover <tnorthover@apple.com> | 2016-08-25 17:37:35 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2016-08-25 17:37:35 +0000 |
| commit | 7a1ec0141ac6c24b3f5960cf3b98e52cfacfd800 (patch) | |
| tree | 429ed8ab7e9f51f1d860dc4e65b78667f2bb4cd2 | |
| parent | 438c77ca1adf6ea29d25f5c53336dacff5ac5a21 (diff) | |
| download | bcm5719-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.cpp | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir | 3 |
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 ... --- |

