llvm-6502/lib
Bill Schmidt 2286ae542c [PATCH][PPC64LE] Correct little-endian usage of vmrgh* and vmrgl*.
Because the PowerPC vmrgh* and vmrgl* instructions have a built-in
big-endian bias, it is necessary to swap their inputs in little-endian
mode when using them to implement a vector shuffle.  This was
previously missed in the vector LE implementation.

There was already logic to distinguish between unary and "normal"
vmrg* vector shuffles, so this patch extends that logic to use a third
option:  "swapped" vmrg* vector shuffles that are used for little
endian in place of the "normal" ones.

I've updated the vec-shuffle-le.ll test to check for the expected
register ordering on the generated instructions.

This bug was discovered when testing the LE and ELFv2 patches for
safety if they were backported to 3.4.  A different vectorization
decision was made in 3.4 than on mainline trunk, and that exposed the
problem.  I've verified this fix takes care of that issue.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213915 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-25 01:55:55 +00:00
..
Analysis Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
AsmParser AsmParser: remove deprecated LLIR support 2014-07-23 18:09:31 +00:00
Bitcode Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
CodeGen [SDAG] Introduce a combined set to the DAG combiner which tracks nodes 2014-07-24 22:15:28 +00:00
DebugInfo
ExecutionEngine Remove dead code. 2014-07-24 16:02:28 +00:00
IR Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
IRReader Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
LineEditor
Linker
LTO AArch64: remove arm64 triple enumerator. 2014-07-23 12:32:47 +00:00
MC Use the same .eh_frame encoding for 32bit PPC as on i386. 2014-07-24 19:25:16 +00:00
Object AArch64: remove arm64 triple enumerator. 2014-07-23 12:32:47 +00:00
Option Generic: add range-adapter for option parsing. 2014-07-09 13:03:37 +00:00
ProfileData Add code coverage mapping data, reader, and writer. 2014-07-24 23:57:54 +00:00
Support Windows: Don't wildcard expand /? or -? 2014-07-24 21:09:45 +00:00
TableGen [TableGen] Allow shift operators to take bits<n> 2014-07-17 17:04:27 +00:00
Target [PATCH][PPC64LE] Correct little-endian usage of vmrgh* and vmrgl*. 2014-07-25 01:55:55 +00:00
Transforms After unrolling a loop with llvm.loop.unroll.count metadata (unroll factor 2014-07-24 22:36:40 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile