xref: /llvm-project/llvm/test/Transforms/FunctionAttrs/read-write-scc.ll (revision f64732195c1030ee2627ff4e4142038e01df1d26)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes
2; RUN: opt -S -passes=function-attrs < %s | FileCheck %s
3
4@i = global i32 0
5
6define void @foo() {
7; CHECK: Function Attrs: nofree nosync nounwind memory(readwrite, argmem: none, inaccessiblemem: none)
8; CHECK-LABEL: define {{[^@]+}}@foo
9; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
10; CHECK-NEXT:    store i32 1, ptr @i, align 4
11; CHECK-NEXT:    call void @bar()
12; CHECK-NEXT:    ret void
13;
14  store i32 1, ptr @i
15  call void @bar()
16  ret void
17}
18
19define void @bar() {
20; CHECK: Function Attrs: nofree nosync nounwind memory(readwrite, argmem: none, inaccessiblemem: none)
21; CHECK-LABEL: define {{[^@]+}}@bar
22; CHECK-SAME: () #[[ATTR0]] {
23; CHECK-NEXT:    [[I:%.*]] = load i32, ptr @i, align 4
24; CHECK-NEXT:    call void @foo()
25; CHECK-NEXT:    ret void
26;
27  %i = load i32, ptr @i
28  call void @foo()
29  ret void
30}
31