[PATCH][ARM64] Fix "Cannot select" for vector ctpop

Adam Nemet anemet at apple.com
Wed Apr 16 18:09:15 PDT 2014


Thanks!  Committed as r206433.

Adam

On Apr 16, 2014, at 5:45 PM, Quentin Colombet <qcolombet at apple.com> wrote:

> Hi Adam,
> 
> LGTM.
> 
> Thanks,
> -Quentin
> 
> On Apr 16, 2014, at 3:27 PM, Adam Nemet <anemet at apple.com> wrote:
> 
>> The commit of r205855:
>> 
>> Author: Arnold Schwaighofer <aschwaighofer at apple.com>
>> Date:   Wed Apr 9 14:20:47 2014 +0000
>> 
>>    SLPVectorizer: Only vectorize intrinsics whose operands are widened equally
>> 
>>    The vectorizer only knows how to vectorize intrinics by widening all operands by
>>    the same factor.
>> 
>>    Patch by Tyler Nowicki!
>> 
>> exposed a backend bug causing a regression (Cannot select ctpop).
>> 
>> The commit msg is a bit confusing because the patch actually changes the
>> behavior for the loop-vectorizer as well.  As things got refactored into a
>> helper ctpop got snuck in to the trivially-vectorizable helper which is now
>> used by both vectorizers.  In other words, we started seeing vector-ctpops in
>> the backend.
>> 
>> This change makes ctpop LegalizeAction::Expand for the types not supported by
>> the byte-only CNT instruction.  We may be able to custom-lower these later to
>> a single CNT but this is to fix the compiler crash first.
>> 
>> Fixes <rdar://problem/16578951>
>> 
>> Adam
>> 
>> <ARM64-Fix-Cannot-select-for-vector-ctpop.patch>_______________________________________________
>> 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/20140416/91db7f6c/attachment.html>


More information about the llvm-commits mailing list