diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-03-28 21:33:52 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-03-28 21:33:52 +0000 |
commit | d3df400fa9d20ea11c1c0b1296ce4299d5b82b86 (patch) | |
tree | ccd598b5a80d0a7a89d1a2299719f3025c50ad47 /llvm/tools | |
parent | c2feac75fd3f3ef3f64465e498848699ff43286f (diff) | |
download | bcm5719-llvm-d3df400fa9d20ea11c1c0b1296ce4299d5b82b86.tar.gz bcm5719-llvm-d3df400fa9d20ea11c1c0b1296ce4299d5b82b86.zip |
[X86][SSE] Vectorize a bit (AND/XOR/OR) op if a BUILD_VECTOR has the same op for all their scalar elements.
If all a BUILD_VECTOR's source elements are the same bit (AND/XOR/OR) operation type and each has one constant operand, lower to a pair of BUILD_VECTOR and just apply the bit operation to the vectors.
The constant operands will form a constant vector meaning that we still only have a single BUILD_VECTOR to lower and we will have replaced all the scalarized operations with a single SSE equivalent.
Its not in our interest to start make a general purpose vectorizer from this, but I'm seeing enough of these scalar bit operations from the later legalization/scalarization stages to support them at least.
Differential Revision: http://reviews.llvm.org/D18492
llvm-svn: 264666
Diffstat (limited to 'llvm/tools')
0 files changed, 0 insertions, 0 deletions