summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2014-06-24 10:38:10 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2014-06-24 10:38:10 +0000
commit6de786666a77bcdf5acfe67bcd93cdcd819c4749 (patch)
tree96695391ee8100ad7a3bb2b04b4bce397c71fe04 /llvm/test/Transforms
parentdd1fbc008250f728b96dd077242dc154e8cfc847 (diff)
downloadbcm5719-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.ll9
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
+}
OpenPOWER on IntegriCloud