diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2010-02-16 21:09:44 +0000 | 
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2010-02-16 21:09:44 +0000 | 
| commit | 82b04130cbbef6353ecb5bcf79821fa9a16b61bc (patch) | |
| tree | caa135e7eb1acc59d3ddec7cd88e285994f95e12 /clang/lib | |
| parent | fba7fce5be8bbb39c0308f52d7680d31f46d153c (diff) | |
| download | bcm5719-llvm-82b04130cbbef6353ecb5bcf79821fa9a16b61bc.tar.gz bcm5719-llvm-82b04130cbbef6353ecb5bcf79821fa9a16b61bc.zip  | |
Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).
If there exists a use of a build_vector that's the bitwise complement of the mask,
then transform the node to
(and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)).
Since this transformation is only useful when 1) the given build_vector will
become a load from constpool, and 2) (and (xor x -1), y) matches to a single
instruction, I decided this is appropriate as a x86 specific transformation.
rdar://7323335
llvm-svn: 96389
Diffstat (limited to 'clang/lib')
0 files changed, 0 insertions, 0 deletions

