PATCH for PR18045 (X86 inst selection failure)

Quentin Colombet qcolombet at apple.com
Mon Dec 16 10:02:33 PST 2013


LGTM.

Thanks,
-Quentin

On Dec 16, 2013, at 3:22 AM, Stepan Dyatkovskiy <stpworld at narod.ru> wrote:

> ping
> Stepan Dyatkovskiy wrote:
>> Hello,
>> 
>> Please find fix + test-case in attachment.
>> 
>> Short description of PR18045 issue:
>> 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.
>> 
>> -Stepan
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131216/8436ee3a/attachment.html>


More information about the llvm-commits mailing list