X86: Do not select X86 custom vector nodes if operand types don't match
authorMatthias Braun <matze@braunis.de>
Tue, 21 Apr 2015 01:13:41 +0000 (01:13 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 21 Apr 2015 01:13:41 +0000 (01:13 +0000)
commit6fbedc4cfdb927032db7c858dd4ebe24fa1f311a
tree98be7b7298492b5e4520fed85962f33b7e39a7ea
parent9b56994421704bb44dc69ceb1305330deaf27169
X86: Do not select X86 custom vector nodes if operand types don't match

X86ISD::ADDSUB, X86ISD::(F)HADD, X86ISD::(F)HSUB should not be selected
if the operand types do not match the result type because vector type
legalization cannot deal with this for custom nodes.

Testcase X86ISD::ADDSUB is attached. I could not create a testcase for
the FHADD/FHSUB cases because of: https://llvm.org/bugs/show_bug.cgi?id=23296

Differential Revision: http://reviews.llvm.org/D9120

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235367 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/sse3-avx-addsub-2.ll