diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-10-01 01:06:48 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-10-01 01:06:48 +0000 |
commit | ed85b0cee6f0df13b68895e5cdb2f54a37f56f8d (patch) | |
tree | b0da1de48c0a0e9f230f388302b916e990dbf3d6 /llvm/lib/CodeGen | |
parent | 77ac40011761399924641d15d51460f64c2be46e (diff) | |
download | bcm5719-llvm-ed85b0cee6f0df13b68895e5cdb2f54a37f56f8d.tar.gz bcm5719-llvm-ed85b0cee6f0df13b68895e5cdb2f54a37f56f8d.zip |
GlobalISel: Implement widenScalar for G_SITOFP/G_UITOFP sources
Legalize 16-bit G_SITOFP/G_UITOFP for AMDGPU.
llvm-svn: 373287
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index 7d667b9363e..be3e58e1650 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -1622,13 +1622,15 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) { case TargetOpcode::G_FPTOSI: case TargetOpcode::G_FPTOUI: - if (TypeIdx != 0) - return UnableToLegalize; Observer.changingInstr(MI); - widenScalarDst(MI, WideTy); + + if (TypeIdx == 0) + widenScalarDst(MI, WideTy); + else + widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT); + Observer.changedInstr(MI); return Legalized; - case TargetOpcode::G_SITOFP: if (TypeIdx != 1) return UnableToLegalize; |