diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2014-06-24 10:38:10 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2014-06-24 10:38:10 +0000 |
| commit | 6de786666a77bcdf5acfe67bcd93cdcd819c4749 (patch) | |
| tree | 96695391ee8100ad7a3bb2b04b4bce397c71fe04 /llvm/test/Transforms | |
| parent | dd1fbc008250f728b96dd077242dc154e8cfc847 (diff) | |
| download | bcm5719-llvm-6de786666a77bcdf5acfe67bcd93cdcd819c4749.tar.gz bcm5719-llvm-6de786666a77bcdf5acfe67bcd93cdcd819c4749.zip | |
InstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr.
We can't analyze the individual values of a vector expression. PR20114.
llvm-svn: 211581
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/vec_shuffle.ll | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/vec_shuffle.ll b/llvm/test/Transforms/InstCombine/vec_shuffle.ll index fc0f8bd0aa9..eb4e9d6f8c3 100644 --- a/llvm/test/Transforms/InstCombine/vec_shuffle.ll +++ b/llvm/test/Transforms/InstCombine/vec_shuffle.ll @@ -405,3 +405,12 @@ define i32 @pr19737(<4 x i32> %in0) { %rv = extractelement <4 x i32> %and.i, i32 0 ret i32 %rv } + +define <4 x i32> @pr20114(<4 x i32> %__mask) { +; CHECK-LABEL: @pr20114 +; CHECK: shufflevector +; CHECK: and + %mask01.i = shufflevector <4 x i32> %__mask, <4 x i32> undef, <4 x i32> <i32 0, i32 0, i32 1, i32 1> + %masked_new.i.i.i = and <4 x i32> bitcast (<2 x i64> <i64 ptrtoint (<4 x i32> (<4 x i32>)* @pr20114 to i64), i64 ptrtoint (<4 x i32> (<4 x i32>)* @pr20114 to i64)> to <4 x i32>), %mask01.i + ret <4 x i32> %masked_new.i.i.i +} |

