diff options
author | Alexander Ivchenko <alexander.ivchenko@intel.com> | 2018-02-08 22:41:47 +0000 |
---|---|---|
committer | Alexander Ivchenko <alexander.ivchenko@intel.com> | 2018-02-08 22:41:47 +0000 |
commit | da9e81c462fdebd93c78ab2aa54782840587e9f4 (patch) | |
tree | 33a02a1dc383cff562e07962a158fec50fb6810e /llvm/lib/Target/X86/X86LegalizerInfo.cpp | |
parent | a85c4fc0291613b4ca0f60850a73c46dcaea69ae (diff) | |
download | bcm5719-llvm-da9e81c462fdebd93c78ab2aa54782840587e9f4.tar.gz bcm5719-llvm-da9e81c462fdebd93c78ab2aa54782840587e9f4.zip |
[GlobalISel][X86] Fixing failures after https://reviews.llvm.org/D37775
The patch essentially makes sure that X86CallLowering adds proper
G_COPY/G_TRUNC and G_ANYEXT/G_COPY when we are doing lowering of
arguments/returns for floating point values passed on registers.
Tests are updated accordingly
Reviewed By: qcolombet
Differential Revision: https://reviews.llvm.org/D42287
llvm-svn: 324665
Diffstat (limited to 'llvm/lib/Target/X86/X86LegalizerInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86LegalizerInfo.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86LegalizerInfo.cpp b/llvm/lib/Target/X86/X86LegalizerInfo.cpp index a6a9d08278d..56a096b0d44 100644 --- a/llvm/lib/Target/X86/X86LegalizerInfo.cpp +++ b/llvm/lib/Target/X86/X86LegalizerInfo.cpp @@ -92,6 +92,7 @@ void X86LegalizerInfo::setLegalizerInfo32bit() { const LLT s16 = LLT::scalar(16); const LLT s32 = LLT::scalar(32); const LLT s64 = LLT::scalar(64); + const LLT s128 = LLT::scalar(128); for (auto Ty : {p0, s1, s8, s16, s32}) setAction({G_IMPLICIT_DEF, Ty}, Legal); @@ -136,6 +137,7 @@ void X86LegalizerInfo::setLegalizerInfo32bit() { setAction({G_SEXT, Ty}, Legal); setAction({G_ANYEXT, Ty}, Legal); } + setAction({G_ANYEXT, s128}, Legal); // Comparison setAction({G_ICMP, s1}, Legal); |