diff options
author | Sanjay Patel <spatel@rotateright.com> | 2019-02-21 20:40:39 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2019-02-21 20:40:39 +0000 |
commit | 234a5e8ea422bb97c2b15848fccf5c396023b729 (patch) | |
tree | 4173a07bb83a326be0f269bbb8dc4796a2507307 /clang/lib/CodeGen/CGExprComplex.cpp | |
parent | e497f3e4cdec3c3c362f9ce11ed656c2017d92ad (diff) | |
download | bcm5719-llvm-234a5e8ea422bb97c2b15848fccf5c396023b729.tar.gz bcm5719-llvm-234a5e8ea422bb97c2b15848fccf5c396023b729.zip |
[x86] vectorize more cast ops in lowering to avoid register file transfers
This is a follow-up to D56864.
If we're extracting from a non-zero index before casting to FP,
then shuffle the vector and optionally narrow the vector before doing the cast:
cast (extelt V, C) --> extelt (cast (extract_subv (shuffle V, [C...]))), 0
This might be enough to close PR39974:
https://bugs.llvm.org/show_bug.cgi?id=39974
Differential Revision: https://reviews.llvm.org/D58197
llvm-svn: 354619
Diffstat (limited to 'clang/lib/CodeGen/CGExprComplex.cpp')
0 files changed, 0 insertions, 0 deletions