llvm-6502/test
Bill Wendling 2ca55e9ced Merging r197492:
------------------------------------------------------------------------
r197492 | dyatkovskiy | 2013-12-17 04:07:33 -0800 (Tue, 17 Dec 2013) | 26 lines

Fix for PR18045:
http://llvm.org/bugs/show_bug.cgi?id=18045

Short issue description:
For X86 machines with sse < sse4.1 we got failures for some
particular load/store vector sequences:

$ clang-trunk -m32 -O2 test-case.c
fatal error: error in backend: Cannot select: 0x4200920: v4i32,ch = load 0x41d6ab0, 0x4205850,
      0x41dcb10<LD16[getelementptr inbounds ([4 x i32]* @e, i32 0, i32 0)](align=4)> [ORD=82]
      [ID=58]
  0x4205850: i32 = X86ISD::Wrapper 0x41d5490 [ORD=26] [ID=43]
    0x41d5490: i32 = TargetGlobalAddress<[4 x i32]* @e> 0 [ORD=26] [ID=23]
  0x41dcb10: i32 = undef [ID=2]

The reason is that EltsFromConsecutiveLoads could emit such load instruction
both before and after legalize stage. Though this instruction is not legal for
machines with SSSE3 and lower.

The fix: In EltsFromConsecutiveLoads, if we have passed legalize stage, we
check whether nodes it emits are legal. 

P.S.: If you get failure in time from 12:00 and till 22:00 (UTC-8),
perhaps I'll slow with response, so you better reject this commit. Thanks!


------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@197779 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-20 04:29:56 +00:00
..
Analysis Use correct size for address space in BasicAA. 2013-11-16 00:36:43 +00:00
Assembler Merging r195535: 2013-12-09 21:01:06 +00:00
Bindings Merging r196156: 2013-12-09 21:05:36 +00:00
Bitcode Merging r196158: 2013-12-09 21:06:30 +00:00
BugPoint Merging r195535: 2013-12-09 21:01:06 +00:00
CodeGen Merging r197492: 2013-12-20 04:29:56 +00:00
DebugInfo Merging r195504: 2013-12-09 20:58:24 +00:00
ExecutionEngine Merging r195157: 2013-11-21 00:52:34 +00:00
Feature Merging r195535: 2013-12-09 21:01:06 +00:00
FileCheck FileCheck: fix matching of one check-prefix is a prefix of another 2013-11-13 14:12:52 +00:00
Instrumentation Merging r195504: 2013-12-09 20:58:24 +00:00
Integer
JitListener Merging r195504: 2013-12-09 20:58:24 +00:00
Linker Merging r195504: 2013-12-09 20:58:24 +00:00
LTO
MC Merging r196104: 2013-12-02 19:24:08 +00:00
Object
Other Merging r195477: 2013-11-25 05:20:58 +00:00
TableGen
tools Path: Recognize COFF import library file magic. 2013-11-15 21:22:02 +00:00
Transforms Merging r197449: 2013-12-17 01:28:35 +00:00
Unit
Verifier
YAMLParser
.clang-format Merging r195100: 2013-11-19 06:39:18 +00:00
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh