OSDN Git Service

[PowerPC] Fix parest build failure in SPEC2017.
authorTony Jiang <jtony@ca.ibm.com>
Thu, 21 Dec 2017 15:42:50 +0000 (15:42 +0000)
committerTony Jiang <jtony@ca.ibm.com>
Thu, 21 Dec 2017 15:42:50 +0000 (15:42 +0000)
commit2fe72713c3ed17226c5d1d6f8f2999e4464aa564
tree6af17bfc63378e2affb8b4e79db433ca7fc2ec47
parent9d06ec6ce563cffd15eaa2174a7d340890bd1728
[PowerPC] Fix parest build failure in SPEC2017.

The build failure was caused by an assertion in pre-legalization DAGCombine:

Combining: t6: ppcf128 = uint_to_fp t5
... into: t20: f32 = PPCISD::FCFIDUS t19

which is clearly wrong since ppcf128 are definitely different type with f32 and
we cannot change the node value type when do DAGCombine. The fix is don't
handle ppc_fp128 or i1 conversions in PPCTargetLowering::combineFPToIntToFP and
leave it to downstream to legalize it and expand it to small legal types.

Differential Revision: https://reviews.llvm.org/D41411

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321276 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
test/CodeGen/PowerPC/uint-to-ppcfp128-crash.ll [new file with mode: 0644]