Make CanXFormVExtractWithShuffleIntoLoad reject loads with multiple uses. Also make...
authorCraig Topper <craig.topper@gmail.com>
Mon, 2 Jan 2012 08:46:48 +0000 (08:46 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 2 Jan 2012 08:46:48 +0000 (08:46 +0000)
commita51bb3aa7525b3260575724ba413debd4b56041b
treee8e1c6b8451f23ad6f858121d2c14f5c2cad3dd3
parentf3cd23c6cb11a0f2cd4bc45ccfb3816f39395a2a
Make CanXFormVExtractWithShuffleIntoLoad reject loads with multiple uses. Also make it return false if there's not even a load at all. This makes the code better match the code in DAGCombiner that it tries to match. These two changes prevent some cases where vector_shuffles were making it to instruction selection and causing the older shuffle selection code to be triggered. Also needed to fix a bad pattern that this change exposed. This is the first step towards getting rid of the old shuffle selection support. No test cases yet because there's no way to tell whether a shuffle was handled in the legalize stage or at instruction selection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147428 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrSSE.td