blob: c62622b607b9308ab873b03ef21bf27ddbc62ffc [file] [log] [blame]
module main
contains
subroutine f1 ()
end subroutine
subroutine f2 ()
!$omp declare variant (f1) match (construct={target})
end subroutine
subroutine f3 ()
end subroutine
subroutine f4 ()
!$omp declare variant (f3) match (construct={teams})
end subroutine
subroutine f5 ()
end subroutine
subroutine f6 ()
!$omp declare variant (f5) match (construct={parallel})
end subroutine
subroutine f7 ()
end subroutine
subroutine f8 ()
!$omp declare variant (f7) match (construct={do})
end subroutine
subroutine f9 ()
end subroutine
subroutine f10 ()
!$omp declare variant (f9) match (construct={target,teams,parallel,do})
end subroutine
subroutine f11 ()
end subroutine
subroutine f12 ()
!$omp declare variant (f11) match (construct={teams,do,parallel})
end subroutine
subroutine f13 ()
end subroutine
subroutine f14 ()
!$omp declare variant (f13) match (device={kind(any)})
end subroutine
subroutine f15 ()
!$omp declare variant (f13) match (device={kind("host")})
end subroutine
subroutine f16 ()
!$omp declare variant (f13) match (device={kind(nohost)})
end subroutine
subroutine f17 ()
!$omp declare variant (f13) match (device={kind(cpu)})
end subroutine
subroutine f18 ()
!$omp declare variant (f13) match (device={kind("gpu")})
end subroutine
subroutine f19 ()
!$omp declare variant (f13) match (device={kind(fpga)})
end subroutine
subroutine f20 ()
!$omp declare variant (f13) match (device={kind(any,any)})
end subroutine
subroutine f21 ()
!$omp declare variant (f13) match (device={kind(host,nohost)})
end subroutine
subroutine f22 ()
!$omp declare variant (f13) match (device={kind("cpu","gpu","fpga")})
end subroutine
subroutine f23 ()
!$omp declare variant (f13) match (device={kind(any,cpu,nohost)})
end subroutine
subroutine f24 ()
!$omp declare variant (f13) match (device={isa(avx)})
end subroutine
subroutine f25 ()
!$omp declare variant (f13) match (device={isa(sse4,"avx512f",avx512vl,avx512bw)})
end subroutine
subroutine f26 ()
!$omp declare variant (f13) match (device={arch("x86_64")})
end subroutine
subroutine f27 ()
!$omp declare variant (f13) match (device={arch(riscv64)})
end subroutine
subroutine f28 ()
!$omp declare variant (f13) match (device={arch(nvptx)})
end subroutine
subroutine f29 ()
!$omp declare variant (f13) match (device={arch(x86_64),isa("avx512f","avx512vl"),kind(cpu)})
end subroutine
subroutine f30 ()
!$omp declare variant (f13) match (implementation={vendor(amd)})
end subroutine
subroutine f31 ()
!$omp declare variant (f13) match (implementation={vendor(arm)})
end subroutine
subroutine f32 ()
!$omp declare variant (f13) match (implementation={vendor("bsc")})
end subroutine
subroutine f33 ()
!$omp declare variant (f13) match (implementation={vendor(cray)})
end subroutine
subroutine f34 ()
!$omp declare variant (f13) match (implementation={vendor(fujitsu)})
end subroutine
subroutine f35 ()
!$omp declare variant (f13) match (implementation={vendor(gnu)})
end subroutine
subroutine f36 ()
!$omp declare variant (f13) match (implementation={vendor(ibm)})
end subroutine
subroutine f37 ()
!$omp declare variant (f13) match (implementation={vendor("intel")})
end subroutine
subroutine f38 ()
!$omp declare variant (f13) match (implementation={vendor(llvm)})
end subroutine
subroutine f39 ()
!$omp declare variant (f13) match (implementation={vendor(pgi)})
end subroutine
subroutine f40 ()
!$omp declare variant (f13) match (implementation={vendor(ti)})
end subroutine
subroutine f41 ()
!$omp declare variant (f13) match (implementation={vendor(unknown)})
end subroutine
subroutine f42 ()
!$omp declare variant (f13) match (implementation={vendor(gnu,llvm,intel,ibm)})
end subroutine
subroutine f43 ()
!$omp declare variant (f13) match (implementation={extension(my_cute_extension)}) ! { dg-warning "unknown property 'my_cute_extension' of 'extension' selector" }
end subroutine
subroutine f44 ()
!$omp declare variant (f13) match (implementation={extension(some_other_ext,another_ext)}) ! { dg-warning "unknown property 'some_other_ext' of 'extension' selector" }
! { dg-warning "unknown property 'another_ext' of 'extension' selector" "" { target *-*-* } .-1 }
end subroutine
subroutine f45 ()
!$omp declare variant (f13) match (implementation={unified_shared_memory})
end subroutine
subroutine f46 ()
!$omp declare variant (f13) match (implementation={unified_address})
end subroutine
subroutine f47 ()
!$omp declare variant (f13) match (implementation={dynamic_allocators})
end subroutine
subroutine f48 ()
!$omp declare variant (f13) match (implementation={reverse_offload})
end subroutine
subroutine f49 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(seq_cst)})
end subroutine
subroutine f50 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(relaxed)})
end subroutine
subroutine f51 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(acq_rel)})
end subroutine
subroutine f52 ()
!$omp declare variant (f14) match (implementation={atomic_default_mem_order(acq_rel),vendor(gnu),&
!$omp& unified_address,extension(foobar)}) ! { dg-warning "unknown property 'foobar' of 'extension' selector" "" { target *-*-* } .-1 }
end subroutine
subroutine f53 ()
!$omp declare variant (f13) match (implementation={vendor(score(3):amd)})
end subroutine
subroutine f54 ()
!$omp declare variant (f13) match (implementation={vendor(score(4):"arm")})
end subroutine
subroutine f55 ()
!$omp declare variant (f13) match (implementation={vendor(score(5):bsc)})
end subroutine
subroutine f56 ()
!$omp declare variant (f13) match (implementation={vendor(score(6):cray)})
end subroutine
subroutine f57 ()
!$omp declare variant (f13) match (implementation={vendor(score(7):fujitsu)})
end subroutine
subroutine f58 ()
!$omp declare variant (f13) match (implementation={vendor(score(8):gnu)})
end subroutine
subroutine f59 ()
!$omp declare variant (f13) match (implementation={vendor(score(9):ibm)})
end subroutine
subroutine f60 ()
!$omp declare variant (f13) match (implementation={vendor(score(10):intel)})
end subroutine
subroutine f61 ()
!$omp declare variant (f13) match (implementation={vendor(score(11):llvm)})
end subroutine
subroutine f62 ()
!$omp declare variant (f13) match (implementation={vendor(score(12):pgi)})
end subroutine
subroutine f63 ()
!$omp declare variant (f13) match (implementation={vendor(score(13):"ti")})
end subroutine
subroutine f64 ()
!$omp declare variant (f13) match (implementation={vendor(score(14):unknown)})
end subroutine
subroutine f65 ()
!$omp declare variant (f13) match (implementation={vendor(score(15):gnu,llvm,intel,ibm)})
end subroutine
subroutine f66 ()
!$omp declare variant (f13) match (implementation={extension(score(16):my_cute_extension)}) ! { dg-warning "unknown property 'my_cute_extension' of 'extension' selector" }
end subroutine
subroutine f67 ()
!$omp declare variant (f13) match (implementation={extension(score(17):some_other_ext,another_ext)}) ! { dg-warning "unknown property 'some_other_ext' of 'extension' selector" }
end subroutine ! { dg-warning "unknown property 'another_ext' of 'extension' selector" "" { target *-*-* } .-1 }
subroutine f68 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(score(18):seq_cst)})
end subroutine
subroutine f69 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(score(19):relaxed)})
end subroutine
subroutine f70 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(score(20):acq_rel)})
end subroutine
subroutine f71 ()
!$omp declare variant (f13) match (implementation={atomic_default_mem_order(score(21):acq_rel),&
!$omp& vendor(score(22):gnu),unified_address,extension(score(22):foobar)}) ! { dg-warning "unknown property 'foobar' of 'extension' selector" "" { target *-*-* } .-1 }
end subroutine
subroutine f72 ()
!$omp declare variant (f13) match (user={condition(0)})
end subroutine
subroutine f73 ()
!$omp declare variant (f13) match (user={condition(272-272*1)})
end subroutine
subroutine f74 ()
!$omp declare variant (f13) match (user={condition(score(25):1)})
end subroutine
subroutine f75 ()
!$omp declare variant (f13) match (device={kind(any,"any")})
end subroutine
subroutine f76 ()
!$omp declare variant (f13) match (device={kind("any","any")})
end subroutine
subroutine f77 ()
!$omp declare variant (f13) match (device={kind("any",any)})
end subroutine
subroutine f78 ()
!$omp declare variant (f13) match (implementation={vendor(nvidia)})
end subroutine
subroutine f79 ()
!$omp declare variant (f13) match (user={condition(score(0):0)})
end subroutine
end module