|  | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes | 
|  | ; RUN: opt -S -passes=function-attrs < %s | FileCheck %s | 
|  |  | 
|  | @i = global i32 0 | 
|  |  | 
|  | define void @foo() { | 
|  | ; CHECK: Function Attrs: nofree nosync nounwind memory(readwrite, argmem: none, inaccessiblemem: none) | 
|  | ; CHECK-LABEL: define {{[^@]+}}@foo | 
|  | ; CHECK-SAME: () #[[ATTR0:[0-9]+]] { | 
|  | ; CHECK-NEXT:    store i32 1, ptr @i, align 4 | 
|  | ; CHECK-NEXT:    call void @bar() | 
|  | ; CHECK-NEXT:    ret void | 
|  | ; | 
|  | store i32 1, ptr @i | 
|  | call void @bar() | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @bar() { | 
|  | ; CHECK: Function Attrs: nofree nosync nounwind memory(readwrite, argmem: none, inaccessiblemem: none) | 
|  | ; CHECK-LABEL: define {{[^@]+}}@bar | 
|  | ; CHECK-SAME: () #[[ATTR0]] { | 
|  | ; CHECK-NEXT:    [[I:%.*]] = load i32, ptr @i, align 4 | 
|  | ; CHECK-NEXT:    call void @foo() | 
|  | ; CHECK-NEXT:    ret void | 
|  | ; | 
|  | %i = load i32, ptr @i | 
|  | call void @foo() | 
|  | ret void | 
|  | } |