Home | History | Annotate | Download | only in BlockFrequencyInfo
      1 ; RUN: opt < %s -analyze -block-freq | FileCheck %s
      2 ; RUN: opt < %s -passes='print<block-freq>' -disable-output 2>&1 | FileCheck %s
      3 
      4 ; PR21622: Check for a crasher when the sum of exits to the same successor of a
      5 ; loop overflows.
      6 
      7 ; CHECK-LABEL: Printing analysis {{.*}} for function 'extremely_likely_loop_successor':
      8 ; CHECK-NEXT: block-frequency-info: extremely_likely_loop_successor
      9 define void @extremely_likely_loop_successor() {
     10 ; CHECK-NEXT: entry: float = 1.0, int = [[ENTRY:[0-9]+]]
     11 entry:
     12   br label %loop
     13 
     14 ; CHECK-NEXT: loop: float = 1.0,
     15 loop:
     16   %exit.1.cond = call i1 @foo()
     17   br i1 %exit.1.cond, label %exit, label %loop.2, !prof !0
     18 
     19 ; CHECK-NEXT: loop.2: float = 0.0000000
     20 loop.2:
     21   %exit.2.cond = call i1 @foo()
     22   br i1 %exit.2.cond, label %exit, label %loop.3, !prof !0
     23 
     24 ; CHECK-NEXT: loop.3: float = 0.0000000
     25 loop.3:
     26   %exit.3.cond = call i1 @foo()
     27   br i1 %exit.3.cond, label %exit, label %loop.4, !prof !0
     28 
     29 ; CHECK-NEXT: loop.4: float = 0.0,
     30 loop.4:
     31   %exit.4.cond = call i1 @foo()
     32   br i1 %exit.4.cond, label %exit, label %loop, !prof !0
     33 
     34 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
     35 exit:
     36   ret void
     37 }
     38 
     39 declare i1 @foo()
     40 
     41 !0 = !{!"branch_weights", i32 4294967295, i32 1}
     42