xref: /llvm-project/llvm/test/Transforms/GlobalOpt/disable-globals-aa.ll (revision bc698c77af64acfd4f0fa13263d8f708f2f116df)
1*bc698c77SNuno Lopes; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*bc698c77SNuno Lopes; RUN: opt -O2 -S %s | FileCheck %s --check-prefix=WITHGLOBALSAA
3*bc698c77SNuno Lopes; RUN: opt -O2 -enable-global-analyses=0 -S %s | FileCheck %s --check-prefix=NOGLOBALSAA
4*bc698c77SNuno Lopes
5*bc698c77SNuno Lopes@glb = internal global i8 0
6*bc698c77SNuno Lopes
7*bc698c77SNuno Lopesdefine i8 @f(ptr %ptr) {
8*bc698c77SNuno Lopes; WITHGLOBALSAA-LABEL: @f(
9*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    store i8 1, ptr [[PTR:%.*]], align 1
10*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    store i1 true, ptr @glb, align 1
11*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    ret i8 1
12*bc698c77SNuno Lopes;
13*bc698c77SNuno Lopes; NOGLOBALSAA-LABEL: @f(
14*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    store i8 1, ptr [[PTR:%.*]], align 1
15*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    store i1 true, ptr @glb, align 1
16*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    [[R:%.*]] = load i8, ptr [[PTR]], align 1
17*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    ret i8 [[R]]
18*bc698c77SNuno Lopes;
19*bc698c77SNuno Lopes  store i8 1, ptr %ptr
20*bc698c77SNuno Lopes  store i8 2, ptr @glb
21*bc698c77SNuno Lopes  %r = load i8, ptr %ptr
22*bc698c77SNuno Lopes  ret i8 %r
23*bc698c77SNuno Lopes}
24*bc698c77SNuno Lopes
25*bc698c77SNuno Lopesdefine i8 @dummy() {
26*bc698c77SNuno Lopes; WITHGLOBALSAA-LABEL: @dummy(
27*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    [[VAL_B:%.*]] = load i1, ptr @glb, align 1
28*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    [[VAL:%.*]] = select i1 [[VAL_B]], i8 2, i8 0
29*bc698c77SNuno Lopes; WITHGLOBALSAA-NEXT:    ret i8 [[VAL]]
30*bc698c77SNuno Lopes;
31*bc698c77SNuno Lopes; NOGLOBALSAA-LABEL: @dummy(
32*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    [[VAL_B:%.*]] = load i1, ptr @glb, align 1
33*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    [[VAL:%.*]] = select i1 [[VAL_B]], i8 2, i8 0
34*bc698c77SNuno Lopes; NOGLOBALSAA-NEXT:    ret i8 [[VAL]]
35*bc698c77SNuno Lopes;
36*bc698c77SNuno Lopes  %val = load i8, ptr @glb
37*bc698c77SNuno Lopes  ret i8 %val
38*bc698c77SNuno Lopes}
39