diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-07-12 11:15:19 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-07-12 11:15:19 +0000 |
commit | 64cc4ad0a273fec56debf406c8524d1122d249b9 (patch) | |
tree | 35e69efafa6d2c3ac1d74bdfa9898949f5fcba34 /clang/tools | |
parent | d08eca0181f0d1d21fd7f35fde62eccb509cf5c5 (diff) | |
download | bcm5719-llvm-64cc4ad0a273fec56debf406c8524d1122d249b9.tar.gz bcm5719-llvm-64cc4ad0a273fec56debf406c8524d1122d249b9.zip |
[X86][SSE] Vectorized v4i32 non-uniform shifts.
While the v4i32 shl operation is already vectorized using a cvttps2dq/pmulld pattern, the lshr/ashr opeations are still scalarized.
This patch adds vectorization support for non-uniform v4i32 shift operations - it splats constant shift amounts to allow them to use the immediate sse shift instructions, or extracts/zero-extends non-constant shift amounts. The individual results are then blended together.
Differential Revision: http://reviews.llvm.org/D11063
llvm-svn: 241989
Diffstat (limited to 'clang/tools')
0 files changed, 0 insertions, 0 deletions