diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2015-10-02 16:08:05 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2015-10-02 16:08:05 +0000 |
commit | 77f62652c1f0f755c335efd9ce578891c3a552e7 (patch) | |
tree | d7e6080122d93f69f665a03d817ea59f2e62dbaa /clang/lib/CodeGen/CGStmtOpenMP.cpp | |
parent | 2dab6c9bcc24e1ebe4fd40d9155d6788bc087f97 (diff) | |
download | bcm5719-llvm-77f62652c1f0f755c335efd9ce578891c3a552e7.tar.gz bcm5719-llvm-77f62652c1f0f755c335efd9ce578891c3a552e7.zip |
Reapply r249121 : "[FastISel][x86] Teach how to select SSE2/AVX bitcasts between 128/256-bit vector types."
This patch teaches FastIsel the following two things:
1) On SSE2, no instructions are needed for bitcasts between 128-bit vector types;
2) On AVX, no instructions are needed for bitcasts between 256-bit vector types.
Example:
%1 = bitcast <4 x i31> %V to <2 x i64>
Before (-fast-isel -fast-isel-abort=1):
FastIsel miss: %1 = bitcast <4 x i31> %V to <2 x i64>
Now we don't fall back to SelectionDAG and we correctly fold that computation
propagating the register associated to %V.
Originally reviewed here: http://reviews.llvm.org/D13347
llvm-svn: 249147
Diffstat (limited to 'clang/lib/CodeGen/CGStmtOpenMP.cpp')
0 files changed, 0 insertions, 0 deletions