[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)
commite2dd84e42f037458ce9ab863bbc590c84f20c977
tree6f6acb0774208cd67d6d98ade376932a637c4760
parentf5b957060bf228d03c0c288387caa81ad3508b85
[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.

llvm-svn: 230176
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp