diff options
author | Adam Nemet <anemet@apple.com> | 2014-04-17 01:01:37 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2014-04-17 01:01:37 +0000 |
commit | 287f989dde900b6f3b36328980242e040e6a7582 (patch) | |
tree | 7c34cfffeb6cb9eb9143aa3862685872b7cd4384 /clang/lib/Sema/TreeTransform.h | |
parent | 08587f8ccd85d58505e58890c291eacdf4a263e0 (diff) | |
download | bcm5719-llvm-287f989dde900b6f3b36328980242e040e6a7582.tar.gz bcm5719-llvm-287f989dde900b6f3b36328980242e040e6a7582.zip |
[ARM64] Fix "Cannot select" for vector ctpop
The commit of r205855:
Author: Arnold Schwaighofer <aschwaighofer@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>
llvm-svn: 206433
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
0 files changed, 0 insertions, 0 deletions