llvm-6502/test
Juergen Ributzka 4eced19c50 SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too.
The Type Legalizer recognizes that VSELECT needs to be split, because the type
is to wide for the given target. The same does not always apply to SETCC,
because less space is required to encode the result of a comparison. As a result
VSELECT is split and SETCC is unrolled into scalar comparisons.

This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG
Combiner. If a matching pattern is found, then the result mask of SETCC is
promoted to the expected vector mask type for the given target. This mask has
usually the same size as the VSELECT return type (except for Intel KNL). Now the
type legalizer will split both VSELECT and SETCC.

This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX
pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>.

Reviewed by Nadav

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193676 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-30 05:48:18 +00:00
..
Analysis SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive. 2013-10-28 07:30:06 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too. 2013-10-30 05:48:18 +00:00
DebugInfo Debug Info: instead of calling addToContextOwner which constructs the context 2013-10-29 22:49:29 +00:00
ExecutionEngine Adding a workaround for __main linking with remote lli and Cygwin/MinGW 2013-10-29 01:29:56 +00:00
Feature
FileCheck Fix "existant" typos 2013-10-29 02:35:28 +00:00
Instrumentation fix PR17635: false positive with packed structures 2013-10-24 09:17:24 +00:00
Integer
JitListener
Linker
LTO
MC Support for microMIPS jump instructions 2013-10-29 16:38:59 +00:00
Object
Other Quote potential shell expansions found in tests 2013-10-28 23:37:45 +00:00
TableGen
tools
Transforms Add llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM in targets. 2013-10-29 02:46:00 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt lit: add missing substitutions for recently added tools 2013-10-28 23:37:49 +00:00
lit.cfg lit: add missing substitutions for recently added tools 2013-10-28 23:37:49 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh