diff options
author | Diana Picus <diana.picus@linaro.org> | 2017-01-25 08:47:40 +0000 |
---|---|---|
committer | Diana Picus <diana.picus@linaro.org> | 2017-01-25 08:47:40 +0000 |
commit | d83df5d372d47a137c4ea237f097a7ce8cc906c1 (patch) | |
tree | cbd1406e9aed27a9182f1d1f0fb44a7e1fbb6126 /llvm/lib/Target/ARM/ARMLegalizerInfo.cpp | |
parent | 8b6c6bedcbad953260157903e03210249e5f4b90 (diff) | |
download | bcm5719-llvm-d83df5d372d47a137c4ea237f097a7ce8cc906c1.tar.gz bcm5719-llvm-d83df5d372d47a137c4ea237f097a7ce8cc906c1.zip |
[ARM] GlobalISel: Support i1 add and ABI extensions
Add support for:
* i1 add
* i1 function arguments, if passed through registers
* i1 returns, with ABI signext/zeroext
Differential Revision: https://reviews.llvm.org/D27706
llvm-svn: 293035
Diffstat (limited to 'llvm/lib/Target/ARM/ARMLegalizerInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMLegalizerInfo.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp b/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp index 0dfddf1bfc1..7157af1ec16 100644 --- a/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp +++ b/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp @@ -28,6 +28,7 @@ ARMLegalizerInfo::ARMLegalizerInfo() { const LLT p0 = LLT::pointer(0, 32); + const LLT s1 = LLT::scalar(1); const LLT s8 = LLT::scalar(8); const LLT s16 = LLT::scalar(16); const LLT s32 = LLT::scalar(32); @@ -37,12 +38,12 @@ ARMLegalizerInfo::ARMLegalizerInfo() { setAction({G_LOAD, s32}, Legal); setAction({G_LOAD, 1, p0}, Legal); - for (auto Ty : {s8, s16, s32}) + for (auto Ty : {s1, s8, s16, s32}) setAction({G_ADD, Ty}, Legal); for (auto Op : {G_SEXT, G_ZEXT}) { setAction({Op, s32}, Legal); - for (auto Ty : {s8, s16}) + for (auto Ty : {s1, s8, s16}) setAction({Op, 1, Ty}, Legal); } |