1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes --check-attributes --check-globals
2 ; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT
3 ; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,CGSCC
5 %"struct.ompx::state::TeamStateTy" = type { %"struct.ompx::state::ICVStateTy", i32, i32, ptr }
6 %"struct.ompx::state::ICVStateTy" = type { i32, i32, i32, i32, i32, i32 }
8 @_ZN4ompx5state9TeamStateE = internal addrspace(3) global %"struct.ompx::state::TeamStateTy" undef
10 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
11 declare void @llvm.assume(i1 noundef) #0
14 ; CHECK: @_ZN4ompx5state9TeamStateE = internal addrspace(3) global %"struct.ompx::state::TeamStateTy" undef
16 define weak_odr amdgpu_kernel void @__omp_offloading_16_19bc70bc_main_l44() {
17 ; CHECK-LABEL: define {{[^@]+}}@__omp_offloading_16_19bc70bc_main_l44() {
18 ; CHECK-NEXT: ret void
20 call fastcc void @__omp_outlined__()
24 define internal fastcc void @__omp_outlined__() {
25 ; CGSCC: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
26 ; CGSCC-LABEL: define {{[^@]+}}@__omp_outlined__
27 ; CGSCC-SAME: () #[[ATTR1:[0-9]+]] {
28 ; CGSCC-NEXT: br label [[TMP2:%.*]]
30 ; CGSCC-NEXT: unreachable
32 ; CGSCC-NEXT: ret void
34 %1 = load i32, ptr getelementptr inbounds (i8, ptr addrspacecast (ptr addrspace(3) @_ZN4ompx5state9TeamStateE to ptr), i64 4), align 4
38 %3 = icmp eq i32 %1, 0
39 call void @llvm.assume(i1 %3)
46 ; TUNIT: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) }
48 ; CGSCC: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) }
49 ; CGSCC: attributes #[[ATTR1]] = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
51 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: