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
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
  183
  184
  185
  186
  187
  188
  189
; RUN: opt -licm -enable-mssa-loop-dependency -verify-memoryssa  -S %s | FileCheck %s
; REQUIRES: asserts

target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
target triple = "s390x-ibm-linux"

@g_77 = external dso_local global i16, align 2

; CHECK-LABEL: @f1()
define void @f1() {
entry:
  store i16 undef, i16* @g_77, align 2
  br label %loop_pre

unreachablelabel: ; No predecessors
  br label %loop_pre

loop_pre:
  br label %for.cond.header

for.cond.header:
  store i32 0, i32* undef, align 4
  br i1 undef, label %for.body, label %for.end

for.body:
  %tmp1 = load volatile i16, i16* undef, align 2
  br label %for.end

for.end:
  br i1 undef, label %func.exit, label %for.cond.header

func.exit:
  ret void
}

@g_159 = external dso_local global i32, align 4

; CHECK-LABEL: @f2()
define void @f2() {
entry:
  br label %for.header.first

for.header.first:
  br label %for.body.first

for.body.first:
  store i32 0, i32* @g_159, align 4
  br i1 undef, label %for.body.first, label %for.end.first

for.end.first:
  br i1 undef, label %lor.end, label %for.header.first

lor.end:
  br label %for.pre

unreachablelabel: ; No predecessors
  br label %for.pre

for.pre:
  br label %for.header.second

for.header.second:
  store i32 undef, i32* undef, align 4
  br label %for.header.second
}

@g_271 = external dso_local global i8, align 2
@g_427 = external dso_local unnamed_addr global [9 x i16], align 2

; CHECK-LABEL: @f3()
define  void @f3() {
entry:
  br label %for.preheader

for.preheader:
  store volatile i8 undef, i8* @g_271, align 2
  br i1 undef, label %for.preheader, label %for.end

for.end:
  br label %lbl_1058.i

unreachablelabel: ; No predecessors
  br label %lbl_1058.i

lbl_1058.i:
  br label %for.cond3.preheader.i

for.cond3.preheader.i:
  %tmp1 = load i16, i16* getelementptr inbounds ([9 x i16], [9 x i16]* @g_427, i64 0, i64 2), align 2
  %conv620.i129 = zext i16 %tmp1 to i32
  %cmp621.i130 = icmp ugt i32 undef, %conv620.i129
  %conv622.i131 = zext i1 %cmp621.i130 to i32
  store i32 %conv622.i131, i32* undef, align 4
  br i1 undef, label %func.exit, label %for.cond3.preheader.i

func.exit:
  ret void
}

@g_6 = external dso_local unnamed_addr global [3 x i32], align 4
@g_244 = external dso_local global i64, align 8
@g_1164 = external dso_local global i64, align 8

; CHECK-LABEL: @f4()
define void @f4() {
entry:
  br label %for.cond8.preheader

for.cond8.preheader:
  store i32 0, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @g_6, i64 0, i64 2), align 4
  br i1 undef, label %if.end, label %for.cond8.preheader

if.end:
  br i1 undef, label %cleanup1270, label %for.cond504.preheader

for.cond504.preheader:
  store i64 undef, i64* @g_244, align 8
  br label %cleanup1270

for.cond559.preheader:
  store i64 undef, i64* @g_1164, align 8
  br i1 undef, label %for.cond559.preheader, label %cleanup1270

cleanup1270:
  ret void
}

@g_1504 = external dso_local local_unnamed_addr global i16****, align 8

define void @f5() {
bb:
  tail call fastcc void @f21()
  br label %bb12.outer

bb12.outer.loopexit:                              ; No predecessors!
  br label %bb12.outer

bb12.outer:                                       ; preds = %bb12.outer.loopexit, %bb
  br i1 undef, label %bb12.outer.split.us, label %bb12.preheader

bb12.preheader:                                   ; preds = %bb12.outer
  br label %bb12

bb12.outer.split.us:                              ; preds = %bb12.outer
  br label %bb16.us.us

bb16.us.us:                                       ; preds = %bb16.us.us, %bb12.outer.split.us
  br label %bb16.us.us

bb12:                                             ; preds = %bb77.1, %bb12.preheader
  br i1 undef, label %bb25.preheader, label %bb77

bb25.preheader:                                   ; preds = %bb12.1, %bb12
  br label %bb25

bb25:                                             ; preds = %l0, %bb25.preheader
  br i1 undef, label %bb62, label %bb71.thread

bb62:                                             ; preds = %bb25
  br i1 undef, label %bb92.loopexit, label %l0

l0:                                                ; preds = %bb62
  br label %bb25

bb71.thread:                                      ; preds = %bb25
  br label %bb92

bb77:                                             ; preds = %bb12
  %tmp78 = load i16****, i16***** @g_1504, align 8
  %tmp79 = load volatile i16***, i16**** %tmp78, align 8
  br i1 undef, label %bb91, label %bb12.1

bb91:                                             ; preds = %bb77.1, %bb77
  unreachable

bb92.loopexit:                                    ; preds = %bb62
  br label %bb92

bb92:                                             ; preds = %bb92.loopexit, %bb71.thread
  ret void

bb12.1:                                           ; preds = %bb77
  br i1 undef, label %bb25.preheader, label %bb77.1

bb77.1:                                           ; preds = %bb12.1
  br i1 undef, label %bb91, label %bb12
}

declare void @f21()