GlobalISel: Implement widenScalar for g_extract scalar results
llvm-svn: 354293
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index 4487bff..58fd948 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -516,9 +516,10 @@
.widenScalarIf(
[=](const LegalityQuery &Query) {
const LLT Ty1 = Query.Types[1];
- return (Ty1.getScalarSizeInBits() < 16);
+ return Ty1.isVector() && Ty1.getScalarSizeInBits() < 16;
},
- LegalizeMutations::widenScalarOrEltToNextPow2(1, 16));
+ LegalizeMutations::widenScalarOrEltToNextPow2(1, 16))
+ .clampScalar(0, S16, S256);
// TODO: vectors of pointers
getActionDefinitionsBuilder(G_BUILD_VECTOR)