[AMDGPU] Add True16 register classes.
[llvm-project.git] / llvm / test / Transforms / GVN / preserve-analysis.ll
blobc19f7d675a35fc070742d0d49edd4103344c472c
1 ; RUN: opt < %s -debug-pass-manager -passes='require<domtree>,loop(loop-simplifycfg),gvn,loop(indvars)' 2>&1 -S | FileCheck --check-prefix=NEW-PM --check-prefix=IR %s
3 ; Check CFG-only analysis are preserved by SCCP by running it between 2
4 ; loop-vectorize runs.
6 ; CHECK: Dominator Tree Construction
7 ; CHECK: Natural Loop Information
8 ; CHECK: Canonicalize natural loops
9 ; CHECK: LCSSA Verifier
10 ; CHECK: Loop-Closed SSA Form Pass
11 ; CHECK: Global Value Numbering
12 ; CHECK-NOT: Dominator Tree Construction
13 ; CHECK-NOT: Natural Loop Information
14 ; CHECK: Canonicalize natural loops
16 ; NEW-PM-DAG: Running analysis: LoopAnalysis on test
17 ; NEW-PM-DAG: Running analysis: DominatorTreeAnalysis on test
18 ; NEW-PM: Running pass: GVNPass on test
19 ; NEW-PM-NOT: Running analysis: LoopAnalysis on test
20 ; NEW-PM-NOT: Running analysis: DominatorTreeAnalysis on test
22 declare i1 @cond()
23 declare void @dostuff()
25 define i32 @test() {
26 ; IR-LABEL: define i32 @test()
27 ; IR-LABEL: header:
28 ; IR:         br i1 false, label %then, label %latch
29 ; IR-LABEL: then:
30 ; IR-NEXT:   call void @dostuff()
31 ; IR-NEXT:   br label %latch
32 entry:
33   %res = add i32 1, 10
34   br label %header
36 header:
37   %iv = phi i32 [ %res, %entry ], [ 0, %latch ]
38   %ic = icmp eq i32 %res, 99
39   br i1 %ic, label %then, label %latch
41 then:
42   br label %then.2
44 then.2:
45   call void @dostuff()
46   br label %latch
49 latch:
50   %ec = call i1 @cond()
51   br i1 %ec, label %exit, label %header
53 exit:
54   ret i32 %iv