Jonas Paulsson 84319bfc40 [SelectionDAG] Optimize VSELECT->SETCC of incompatible or illegal types.
Don't scalarize VSELECT->SETCC when operands/results needs to be widened,
or when the type of the SETCC operands are different from those of the VSELECT.

(VSELECT SETCC) and (VSELECT (AND/OR/XOR (SETCC,SETCC))) are handled.

The previous splitting of VSELECT->SETCC in DAGCombiner::visitVSELECT() is
no longer needed and has been removed.

Updated tests:

test/CodeGen/ARM/vuzp.ll
test/CodeGen/NVPTX/f16x2-instructions.ll
test/CodeGen/X86/2011-10-19-widen_vselect.ll
test/CodeGen/X86/2011-10-21-widen-cmp.ll
test/CodeGen/X86/psubus.ll
test/CodeGen/X86/vselect-pcmp.ll

Review: Eli Friedman, Simon Pilgrim
https://reviews.llvm.org/D29489

llvm-svn: 297930
2017-03-16 07:17:12 +00:00
..
2017-02-21 20:17:34 +00:00
2016-01-26 00:03:25 +00:00
2016-06-16 16:09:53 +00:00
2016-01-28 18:59:04 +00:00
2016-05-19 12:59:17 +00:00
2016-05-19 12:59:17 +00:00
2016-06-16 16:09:53 +00:00
2015-10-26 20:49:49 +00:00
2016-06-20 17:45:33 +00:00
2016-12-27 18:35:19 +00:00
2016-01-26 00:03:25 +00:00
2016-04-08 18:15:37 +00:00
2014-11-17 14:08:57 +00:00
2017-03-15 08:27:11 +00:00
2016-10-19 16:58:59 +00:00
2014-12-04 19:34:50 +00:00
2016-06-16 16:09:53 +00:00
2016-03-31 19:42:04 +00:00
2015-12-17 01:29:08 +00:00
2015-01-19 15:16:06 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2015-08-13 17:28:16 +00:00