diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-24 19:17:53 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-24 19:17:53 +0000 |
commit | 02a336801959d4fc2ea0657d4489596e1ecbfee0 (patch) | |
tree | 776cc4ed9ad3080c3c6afbb0ffb73177c40292e8 /test/Transforms/NewGVN | |
parent | 7c71d32ab52480cb7bfd9f951450060263a5b9e7 (diff) | |
download | src-02a336801959d4fc2ea0657d4489596e1ecbfee0.tar.gz src-02a336801959d4fc2ea0657d4489596e1ecbfee0.zip |
Vendor import of llvm release_40 branch r292951:vendor/llvm/llvm-release_40-r292951
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=312704
svn path=/vendor/llvm/llvm-release_40-r292951/; revision=312705; tag=vendor/llvm/llvm-release_40-r292951
Diffstat (limited to 'test/Transforms/NewGVN')
-rw-r--r-- | test/Transforms/NewGVN/pr31682.ll | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/Transforms/NewGVN/pr31682.ll b/test/Transforms/NewGVN/pr31682.ll new file mode 100644 index 000000000000..108e1e19afbd --- /dev/null +++ b/test/Transforms/NewGVN/pr31682.ll @@ -0,0 +1,42 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -basicaa -newgvn -S | FileCheck %s +target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" + +%struct.foo = type { i32, i32, [2 x [4 x [6 x [6 x i16]]]] } + +@global = external global %struct.foo* + +define void @bar() { +; CHECK-LABEL: @bar( +; CHECK-NEXT: bb: +; CHECK-NEXT: [[TMP:%.*]] = load %struct.foo*, %struct.foo** @global +; CHECK-NEXT: br label [[BB2:%.*]] +; CHECK: bb2: +; CHECK-NEXT: [[TMP4:%.*]] = getelementptr [[STRUCT_FOO:%.*]], %struct.foo* [[TMP]], i64 0, i32 1 +; CHECK-NEXT: br i1 undef, label [[BB2]], label [[BB7:%.*]] +; CHECK: bb7: +; CHECK-NEXT: br label [[BB10:%.*]] +; CHECK: bb10: +; CHECK-NEXT: br label [[BB10]] +; +bb: + %tmp = load %struct.foo*, %struct.foo** @global + %tmp1 = getelementptr %struct.foo, %struct.foo* %tmp + br label %bb2 + +bb2: ; preds = %bb2, %bb + %tmp3 = phi %struct.foo* [ undef, %bb ], [ %tmp6, %bb2 ] + %tmp4 = getelementptr %struct.foo, %struct.foo* %tmp3, i64 0, i32 1 + %tmp5 = load i32, i32* %tmp4 + %tmp6 = load %struct.foo*, %struct.foo** @global + br i1 undef, label %bb2, label %bb7 + +bb7: ; preds = %bb2 + %tmp8 = phi %struct.foo* [ %tmp6, %bb2 ] + %tmp9 = getelementptr %struct.foo, %struct.foo* %tmp8, i64 0, i32 1 + br label %bb10 + +bb10: ; preds = %bb10, %bb7 + %tmp11 = load i32, i32* %tmp9 + br label %bb10 +} |