Merging r260703:
[oota-llvm.git] / test / Transforms / SimplifyCFG / preserve-load-metadata-2.ll
1 ; RUN: opt < %s -simplifycfg -S | FileCheck %s
2
3 declare void @bar(i32*)
4 declare void @baz(i32*)
5
6 ; CHECK-LABEL: @test_load_combine_metadata(
7 ; Check that dereferenceable metadata is combined
8 ; CHECK: load i32*, i32** %p
9 ; CHECK-SAME: !dereferenceable ![[DEREF:[0-9]+]]
10 ; CHECK: t:
11 ; CHECK: f:
12 define void @test_load_combine_metadata(i1 %c, i32** %p) {
13   br i1 %c, label %t, label %f
14
15 t:
16   %v1 = load i32*, i32** %p, !dereferenceable !0
17   call void @bar(i32* %v1)
18   br label %cont
19
20 f:
21   %v2 = load i32*, i32** %p, !dereferenceable !1
22   call void @baz(i32* %v2)
23   br label %cont
24
25 cont:
26   ret void
27 }
28
29 ; CHECK: ![[DEREF]] = !{i64 8}
30
31 !0 = !{i64 8}
32 !1 = !{i64 16}