summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-02-16 21:09:44 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-02-16 21:09:44 +0000
commit82b04130cbbef6353ecb5bcf79821fa9a16b61bc (patch)
treecaa135e7eb1acc59d3ddec7cd88e285994f95e12 /clang/lib
parentfba7fce5be8bbb39c0308f52d7680d31f46d153c (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud