Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature][flang2] Initial support for opaque pointers #1321

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions test/debug_info/allocatable_arr_param.f90
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define void @callee_
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[ALLOCATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[ALLOCATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array",
!CHECK-SAME: arg: 2,
!CHECK-SAME: type: [[TYPE:![0-9]+]]
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_rank.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s --check-prefix=DWARF4
!RUN: %flang -gdwarf-5 -S -emit-llvm %s -o - | FileCheck %s --check-prefix=DWARF5

!DWARF4: call void @llvm.dbg.value(metadata i64* %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF4: call void @llvm.dbg.value(metadata ptr %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF4: !DILocalVariable(name: "ararray"
!DWARF4-SAME: arg: 2
!DWARF4-SAME: type: [[ARTYPE:![0-9]+]])
Expand All @@ -18,7 +18,7 @@
!DWARF4: [[ELEM7]] = !DISubrange(lowerBound: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 368, DW_OP_deref), upperBound: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 408, DW_OP_deref), stride: !DIExpression(DW_OP_push_object_address, DW_OP_plus_uconst, 400, DW_OP_deref, DW_OP_push_object_address, DW_OP_plus_uconst, 24, DW_OP_deref, DW_OP_mul))


!DWARF5: call void @llvm.dbg.value(metadata i64* %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF5: call void @llvm.dbg.value(metadata ptr %ararray, metadata [[DLOC:![0-9]+]], metadata !DIExpression())
!DWARF5: !DILocalVariable(name: "ararray"
!DWARF5-SAME: arg: 2
!DWARF5-SAME: type: [[ARTYPE:![0-9]+]])
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/assumed_shape.f90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i64* %assume, metadata [[ASSUME:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %assume, metadata [[ASSUME:![0-9]+]], metadata !DIExpression())
!CHECK: [[TYPE:![0-9]+]] = !DICompositeType(tag: DW_TAG_array_type, baseType: {{![0-9]+}}, size: 32, align: 32, elements: [[ELEMS:![0-9]+]])
!CHECK: [[ELEMS]] = !{[[ELEM1:![0-9]+]], [[ELEM2:![0-9]+]], [[ELEM3:![0-9]+]], [[ELEM4:![0-9]+]]
!CHECK: [[ELEM1]] = !DISubrange(lowerBound: 1, upperBound: 5)
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_shape_non_contiguous.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.value(metadata i64* %array, metadata [[ARRAYDL:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.value(metadata ptr %array, metadata [[ARRAYDL:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK-LABEL: distinct !DICompileUnit(language: DW_LANG_Fortran90,
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array"
!CHECK-SAME: arg: 3
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/assumed_size_array.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i64* %array1, metadata [[ARRAY1:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata i64* %array2, metadata [[ARRAY2:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %array1, metadata [[ARRAY1:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %array2, metadata [[ARRAY2:![0-9]+]], metadata !DIExpression())
!CHECK: [[TYPE1:![0-9]+]] = !DICompositeType(tag: DW_TAG_array_type, baseType: {{![0-9]+}}, align: 32, elements: [[ELEMS1:![0-9]+]])
!CHECK: [[ELEMS1]] = !{[[ELEM11:![0-9]+]]}
!CHECK: [[ELEM11]] = !DISubrange(lowerBound: 1)
Expand Down
4 changes: 2 additions & 2 deletions test/debug_info/byval-name.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
! operation using them are well formed.
!CHECK: sub_(i32 [[PREFIXED_ARG_NAME:%_V_arg_abc.arg]])
!CHECK: [[PREFIXED_LOCAL_NAME:%_V_arg_abc.addr]] = alloca i32, align 4
!CHECK: call void @llvm.dbg.declare(metadata i32* [[PREFIXED_LOCAL_NAME]]
!CHECK: store i32 [[PREFIXED_ARG_NAME]], i32* [[PREFIXED_LOCAL_NAME]], align 4
!CHECK: call void @llvm.dbg.declare(metadata ptr [[PREFIXED_LOCAL_NAME]]
!CHECK: store i32 [[PREFIXED_ARG_NAME]], ptr [[PREFIXED_LOCAL_NAME]], align 4

!Verify the DebugInfo metadata contains prefix _V_ truncated names.
!CHECK: DILocalVariable(name: "arg_abc"
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/cray_ptr_param.f90
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define internal void @main_callee
!CHECK: call void @llvm.dbg.declare(metadata i64* %callee_ptr, metadata [[CALLEE_PTR:![0-9]+]]
!CHECK: call void @llvm.dbg.declare(metadata ptr %callee_ptr, metadata [[CALLEE_PTR:![0-9]+]]
!CHECK: [[CALLEE_PTR]] = !DILocalVariable(name: "callee_ptr"
!CHECK-SAME: arg: 1

Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/pointer_arr_param.f90
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
!RUN: %flang -gdwarf-4 -S -emit-llvm %s -o - | FileCheck %s

!CHECK-LABEL: define void @callee_
!CHECK: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$p", metadata [[ASSOCIATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata i64* %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[DLOC:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$p", metadata [[ASSOCIATED:![0-9]+]]
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"array$sd", metadata [[ARRAY:![0-9]+]], metadata !DIExpression())
!CHECK: [[ARRAY]] = !DILocalVariable(name: "array"
!CHECK-SAME: arg: 2
!CHECK-SAME: type: [[TYPE:![0-9]+]]
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/pointer_array_openmp.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

!CHECK: define internal void @main_sub
!CHECK: define internal void @__nv_main_sub_
!CHECK: call void @llvm.dbg.declare(metadata double** %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata double** %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata [16 x i64]* %"res$sd
!CHECK: call void @llvm.dbg.declare(metadata ptr %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"res$p
!CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %"res$sd

program main
type :: dtype
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/prolog.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
!CHECK: define void @show_
!CHECK: call void @llvm.dbg.declare
!CHECK-SAME: , !dbg {{![0-9]+}}
!CHECK-NOT: bitcast i64* %"array$sd" to i8*, !dbg
!CHECK: store i64 {{%[0-9]+}}, i64* %z_b_3_{{[0-9]+}}, align 8
!CHECK-NOT: bitcast ptr %"array$sd" to ptr, !dbg
!CHECK: store i64 {{%[0-9]+}}, ptr %z_b_3_{{[0-9]+}}, align 8
!CHECK: br label
!CHECK: ret void, !dbg {{![0-9]+}}
subroutine show (message, array)
Expand All @@ -18,7 +18,7 @@ subroutine show (message, array)
end subroutine show

!CHECK: define void @MAIN_
!CHECK-NOT: bitcast void (...)* @fort_init to void (i8*, ...)*, !dbg {{![0-9]+}}
!CHECK-NOT: bitcast ptr @fort_init to ptr, !dbg {{![0-9]+}}
!CHECK: call void @llvm.dbg.declare
!CHECK-SAME: , !dbg {{![0-9]+}}
!CHECK: ret void, !dbg
Expand Down
6 changes: 3 additions & 3 deletions test/debug_info/redundant_inst.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
!RUN: llvm-dwarfdump --debug-line %t | FileCheck %s --check-prefix=LINETABLE

!Check that `store` instruction is getting emitted for the second assignment.
!STORE: store i32 4, i32* %[[VAR_A:.*]], align 4
!STORE: %[[TEMP:.*]] = load i32, i32* %[[VAR_A]], align 4, !dbg ![[LOCATION:.*]]
!STORE: store i32 %[[TEMP]], i32* %[[VAR_A]], align 4, !dbg ![[LOCATION]]
!STORE: store i32 4, ptr %[[VAR_A:.*]], align 4
!STORE: %[[TEMP:.*]] = load i32, ptr %[[VAR_A]], align 4, !dbg ![[LOCATION:.*]]
!STORE: store i32 %[[TEMP]], ptr %[[VAR_A]], align 4, !dbg ![[LOCATION]]
!STORE: ![[LOCATION]] = !DILocation(line: 19, column: 1, scope: !{{.*}})

!Check the line table entry of the second assignment.
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/result_var.f90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!RUN: %flang -g -S -emit-llvm %s -o - | FileCheck %s

!CHECK: call void @llvm.dbg.declare(metadata i32* %rvar_{{[0-9]+}}, metadata [[RESULT:![0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %rvar_{{[0-9]+}}, metadata [[RESULT:![0-9]+]], metadata !DIExpression())
!CHECK: [[RESULT]] = !DILocalVariable(name: "rvar"

function func(arg) result(rvar)
Expand Down
18 changes: 9 additions & 9 deletions test/debug_info/retained-nodes.f90
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@

subroutine addf(a, b, c, d, e, f, g, h, i)
integer :: a, b, c, d, e, f, g, h, i
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %a, metadata [[A:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %b, metadata [[B:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %c, metadata [[C:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %d, metadata [[D:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %e, metadata [[E:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %f, metadata [[F:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %g, metadata [[G:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %h, metadata [[H:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata i64* %i, metadata [[I:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %a, metadata [[A:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %b, metadata [[B:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %c, metadata [[C:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %d, metadata [[D:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %e, metadata [[E:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %f, metadata [[F:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %g, metadata [[G:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %h, metadata [[H:![0-9]+]]
! CHECK: call void @llvm.dbg.declare{{.*}}({{.*}}metadata ptr %i, metadata [[I:![0-9]+]]
end subroutine

! CHECK-DAG: [[NODES:![0-9]+]] = !{{{.*}}[[A]], [[B]], [[C]], [[D]], [[E]], [[F]], [[G]], [[H]], [[I]]{{.*}}}
Expand Down
2 changes: 1 addition & 1 deletion test/debug_info/scalar_allocatable.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

!Ensure that for an allocatable variable, we're taking the type of
!allocatable variable as DW_TAG_pointer_type.
!CHECK: call void @llvm.dbg.declare(metadata double** %{{.*}}, metadata ![[DILocalVariable:[0-9]+]], metadata !DIExpression())
!CHECK: call void @llvm.dbg.declare(metadata ptr %{{.*}}, metadata ![[DILocalVariable:[0-9]+]], metadata !DIExpression())
!CHECK: ![[DILocalVariable]] = !DILocalVariable(name: "alcvar"
!CHECK-SAME: type: ![[PTRTYPE:[0-9]+]]
!CHECK: ![[PTRTYPE]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: ![[TYPE:[0-9]+]]
Expand Down
4 changes: 2 additions & 2 deletions test/directives/getarg.f90
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ subroutine test()

call getarg(pos, arg)
end subroutine
! CHECK: bitcast void ({{.*}})* @f90_getarga to void (i8*, i8*, i8*, i64{{.*}})*,
! CHECK-NOT: bitcast void ({{.*}})* @getarg_ to void (i8, i8, i64{{.*}})*,
! CHECK: bitcast ptr @f90_getarga to ptr,
! CHECK-NOT: bitcast ptr @getarg_ to ptr,
10 changes: 5 additions & 5 deletions test/directives/prefetch.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ subroutine prefetch_dir(a1, a2)
end subroutine prefetch_dir

!! Ensure that the offset generated for the prefetch of a2(i + 256) is correct.
! CHECK-PREFETCH: [[a1:%[0-9]+]] = bitcast i64* %a1 to i8*
! CHECK-PREFETCH: [[a2:%[0-9]+]] = bitcast i64* %a2 to i8*
! CHECK-PREFETCH: [[a2base:%[0-9]+]] = getelementptr i8, i8* [[a2]], i64 1020
! CHECK-PREFETCH: [[a1:%[0-9]+]] = bitcast ptr %a1 to ptr
! CHECK-PREFETCH: [[a2:%[0-9]+]] = bitcast ptr %a2 to ptr
! CHECK-PREFETCH: [[a2base:%[0-9]+]] = getelementptr i8, ptr [[a2]], i64 1020
! CHECK-PREFETCH: [[i:%[0-9]+]] = load i32
! CHECK-PREFETCH: [[TMP1:%[0-9]+]] = sext i32 [[i]] to i64
! CHECK-PREFETCH: [[TMP2:%[0-9]+]] = mul nsw i64 [[TMP1]], 4
! CHECK-PREFETCH: [[a2elem:%[0-9]+]] = getelementptr i8, i8* [[a2base]], i64 [[TMP2]]
! CHECK-PREFETCH: call void @llvm.prefetch{{.*}}(i8* [[a2elem]], i32 0, i32 3, i32 1)
! CHECK-PREFETCH: [[a2elem:%[0-9]+]] = getelementptr i8, ptr [[a2base]], i64 [[TMP2]]
! CHECK-PREFETCH: call void @llvm.prefetch{{.*}}(ptr [[a2elem]], i32 0, i32 3, i32 1)
! CHECK-PREFETCH: declare void @llvm.prefetch{{.*}}
! CHECK-NOPREFETCH-NOT: @llvm.prefetch
4 changes: 2 additions & 2 deletions test/llvm_ir_correct/assign_cray_pointer_in_data.f
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ PROGRAM MINIMAL
IMPLICIT NONE
REAL OLD(1)
POINTER(IOLD, OLD)
! CHECK: %struct.STATICS1 = type <{ i8* }>
! CHECK: %struct.STATICS1 = type <{ ptr }>
DATA IOLD/-1/
! CHECK: @.STATICS1 = internal global %struct.STATICS1 <{ i8* inttoptr (i64 -1 to i8*) }>
! CHECK: @.STATICS1 = internal global %struct.STATICS1 <{ ptr inttoptr (i64 -1 to ptr) }>
END PROGRAM MINIMAL
2 changes: 1 addition & 1 deletion test/llvm_ir_correct/daz.f90
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

! RUN: %flang -target x86_64-unknown-unknown -Mdaz %s -S -emit-llvm -o - | FileCheck %s
! REQUIRES: x86_64-host
! CHECK: @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @__daz, i8* null }]
! CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__daz, ptr null }]

program daz
end program
Expand Down
16 changes: 8 additions & 8 deletions test/llvm_ir_correct/len_intrinsic.f90
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ subroutine s1(x)
print *, s1_test_len
end subroutine
! CONVERT: define void @s1_
! CONVERT: %[[LOAD_IGNORE:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT: %[[LOAD:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT: %[[LOAD_IGNORE:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT: %[[LOAD:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT: %[[TRUNC:[0-9]+]] = trunc i64 %[[LOAD]] to i32
! CONVERT: store i32 %[[TRUNC]], i32* %s1_test_len
! CONVERT: store i32 %[[TRUNC]], ptr %s1_test_len
! CONVERT_I8: define void @s1_
! CONVERT_I8: %[[LOAD_IGNORE:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT_I8: %[[LOAD:[0-9]+]] = load i64, i64* %"s1_str$len
! CONVERT_I8: store i64 %[[LOAD]], i64* %s1_test_len
! CONVERT_I8: %[[LOAD_IGNORE:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT_I8: %[[LOAD:[0-9]+]] = load i64, ptr %"s1_str$len
! CONVERT_I8: store i64 %[[LOAD]], ptr %s1_test_len

subroutine s2()
character(len=100) :: s2_str
Expand All @@ -33,6 +33,6 @@ subroutine s2()
print *, s2_test_len
end subroutine
! NO_CONVERT: define void @s2_
! NO_CONVERT: store i32 100, i32* %s2_test_len
! NO_CONVERT: store i32 100, ptr %s2_test_len
! NO_CONVERT_I8: define void @s2_
! NO_CONVERT_I8: store i64 100, i64* %s2_test_len
! NO_CONVERT_I8: store i64 100, ptr %s2_test_len
8 changes: 4 additions & 4 deletions test/llvm_ir_correct/omp_atomic_load_logical.f90
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ subroutine sub8
do
!$OMP ATOMIC READ
v = l8
! //CHECK: load atomic i8, i8*
! //CHECK: load atomic i8, ptr
if (v) exit
end do
end subroutine
Expand All @@ -37,7 +37,7 @@ subroutine sub16
do
!$OMP ATOMIC READ
v = l16
! //CHECK: load atomic i16, i16*
! //CHECK: load atomic i16, ptr
if (v) exit
end do
end subroutine
Expand All @@ -50,7 +50,7 @@ subroutine sub32
do
!$OMP ATOMIC READ
v = l32
! //CHECK: load atomic i32, i32*
! //CHECK: load atomic i32, ptr
if (v) exit
end do
end subroutine
Expand All @@ -63,7 +63,7 @@ subroutine sub64
do
!$OMP ATOMIC READ
v = l64
! //CHECK: load atomic i64, i64*
! //CHECK: load atomic i64, ptr
if (v) exit
end do
end subroutine
Expand Down
6 changes: 3 additions & 3 deletions test/llvm_ir_correct/save.f90
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ program msave
implicit none
! NOSAVE: alloca i32
integer :: x
! NOSAVE: store i32 5, i32* %x
! SAVE: bitcast %struct.BSS1* @.BSS1 to i32*
! SAVE: store i32 5, i32*
! NOSAVE: store i32 5, ptr %x
! SAVE: bitcast ptr @.BSS1 to ptr
! SAVE: store i32 5, ptr
x = 5
end program

Expand Down
Loading