reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
; RUN: opt -indvars -disable-output < %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"

declare i32 @putchar(i8) nounwind

define void @t2(i1* %P) nounwind {
; <label>:0
  br label %1

; <label>:1                                       ; preds = %1, %0
  %2 = phi double [ 9.000000e+00, %0 ], [ %4, %1 ] ; <double> [#uses=1]
  %3 = tail call i32 @putchar(i8 72)              ; <i32> [#uses=0]
  %4 = fadd double %2, -1.000000e+00              ; <double> [#uses=2]
  %5 = fcmp ult double %4, 0.000000e+00           ; <i1> [#uses=1]
  store i1 %5, i1* %P
  br i1 %5, label %6, label %1

; <label>:6                                       ; preds = %1
  ret void
}

; PR7562
define void @fannkuch() nounwind {
entry:                                              ; preds = %entry
  br label %bb12

bb12:                                             ; preds = %bb29, %entry
  %i.1 = phi i32 [ undef, %entry ], [ %i.0, %bb29 ] ; <i32> [#uses=2]
  %r.1 = phi i32 [ undef, %entry ], [ %r.0, %bb29 ] ; <i32> [#uses=2]
  br i1 undef, label %bb13, label %bb24

bb13:                                             ; preds = %bb12
  br label %bb24

bb24:                                             ; preds = %bb30, %bb13, %bb12
  %i.2 = phi i32 [ %i.1, %bb13 ], [ %i.0, %bb30 ], [ %i.1, %bb12 ] ; <i32> [#uses=1]
  %r.0 = phi i32 [ %r.1, %bb13 ], [ %2, %bb30 ], [ %r.1, %bb12 ] ; <i32> [#uses=3]
  br label %bb28

bb27:                                             ; preds = %bb28
  %0 = add nsw i32 %i.0, 1                        ; <i32> [#uses=1]
  br label %bb28

bb28:                                             ; preds = %bb27, %bb26
  %i.0 = phi i32 [ %i.2, %bb24 ], [ %0, %bb27 ]   ; <i32> [#uses=4]
  %1 = icmp slt i32 %i.0, %r.0                    ; <i1> [#uses=1]
  br i1 %1, label %bb27, label %bb29

bb29:                                             ; preds = %bb28
  br i1 undef, label %bb12, label %bb30

bb30:                                             ; preds = %bb29
  %2 = add nsw i32 %r.0, 1                        ; <i32> [#uses=1]
  br label %bb24
}

; PR10770

declare void @__go_panic() noreturn

declare void @__go_undefer()

declare i32 @__gccgo_personality_v0(i32, i64, i8*, i8*)

define void @main.main() uwtable personality i32 (i32, i64, i8*, i8*)* @__gccgo_personality_v0 {
entry:
  invoke void @__go_panic() noreturn
          to label %0 unwind label %"5.i"

; <label>:0                                       ; preds = %entry
  unreachable

"3.i":                                            ; preds = %"7.i", %"5.i"
  invoke void @__go_undefer()
          to label %main.f.exit unwind label %"7.i"

"5.i":                                            ; preds = %entry
  %1 = landingpad { i8*, i32 }
          catch i8* null
  br label %"3.i"

"7.i":                                            ; preds = %"3.i"
  %2 = landingpad { i8*, i32 }
          catch i8* null
  br label %"3.i"

main.f.exit:                                      ; preds = %"3.i"
  unreachable
}


; PR13967

define void @f() nounwind ssp {
bb:
  br label %bb4

bb4:
  %tmp = phi i64 [ %tmp5, %bb7 ], [ undef, %bb ]
  %tmp5 = add nsw i64 %tmp, 1
  %extract.t1 = trunc i64 %tmp5 to i32
  br i1 false, label %bb6, label %bb7

bb6:
  br label %bb7

bb7:
  %.off0 = phi i32 [ undef, %bb6 ], [ %extract.t1, %bb4 ]
  %tmp8 = icmp eq i32 %.off0, 0
  br i1 %tmp8, label %bb9, label %bb4

bb9:
  ret void
}

; PR12536
define void @fn1() noreturn nounwind {
entry:
  br label %for.cond

for.cond:                                         ; preds = %for.end, %entry
  %b.0 = phi i32 [ undef, %entry ], [ %conv, %for.end ]
  br label %for.cond1

for.cond1:                                        ; preds = %for.cond1, %for.cond
  %c.0 = phi i32 [ %b.0, %for.cond1 ], [ 0, %for.cond ]
  br i1 undef, label %for.cond1, label %for.end

for.end:                                          ; preds = %for.cond1
  %cmp2 = icmp slt i32 %c.0, 1
  %conv = zext i1 %cmp2 to i32
  br label %for.cond
}