aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-07-14 22:46:26 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-07-14 22:46:26 +0000
commit3960a9571fe804ce8d93124e7e84bbb6b936161f (patch)
treefecb2d92923b4543e5aa5fb97b1e99ff6b0ac344 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parentcaa9c71f32c4da8a7c516e28047fab874840a1a4 (diff)
downloadllvm-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