diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-23 05:32:17 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-23 05:32:17 +0000 |
commit | cf37355e259b1f6c96674773d66281d585233868 (patch) | |
tree | 78bc19332e765bb71e2d05e1d7c62dd464e602d0 /projects | |
parent | a26e3b6ef8de981ef32d48c922791ecc081e6e34 (diff) | |
download | external_llvm-cf37355e259b1f6c96674773d66281d585233868.zip external_llvm-cf37355e259b1f6c96674773d66281d585233868.tar.gz external_llvm-cf37355e259b1f6c96674773d66281d585233868.tar.bz2 |
Make some existing optimizations that would only trigger on scalars
also apply to vectors. This allows us to compile this:
#include <emmintrin.h>
__m128i a(__m128 a, __m128 b) { return a==a & b==b; }
__m128i b(__m128 a, __m128 b) { return a!=a | b!=b; }
to:
_a:
cmpordps %xmm1, %xmm0
ret
_b:
cmpunordps %xmm1, %xmm0
ret
with clang instead of to a ton of horrible code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76863 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'projects')
0 files changed, 0 insertions, 0 deletions