llvm-project/llvm/lib
Kit Barton f9d0a40573 Ensure all uses of permute instructions feed vector stores
There is a problem in VSXSwapRemoval where it is incorrectly removing permute instructions.
In this case, the permute is feeding both a vector store and also a non-store instruction. In this case, the permute cannot be removed.

The fix is to simply look at all the uses of the vector register defined by the permute and ensure that all the uses are vector store instructions.

This problem was reported in PR 27735 (https://llvm.org/bugs/show_bug.cgi?id=27735).

Test case based on the original problem reported.

Phabricator Review: http://reviews.llvm.org/D21802

llvm-svn: 274645
2016-07-06 18:03:52 +00:00
..
Analysis [CFLAA] Split out more things from CFLSteens. NFC. 2016-07-06 00:47:21 +00:00
AsmParser Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
CodeGen [DAGCombiner] Fix visitSTORE to continue processing current SDNode, if findBetterNeighborChains doesn't actually CombineTo it. 2016-07-06 17:44:03 +00:00
DebugInfo Disable hash verification of enums. 2016-07-06 17:25:12 +00:00
ExecutionEngine Prune RelocVisitor.h include to avoid including COFF.h from MCJIT.h 2016-07-06 16:56:42 +00:00
Fuzzer [libFuzzer] Let user specify extra stats file. 2016-06-30 20:43:06 +00:00
IR [X86][AVX512] Autoupgrade the BROADCAST intrinsics 2016-07-05 13:58:47 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LTO [UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael. 2016-06-22 19:50:42 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
MC [MC/Darwin] Fix a -Wmisleading-indentation warning, reported by GCC 6. 2016-07-05 16:56:09 +00:00
Object Object: support empty UID/GID fields 2016-07-05 00:23:05 +00:00
ObjectYAML [YAML] Fix YAML tags appearing before the start of sequence elements 2016-06-28 21:10:26 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [CFLAA] Split into Anders+Steens analysis. 2016-07-06 00:26:41 +00:00
ProfileData Revert "[Coverage] Move logic to encode filenames and mappings into llvm (NFC)" 2016-06-29 05:33:26 +00:00
Support [Support][Error] Make logAllUnhandledErrors take a Twine for the banner, rather 2016-07-04 22:47:53 +00:00
TableGen TableGen: promote "code" type from syntactic sugar. 2016-07-05 21:22:55 +00:00
Target Ensure all uses of permute instructions feed vector stores 2016-07-06 18:03:52 +00:00
Transforms [LV] Don't widen trivial induction variables 2016-07-06 14:26:59 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00