xref: /llvm-project/llvm/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll (revision 80e8f2beeb954f8c241897099bb01b24da400e8a)
1; RUN: opt < %s -passes=licm -S | FileCheck %s
2; PR9630
3
4@g_39 = external global i16, align 2
5
6declare ptr @func_84(ptr nocapture) nounwind readonly
7
8declare ptr @func_108(ptr nocapture) nounwind readonly
9
10define void @func() nounwind {
11entry:
12  br label %for.body4.lr.ph
13
14for.body4.lr.ph:
15  br label %for.body4
16
17; CHECK: for.body4:
18; CHECK: load volatile i16, ptr @g_39
19
20for.body4:
21  %l_612.11 = phi ptr [ undef, %for.body4.lr.ph ], [ %call19, %for.body4 ]
22  %tmp7 = load volatile i16, ptr @g_39, align 2
23  %call = call ptr @func_108(ptr undef)
24  %call19 = call ptr @func_84(ptr %call)
25  br i1 false, label %for.body4, label %for.cond.loopexit
26
27for.cond.loopexit:
28  br i1 false, label %for.body4.lr.ph, label %for.end26
29
30for.end26:
31  ret void
32}
33