blob: 1abe04f8cc4294ffde07639362cf1c082a82111d [file]
//@ add-minicore
//@ revisions: amdgpu nvptx
//@[nvptx] compile-flags: -Copt-level=3 -Zunstable-options -Zoffload=Device --target nvptx64-nvidia-cuda --crate-type=rlib
//@[nvptx] needs-llvm-components: nvptx
//@[amdgpu] compile-flags: -Copt-level=3 -Zunstable-options -Zoffload=Device --target amdgcn-amd-amdhsa -Ctarget-cpu=gfx900 --crate-type=rlib
//@[amdgpu] needs-llvm-components: amdgpu
//@ no-prefer-dynamic
//@ needs-offload
#![feature(abi_gpu_kernel, rustc_attrs, no_core)]
#![no_core]
extern crate minicore;
// CHECK: ; Function Attrs
// nvptx-NEXT: define ptx_kernel void @foo
// amdgpu-NEXT: define amdgpu_kernel void @foo
// CHECK-SAME: ptr readnone captures(none) %dyn_ptr
// nvptx-SAME: [2 x i64] %0
// amdgpu-SAME: ptr noalias {{.*}} %0, i64 {{.*}} %1
// CHECK-NEXT: entry:
// CHECK-NEXT: ret void
// CHECK-NEXT: }
#[unsafe(no_mangle)]
#[rustc_offload_kernel]
pub unsafe extern "gpu-kernel" fn foo(x: &[f32]) {}