Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / Attributor / reduced / pred_iterator_crash.ll
blob89fdefa41b5e6f5000ad0466d6acab1c7e51fc48
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__()
21   ret void
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:%.*]]
29 ; CGSCC:       1:
30 ; CGSCC-NEXT:    unreachable
31 ; CGSCC:       2:
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
35   br label %4
37 2:                                                ; No predecessors!
38   %3 = icmp eq i32 %1, 0
39   call void @llvm.assume(i1 %3)
40   br label %4
42 4:                                                ; preds = %2, %0
43   ret void
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:
52 ; TUNIT: {{.*}}