summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/insertps-combine.ll
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Detect zeroable shuffle elements from different value typesSimon Pilgrim2016-03-201-36/+25
| | | | | | | | Improve computeZeroableShuffleElements to be able to peek through bitcasts to extract zero/undef values from BUILD_VECTOR nodes of different element sizes to the shuffle mask. Differential Revision: http://reviews.llvm.org/D14261 llvm-svn: 263906
* [X86][SSE41] Additional tests for extracting zeroable shuffle elementsSimon Pilgrim2016-03-161-0/+83
| | | | | | We can currently only match zeroable vector elements of the same size as the shuffle type - these tests demonstrate the problem and a solution will be shortly added in an updated D14261 llvm-svn: 263606
* [X86][SSE41] Combine vector blends with zeroSimon Pilgrim2016-02-241-2/+4
| | | | | | | | | Part 2 of 2 This patch add support for combining target shuffles into blends-with-zero. Differential Revision: http://reviews.llvm.org/D17483 llvm-svn: 261745
* [X86][SSE] Select domain for 32/64-bit partial loads for ↵Simon Pilgrim2016-02-041-2/+2
| | | | | | | | | | EltsFromConsecutiveLoads Choose between MOVD/MOVSS and MOVQ/MOVSD depending on the target vector type. This has a lot fewer test changes than trying to add this to X86InstrInfo::setExecutionDomain..... llvm-svn: 259816
* [X86] Add support for zeroed shuffle elements to getShuffleScalarEltSimon Pilgrim2016-01-261-0/+20
| | | | | | Enable handling of SM_SentinelZero shuffle elements to getShuffleScalarElt. Improves VZEXT_LOAD matches in EltsFromConsecutiveLoads. llvm-svn: 258865
* [X86][SSE] Remove INSERTPS dependencies from unreferenced operands.Simon Pilgrim2016-01-231-0/+32
| | | | | | If the INSERTPS zeroes out all the referenced elements from either of the 2 input vectors (and the input is not already UNDEF), then set that input to UNDEF to reduce dependencies. llvm-svn: 258622
* [X86][SSE] Add VZEXT_MOVL target shuffle decoding.Simon Pilgrim2016-01-191-6/+2
| | | | | | Add support for decoding VZEXT_MOVL target shuffle masks, allowing it to be used as a source in target shuffle combines. llvm-svn: 258215
* [X86][SSE] Add INSERTPS target shuffle combines.Simon Pilgrim2016-01-191-12/+4
| | | | | | | | | | As vector shuffles can only reference two inputs many (V)INSERTPS patterns end up being split over two targets shuffles. This patch adds combines to attempt to combine (V)INSERTPS nodes with input/output nodes that are just zeroing out these additional vector elements. Differential Revision: http://reviews.llvm.org/D16072 llvm-svn: 258205
* [X86][SSE} Add INSERTPS as a target shuffleSimon Pilgrim2016-01-071-0/+33
| | | | | | Follow up to D15378, added INSERTPS to the list of decodable target shuffles and enabled XFormVExtractWithShuffleIntoLoad to handle target shuffles with SentinelZero and tested this with INSERTPS. llvm-svn: 257046
* [X86][SSE41] Added test cases for improving insertps shufflesSimon Pilgrim2016-01-031-0/+111
As mentioned on D14261, an upcoming patch will improve combines of insertps instructions. llvm-svn: 256706
OpenPOWER on IntegriCloud