[DAGCombine] Don't assume integer-type legailty in reduceBuildVecConvertToConvertBuildVec
authorHal Finkel <hfinkel@anl.gov>
Sun, 22 Feb 2015 16:10:22 +0000 (16:10 +0000)
committerHal Finkel <hfinkel@anl.gov>
Sun, 22 Feb 2015 16:10:22 +0000 (16:10 +0000)
commit0e8abfa6ed986c892ec723236e32e78fd9c47b88
treea639de1a9799b60a210065fdfc4dd905ad79c8c2
parent1584f114c1903ed27c8b9a6b6f4978aad8da9f3c
[DAGCombine] Don't assume integer-type legailty in reduceBuildVecConvertToConvertBuildVec

DAGCombine will rewrite an BUILD_VECTOR where all non-undef inputs some from
[US]INT_TO_FP, as a BUILD_VECTOR of integers with the conversion applied as a
vector operation. We check operation legality of the conversion, but fail to
check legality of the integer vector type itself. Because targets don't
normally override operation legality defaults for illegal types, we need to
check this also.

This came up in the context of the QPX vector entensions for PowerPC (which can
have legal floating-point vector types without corresponding legal integer
vector types). No in-tree test case for this yes, but one can be added once
the QPX support has been committed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230176 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp