[Coverage] MCDC: Move findIndependencePairs deferred into MCDCRecord (#121188)
[llvm-project.git] / llvm / test / Analysis / MemoryDependenceAnalysis / load-size-cache.ll
blob6f50f2c0a718604d63a84414782914f5ac0db843
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2 ; RUN: opt -passes=gvn -dom-tree-reachability-max-bbs-to-explore=1 -S < %s | FileCheck %s
3 define i8 @f(i1 %arg0, i1 %arg1, i1 %arg2) {
4 ; CHECK-LABEL: define i8 @f(
5 ; CHECK-SAME: i1 [[ARG0:%.*]], i1 [[ARG1:%.*]], i1 [[ARG2:%.*]]) {
6 ; CHECK-NEXT:  [[BB:.*:]]
7 ; CHECK-NEXT:    br i1 [[ARG2]], label %[[BB2:.*]], label %[[BB11:.*]]
8 ; CHECK:       [[BB11]]:
9 ; CHECK-NEXT:    br label %[[BB3:.*]]
10 ; CHECK:       [[BB2]]:
11 ; CHECK-NEXT:    br label %[[BB3]]
12 ; CHECK:       [[BB3]]:
13 ; CHECK-NEXT:    [[CALL:%.*]] = tail call noalias ptr @_Znwm(i64 2)
14 ; CHECK-NEXT:    br label %[[BB4:.*]]
15 ; CHECK:       [[BB4]]:
16 ; CHECK-NEXT:    [[PHI:%.*]] = phi ptr [ null, %[[BB4]] ], [ [[CALL]], %[[BB3]] ]
17 ; CHECK-NEXT:    store i8 2, ptr [[PHI]], align 4
18 ; CHECK-NEXT:    br i1 [[ARG0]], label %[[BB5:.*]], label %[[BB4]]
19 ; CHECK:       [[BB5]]:
20 ; CHECK-NEXT:    br i1 [[ARG1]], label %[[BB7:.*]], label %[[BB6:.*]]
21 ; CHECK:       [[BB6]]:
22 ; CHECK-NEXT:    call void @use(i64 undef)
23 ; CHECK-NEXT:    br label %[[BB9:.*]]
24 ; CHECK:       [[BB7]]:
25 ; CHECK-NEXT:    [[LOAD8:%.*]] = load i8, ptr [[CALL]], align 4
26 ; CHECK-NEXT:    br label %[[BB9]]
27 ; CHECK:       [[BB9]]:
28 ; CHECK-NEXT:    [[PHI10:%.*]] = phi i8 [ [[LOAD8]], %[[BB7]] ], [ 4, %[[BB6]] ]
29 ; CHECK-NEXT:    ret i8 [[PHI10]]
31 bb:
32   br i1 %arg2, label %bb2, label %bb11
34 bb11:
35   br label %bb3
37 bb2:
38   br label %bb3
40 bb3:
41   %call = tail call noalias ptr @_Znwm(i64 2)
42   br label %bb4
44 bb4:
45   %phi = phi ptr [ null, %bb4 ], [ %call, %bb3 ]
46   store i8 2, ptr %phi, align 4
47   br i1 %arg0, label %bb5, label %bb4
49 bb5:
50   br i1 %arg1, label %bb7, label %bb6
52 bb6:
53   %load = load i64, ptr %call, align 4
54   call void @use(i64 %load)
55   br label %bb9
57 bb7:
58   %load8 = load i8, ptr %call, align 4
59   br label %bb9
61 bb9:
62   %phi10 = phi i8 [ %load8, %bb7 ], [ 4, %bb6 ]
63   ret i8 %phi10
66 declare ptr @_Znwm(i64)
67 declare void @use(i64)