29 lines
885 B
Rust
29 lines
885 B
Rust
|
|
//@ assembly-output: ptx-linker
|
||
|
|
//@ compile-flags: --crate-type cdylib -C target-cpu=sm_80 -Z unstable-options -Clinker-flavor=llbc
|
||
|
|
//@ only-nvptx64
|
||
|
|
//@ build-pass
|
||
|
|
#![no_std]
|
||
|
|
#![allow(dead_code)]
|
||
|
|
|
||
|
|
#[panic_handler]
|
||
|
|
pub fn panic(_info: &core::panic::PanicInfo) -> ! {
|
||
|
|
loop {}
|
||
|
|
}
|
||
|
|
|
||
|
|
// -Ctarget-cpu=sm_80 directly enables sm_80 and ptx70
|
||
|
|
#[cfg(not(all(target_feature = "sm_80", target_feature = "ptx70")))]
|
||
|
|
compile_error!("direct target features not enabled");
|
||
|
|
|
||
|
|
// -Ctarget-cpu=sm_80 implies all earlier sm_* and ptx* features.
|
||
|
|
#[cfg(not(all(
|
||
|
|
target_feature = "sm_60",
|
||
|
|
target_feature = "sm_70",
|
||
|
|
target_feature = "ptx50",
|
||
|
|
target_feature = "ptx60",
|
||
|
|
)))]
|
||
|
|
compile_error!("implied target features not enabled");
|
||
|
|
|
||
|
|
// -Ctarget-cpu=sm_80 implies all earlier sm_* and ptx* features.
|
||
|
|
#[cfg(target_feature = "ptx71")]
|
||
|
|
compile_error!("sm_80 requires only ptx70, but ptx71 enabled");
|