| //@ 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"); |