1; RUN: opt < %s -simplifycfg -hoist-common-insts=true -S | FileCheck %s 2 3declare void @bar(i32*) 4declare 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: 12define void @test_load_combine_metadata(i1 %c, i32** %p) { 13 br i1 %c, label %t, label %f 14 15t: 16 %v1 = load i32*, i32** %p, !dereferenceable_or_null !0 17 call void @bar(i32* %v1) 18 br label %cont 19 20f: 21 %v2 = load i32*, i32** %p, !dereferenceable_or_null !1 22 call void @baz(i32* %v2) 23 br label %cont 24 25cont: 26 ret void 27} 28 29; CHECK: ![[DEREF]] = !{i64 8} 30 31!0 = !{i64 8} 32!1 = !{i64 16} 33