1; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s 2 3declare void @bar(ptr) 4declare void @baz(ptr) 5 6; CHECK-LABEL: @test_load_combine_metadata( 7; Check that dereferenceable_or_null metadata is combined 8; CHECK: load ptr, ptr %p 9; CHECK-SAME: !dereferenceable_or_null ![[DEREF:[0-9]+]] 10; CHECK: t: 11; CHECK: f: 12define void @test_load_combine_metadata(i1 %c, ptr %p) { 13 br i1 %c, label %t, label %f 14 15t: 16 %v1 = load ptr, ptr %p, !dereferenceable_or_null !0 17 call void @bar(ptr %v1) 18 br label %cont 19 20f: 21 %v2 = load ptr, ptr %p, !dereferenceable_or_null !1 22 call void @baz(ptr %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