Home | History | Annotate | Download | only in SimplifyCFG
      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}
     33