51 lines
1.7 KiB
LLVM
51 lines
1.7 KiB
LLVM
|
; RUN: opt -gvn-hoist -enable-mssa-loop-dependency -S < %s | FileCheck %s
|
||
|
; REQUIRES: asserts
|
||
|
%struct.job_pool.6.7 = type { i32 }
|
||
|
|
||
|
; CHECK-LABEL: @f()
|
||
|
define dso_local void @f() {
|
||
|
entry:
|
||
|
br label %for.cond
|
||
|
|
||
|
for.cond: ; preds = %for.end, %entry
|
||
|
br label %for.body
|
||
|
|
||
|
for.body: ; preds = %for.cond
|
||
|
br label %if.end
|
||
|
|
||
|
if.then: ; No predecessors!
|
||
|
br label %if.end
|
||
|
|
||
|
if.end: ; preds = %if.then, %for.body
|
||
|
br i1 false, label %for.body12.lr.ph, label %for.end
|
||
|
|
||
|
for.body12.lr.ph: ; preds = %if.end
|
||
|
br label %for.body12
|
||
|
|
||
|
for.body12: ; preds = %if.end40, %for.body12.lr.ph
|
||
|
br label %if.then23
|
||
|
|
||
|
if.then23: ; preds = %for.body12
|
||
|
br i1 undef, label %if.then24, label %if.else
|
||
|
|
||
|
if.then24: ; preds = %if.then23
|
||
|
%0 = load %struct.job_pool.6.7*, %struct.job_pool.6.7** undef, align 8
|
||
|
br label %if.end40
|
||
|
|
||
|
if.else: ; preds = %if.then23
|
||
|
%1 = load %struct.job_pool.6.7*, %struct.job_pool.6.7** undef, align 8
|
||
|
br label %if.end40
|
||
|
|
||
|
if.end40: ; preds = %if.else, %if.then24
|
||
|
br i1 false, label %for.body12, label %for.cond9.for.end_crit_edge
|
||
|
|
||
|
for.cond9.for.end_crit_edge: ; preds = %if.end40
|
||
|
br label %for.end
|
||
|
|
||
|
for.end: ; preds = %for.cond9.for.end_crit_edge, %if.end
|
||
|
br i1 true, label %if.then45, label %for.cond
|
||
|
|
||
|
if.then45: ; preds = %for.end
|
||
|
ret void
|
||
|
}
|