diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-21 01:31:15 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-21 01:31:15 +0000 |
commit | e5015d8abad0e4980c3a11cd4d68f65907504ffd (patch) | |
tree | b1f459cd59339dd48e76d6379430835b68c4d5a5 /llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | |
parent | 252cbe25cb7e02df422cc9f4ac0fdf235c6b2cd8 (diff) | |
download | bcm5719-llvm-e5015d8abad0e4980c3a11cd4d68f65907504ffd.tar.gz bcm5719-llvm-e5015d8abad0e4980c3a11cd4d68f65907504ffd.zip |
[X86] Add ISel patterns to select SSE3/AVX ADDSUB instructions.
This patch adds ISel patterns to select SSE3/AVX ADDSUB instructions
from a sequence of "vadd + vsub + blend".
Example:
///
typedef float float4 __attribute__((ext_vector_type(4)));
float4 foo(float4 A, float4 B) {
float4 X = A - B;
float4 Y = A + B;
return (float4){X[0], Y[1], X[2], Y[3]};
}
///
Before this patch, (with flag -mcpu=corei7) llc produced the following
assembly sequence:
movaps %xmm0, %xmm2
addps %xmm1, %xmm2
subps %xmm1, %xmm0
blendps $10, %xmm2, %xmm0
With this patch, we now get a single
addsubps %xmm1, %xmm0
llvm-svn: 211427
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
0 files changed, 0 insertions, 0 deletions