diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-07-14 22:46:26 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-07-14 22:46:26 +0000 |
commit | 3960a9571fe804ce8d93124e7e84bbb6b936161f (patch) | |
tree | fecb2d92923b4543e5aa5fb97b1e99ff6b0ac344 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | caa9c71f32c4da8a7c516e28047fab874840a1a4 (diff) | |
download | llvm-3960a9571fe804ce8d93124e7e84bbb6b936161f.zip llvm-3960a9571fe804ce8d93124e7e84bbb6b936161f.tar.gz llvm-3960a9571fe804ce8d93124e7e84bbb6b936161f.tar.bz2 |
[DAGCombiner] Add more rules to combine shuffle vector dag nodes.
This patch teaches the DAGCombiner how to fold a pair of shuffles
according to rules:
1. shuffle(shuffle A, B, M0), B, M1) -> shuffle(A, B, M2)
2. shuffle(shuffle A, B, M0), A, M1) -> shuffle(A, B, M3)
The new rules would only trigger if the resulting shuffle has legal type and
legal mask.
Added test 'combine-vec-shuffle-3.ll' to verify that DAGCombiner correctly
folds shuffles on x86 when the resulting mask is legal. Also added some negative
cases to verify that we avoid introducing illegal shuffles.
llvm-svn: 213001
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions