diff options
| author | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-09-22 22:27:12 +0000 |
|---|---|---|
| committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-09-22 22:27:12 +0000 |
| commit | deade19630bcec8c35e8afba6333f3e720ab54c0 (patch) | |
| tree | d47d53e646065fd720bb8a32082aa365cfa744fa /llvm/test/Transforms | |
| parent | a7ecbe56857c20d49c16d8a685d34e472e6422fc (diff) | |
| download | bcm5719-llvm-deade19630bcec8c35e8afba6333f3e720ab54c0.tar.gz bcm5719-llvm-deade19630bcec8c35e8afba6333f3e720ab54c0.zip | |
[Unroll] Do not crash trying to propagate a value to vector load.
llvm-svn: 248333
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll b/llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll index eebf5a0a2f2..e932851042a 100644 --- a/llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll +++ b/llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll @@ -81,3 +81,22 @@ for.inc: for.end: ret void } + +define <4 x i32> @vec_load() { +entry: + br label %for.body + +for.body: + %phi = phi i64 [ 0, %entry ], [ %inc, %for.body ] + %vec_phi = phi <4 x i32> [ <i32 0, i32 0, i32 0, i32 0>, %entry ], [ %r, %for.body ] + %arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* @known_constant, i64 0, i64 %phi + %bc = bitcast i32* %arrayidx to <4 x i32>* + %x = load <4 x i32>, < 4 x i32>* %bc, align 4 + %r = add <4 x i32> %x, %vec_phi + %inc = add nuw nsw i64 %phi, 1 + %cmp = icmp ult i64 %inc, 999 + br i1 %cmp, label %for.body, label %for.exit + +for.exit: + ret <4 x i32> %r +} |

