brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.0 KiB · 2768aad Raw
156 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals --prefix-filecheck-ir-name true2; RUN: opt -mtriple=amdgcn-amd-amdhsa -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefix=CHECK3 4; REQUIRES: amdgpu-registered-target5 6@dst = dso_local addrspace(1) externally_initialized global i32 0, align 47@g1 = dso_local addrspace(1) externally_initialized global ptr null, align 48@g2 = dso_local addrspace(1) externally_initialized global i32 0, align 49@s1 = dso_local addrspace(3) global i32 undef, align 410@s2 = dso_local addrspace(3) global i32 undef, align 411 12;.13; CHECK: @dst = dso_local addrspace(1) externally_initialized global i32 0, align 414; CHECK: @g1 = dso_local addrspace(1) externally_initialized global ptr null, align 415; CHECK: @g2 = dso_local addrspace(1) externally_initialized global i32 0, align 416; CHECK: @s1 = dso_local addrspace(3) global i32 undef, align 417; CHECK: @s2 = dso_local addrspace(3) global i32 undef, align 418;.19define internal void @_Z12global_writePi(ptr noundef %p) #0 {20; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(write)21; CHECK-LABEL: define {{[^@]+}}@_Z12global_writePi22; CHECK-SAME: (ptr nofree noundef nonnull writeonly align 4 dereferenceable(8) [[P:%.*]]) #[[ATTR0:[0-9]+]] {23; CHECK-NEXT:  entry:24; CHECK-NEXT:    [[TMP0:%.*]] = addrspacecast ptr [[P]] to ptr addrspace(1)25; CHECK-NEXT:    store ptr [[P]], ptr addrspace(1) [[TMP0]], align 426; CHECK-NEXT:    ret void27;28entry:29  store ptr %p, ptr %p, align 430  ret void31}32 33; Function Attrs: convergent mustprogress noinline nounwind34define internal void @_Z13unknown_writePi(ptr noundef %p) #0 {35; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(write)36; CHECK-LABEL: define {{[^@]+}}@_Z13unknown_writePi37; CHECK-SAME: (ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(4) [[P:%.*]]) #[[ATTR0]] {38; CHECK-NEXT:  entry:39; CHECK-NEXT:    store i32 2, ptr [[P]], align 440; CHECK-NEXT:    ret void41;42entry:43  store i32 2, ptr %p, align 444  ret void45}46 47; Function Attrs: convergent mustprogress noinline nounwind48define internal void @_Z12shared_writePi(ptr noundef %p) #0 {49; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(write)50; CHECK-LABEL: define {{[^@]+}}@_Z12shared_writePi51; CHECK-SAME: (ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(4) [[P:%.*]]) #[[ATTR0]] {52; CHECK-NEXT:  entry:53; CHECK-NEXT:    [[TMP0:%.*]] = addrspacecast ptr [[P]] to ptr addrspace(3)54; CHECK-NEXT:    store i32 3, ptr addrspace(3) [[TMP0]], align 455; CHECK-NEXT:    ret void56;57entry:58  store i32 3, ptr %p, align 459  ret void60}61 62; Function Attrs: convergent mustprogress noinline nounwind63define internal void @_Z11global_readPi(ptr noundef %p) #0 {64; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn65; CHECK-LABEL: define {{[^@]+}}@_Z11global_readPi66; CHECK-SAME: (ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) [[P:%.*]]) #[[ATTR1:[0-9]+]] {67; CHECK-NEXT:  entry:68; CHECK-NEXT:    [[TMP0:%.*]] = addrspacecast ptr [[P]] to ptr addrspace(1)69; CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr addrspace(1) [[TMP0]], align 470; CHECK-NEXT:    store i32 [[TMP1]], ptr addrspace(1) @dst, align 471; CHECK-NEXT:    ret void72;73entry:74  %0 = load i32, ptr %p, align 475  store i32 %0, ptr addrspacecast (ptr addrspace(1) @dst to ptr), align 476  ret void77}78 79; Function Attrs: convergent mustprogress noinline nounwind80define internal void @_Z12unknown_readPi(ptr noundef %p) #0 {81; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn82; CHECK-LABEL: define {{[^@]+}}@_Z12unknown_readPi83; CHECK-SAME: (ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) [[P:%.*]]) #[[ATTR1]] {84; CHECK-NEXT:  entry:85; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[P]], align 486; CHECK-NEXT:    store i32 [[TMP0]], ptr addrspace(1) @dst, align 487; CHECK-NEXT:    ret void88;89entry:90  %0 = load i32, ptr %p, align 491  store i32 %0, ptr addrspacecast (ptr addrspace(1) @dst to ptr), align 492  ret void93}94 95; Function Attrs: convergent mustprogress noinline nounwind96define internal void @_Z11shared_readPi(ptr noundef %p) #0 {97; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn98; CHECK-LABEL: define {{[^@]+}}@_Z11shared_readPi99; CHECK-SAME: (ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) [[P:%.*]]) #[[ATTR1]] {100; CHECK-NEXT:  entry:101; CHECK-NEXT:    [[TMP0:%.*]] = addrspacecast ptr [[P]] to ptr addrspace(3)102; CHECK-NEXT:    [[TMP1:%.*]] = load i32, ptr addrspace(3) [[TMP0]], align 4103; CHECK-NEXT:    store i32 [[TMP1]], ptr addrspace(1) @dst, align 4104; CHECK-NEXT:    ret void105;106entry:107  %0 = load i32, ptr %p, align 4108  store i32 %0, ptr addrspacecast (ptr addrspace(1) @dst to ptr), align 4109  ret void110}111 112; Function Attrs: convergent mustprogress noinline nounwind113define dso_local void @_Z3bazv() #0 {114; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn115; CHECK-LABEL: define {{[^@]+}}@_Z3bazv116; CHECK-SAME: () #[[ATTR1]] {117; CHECK-NEXT:  entry:118; CHECK-NEXT:    call void @_Z12global_writePi(ptr nofree noundef nonnull writeonly align 4 dereferenceable(8) addrspacecast (ptr addrspace(1) @g1 to ptr)) #[[ATTR2:[0-9]+]]119; CHECK-NEXT:    call void @_Z12global_writePi(ptr nofree noundef nonnull writeonly align 4 dereferenceable(4) addrspacecast (ptr addrspace(1) @g2 to ptr)) #[[ATTR2]]120; CHECK-NEXT:    call void @_Z13unknown_writePi(ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(8) addrspacecast (ptr addrspace(1) @g1 to ptr)) #[[ATTR2]]121; CHECK-NEXT:    call void @_Z13unknown_writePi(ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s1 to ptr)) #[[ATTR2]]122; CHECK-NEXT:    call void @_Z12shared_writePi(ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s1 to ptr)) #[[ATTR2]]123; CHECK-NEXT:    call void @_Z12shared_writePi(ptr nofree noundef nonnull writeonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s2 to ptr)) #[[ATTR2]]124; CHECK-NEXT:    call void @_Z11global_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(8) addrspacecast (ptr addrspace(1) @g1 to ptr)) #[[ATTR3:[0-9]+]]125; CHECK-NEXT:    call void @_Z11global_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(1) @g2 to ptr)) #[[ATTR3]]126; CHECK-NEXT:    call void @_Z12unknown_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(8) addrspacecast (ptr addrspace(1) @g1 to ptr)) #[[ATTR3]]127; CHECK-NEXT:    call void @_Z12unknown_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s1 to ptr)) #[[ATTR3]]128; CHECK-NEXT:    call void @_Z11shared_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s1 to ptr)) #[[ATTR3]]129; CHECK-NEXT:    call void @_Z11shared_readPi(ptr nofree noundef nonnull readonly align 4 captures(none) dereferenceable(4) addrspacecast (ptr addrspace(3) @s2 to ptr)) #[[ATTR3]]130; CHECK-NEXT:    ret void131;132entry:133  call void @_Z12global_writePi(ptr noundef addrspacecast (ptr addrspace(1) @g1 to ptr)) #1134  call void @_Z12global_writePi(ptr noundef addrspacecast (ptr addrspace(1) @g2 to ptr)) #1135  call void @_Z13unknown_writePi(ptr noundef addrspacecast (ptr addrspace(1) @g1 to ptr)) #1136  call void @_Z13unknown_writePi(ptr noundef addrspacecast (ptr addrspace(3) @s1 to ptr)) #1137  call void @_Z12shared_writePi(ptr noundef addrspacecast (ptr addrspace(3) @s1 to ptr)) #1138  call void @_Z12shared_writePi(ptr noundef addrspacecast (ptr addrspace(3) @s2 to ptr)) #1139  call void @_Z11global_readPi(ptr noundef addrspacecast (ptr addrspace(1) @g1 to ptr)) #1140  call void @_Z11global_readPi(ptr noundef addrspacecast (ptr addrspace(1) @g2 to ptr)) #1141  call void @_Z12unknown_readPi(ptr noundef addrspacecast (ptr addrspace(1) @g1 to ptr)) #1142  call void @_Z12unknown_readPi(ptr noundef addrspacecast (ptr addrspace(3) @s1 to ptr)) #1143  call void @_Z11shared_readPi(ptr noundef addrspacecast (ptr addrspace(3) @s1 to ptr)) #1144  call void @_Z11shared_readPi(ptr noundef addrspacecast (ptr addrspace(3) @s2 to ptr)) #1145  ret void146}147 148attributes #0 = { convergent mustprogress noinline nounwind }149attributes #1 = { convergent nounwind }150;.151; CHECK: attributes #[[ATTR0]] = { mustprogress nofree noinline norecurse nosync nounwind willreturn memory(write) }152; CHECK: attributes #[[ATTR1]] = { mustprogress nofree noinline norecurse nosync nounwind willreturn }153; CHECK: attributes #[[ATTR2]] = { convergent nofree nosync nounwind willreturn memory(write) }154; CHECK: attributes #[[ATTR3]] = { convergent nofree nosync nounwind willreturn }155;.156