]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
Vendor import of llvm trunk r256633:
[FreeBSD/FreeBSD.git] / test / Transforms / SimplifyCFG / preserve-load-metadata-3.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_or_null metadata is combined
8 ; CHECK: load i32*, i32** %p
9 ; CHECK-SAME: !dereferenceable_or_null ![[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_or_null !0
17   call void @bar(i32* %v1)
18   br label %cont
19
20 f:
21   %v2 = load i32*, i32** %p, !dereferenceable_or_null !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}