llvm-6502/test
Ulrich Weigand 7bbb9c7b4a Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST
On PowerPC, a bitcast of <16 x i8> to i128 may run through a code
path in ExpandRes_BITCAST that attempts to do an intermediate
bitcast to a <4 x i32> vector, and then construct the Hi and Lo parts
of the resulting i128 by pairing up two of those i32 vector elements
each.  The code already recognizes that on a big-endian system, the
first two vector elements form the Hi part, and the final two vector
elements form the Lo part (vice-versa from the little-endian situation).

However, we also need to take endianness into account when forming each
of those separate pairs:  on a big-endian system, vector element 0 is
the *high* part of the pair making up the Hi part of the result, and
vector element 1 is the low part of the pair.  The code currently always
uses vector element 0 as the low part and vector element 1 as the high
part, as is appropriate for little-endian platforms only.

This patch fixes this by swapping the vector elements as they are
paired up as appropriate.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165802 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-12 15:42:58 +00:00
..
Analysis dependence analysis 2012-10-11 07:32:34 +00:00
Archive
Assembler Don't crash if a .ll file contains a forward-reference that looks like a global 2012-10-11 00:38:25 +00:00
Bindings/Ocaml Move TargetData to DataLayout. 2012-10-08 16:39:34 +00:00
Bitcode Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
BugPoint
CodeGen Fix big-endian codegen bug in DAGTypeLegalizer::ExpandRes_BITCAST 2012-10-12 15:42:58 +00:00
DebugInfo Make sure to generate the right kind of MDNode for enum forward declarations. 2012-10-05 01:49:14 +00:00
ExecutionEngine Some regression tests which are testing the old jit and are exercising functionality which is both known to be broken and not expected to be fixed in the old jit. To remove these from the regression test output, I've marked them XFAIL (for lit tests) and ifdef'd them out (unit tests). These modifications remove the last long-standing regression test failures from the buildbots (though updating the triple to reflect new ubuntu configuration has temporarily caused some new failures). Tested on x86-64 and ARM Linux. 2012-10-08 13:06:30 +00:00
Feature
Instrumentation
Integer
Linker
MC Add test cases for correct parsing of register names in 32- and 64-bit modes. 2012-10-11 12:42:49 +00:00
Object
Other Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified 2012-10-09 19:52:10 +00:00
Scripts
TableGen
Transforms Don't crash when !tbaa.struct contents is invalid. 2012-10-11 02:05:23 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt [CMake] check-all: Don't include check-llvm into check-all without LLVM_BUILD_TOOLS. 2012-10-10 13:33:00 +00:00
lit.cfg Enable llvm/test/ExecutionEngine/MCJIT also for cygwin. 2012-10-05 14:10:29 +00:00
lit.site.cfg.in
Makefile Revert r117093, "test/Makefile: Force lit -j1 on Cygwin." 2012-10-09 05:07:18 +00:00
Makefile.tests
TestRunner.sh