diff options
author | Sanjay Patel <spatel@rotateright.com> | 2015-11-21 16:12:58 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2015-11-21 16:12:58 +0000 |
commit | 42afa272ed709f501956b79fbbcb3232d28beb4f (patch) | |
tree | 160a66b191e89c96beaaf175c4f0a5f48237fb35 /llvm/test/Transforms/InstCombine/vec_shuffle.ll | |
parent | 162b3f2125ffdf98eee6a28dd662a65c0e88287b (diff) | |
download | bcm5719-llvm-42afa272ed709f501956b79fbbcb3232d28beb4f.tar.gz bcm5719-llvm-42afa272ed709f501956b79fbbcb3232d28beb4f.zip |
move a single test case to where most other instcombine shuffle bug test cases exist
llvm-svn: 253784
Diffstat (limited to 'llvm/test/Transforms/InstCombine/vec_shuffle.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/vec_shuffle.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/vec_shuffle.ll b/llvm/test/Transforms/InstCombine/vec_shuffle.ll index d4d7f167ef0..8db13b67e2f 100644 --- a/llvm/test/Transforms/InstCombine/vec_shuffle.ll +++ b/llvm/test/Transforms/InstCombine/vec_shuffle.ll @@ -406,6 +406,21 @@ define i32 @pr19737(<4 x i32> %in0) { ret i32 %rv } +; In PR20059 ( http://llvm.org/pr20059 ), shufflevector operations are reordered/removed +; for an srem operation. This is not a valid optimization because it may cause a trap +; on div-by-zero. + +define <4 x i32> @pr20059(<4 x i32> %p1, <4 x i32> %p2) { +; CHECK-LABEL: @pr20059( +; CHECK-NEXT: %splat1 = shufflevector <4 x i32> %p1, <4 x i32> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: %splat2 = shufflevector <4 x i32> %p2, <4 x i32> undef, <4 x i32> zeroinitializer +; CHECK-NEXT: %retval = srem <4 x i32> %splat1, %splat2 + %splat1 = shufflevector <4 x i32> %p1, <4 x i32> undef, <4 x i32> zeroinitializer + %splat2 = shufflevector <4 x i32> %p2, <4 x i32> undef, <4 x i32> zeroinitializer + %retval = srem <4 x i32> %splat1, %splat2 + ret <4 x i32> %retval +} + define <4 x i32> @pr20114(<4 x i32> %__mask) { ; CHECK-LABEL: @pr20114 ; CHECK: shufflevector |