diff options
| author | Tim Northover <tnorthover@apple.com> | 2016-08-26 17:45:58 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2016-08-26 17:45:58 +0000 |
| commit | 5d0eaa4e79d1e409ce019602a709a275b08d5217 (patch) | |
| tree | ce00739d08ebeb1e6b5ce5e3bcc135c9db719377 /llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp | |
| parent | a67e4d32544dc26393a54619b5fe2b63f581773e (diff) | |
| download | bcm5719-llvm-5d0eaa4e79d1e409ce019602a709a275b08d5217.tar.gz bcm5719-llvm-5d0eaa4e79d1e409ce019602a709a275b08d5217.zip | |
GlobalISel: mark float/int conversions legal
llvm-svn: 279839
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp index d8f72a9fc8e..98935d1f5a2 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64MachineLegalizer.cpp @@ -120,6 +120,20 @@ AArch64MachineLegalizer::AArch64MachineLegalizer() { for (auto Ty : { s8, s16, s32, s64 }) setAction({G_TRUNC, 1, Ty}, Legal); + // Conversions + for (auto Ty : { s1, s8, s16, s32, s64 }) { + setAction({G_FPTOSI, 0, Ty}, Legal); + setAction({G_FPTOUI, 0, Ty}, Legal); + setAction({G_SITOFP, 1, Ty}, Legal); + setAction({G_UITOFP, 1, Ty}, Legal); + } + + for (auto Ty : { s32, s64 }) { + setAction({G_FPTOSI, 1, Ty}, Legal); + setAction({G_FPTOUI, 1, Ty}, Legal); + setAction({G_SITOFP, 0, Ty}, Legal); + setAction({G_UITOFP, 0, Ty}, Legal); + } // Control-flow setAction({G_BR, LLT::unsized()}, Legal); |

