//@ compile-flags: -O //@ only-x86_64 #![crate_type = "rlib"] #![allow(asm_sub_register)] use std::mem::MaybeUninit; use std::arch::asm; // CHECK-LABEL: @int #[no_mangle] pub unsafe fn int(x: MaybeUninit) -> MaybeUninit { let y: MaybeUninit; asm!("/*{}{}*/", in(reg) x, out(reg) y); y } // CHECK-LABEL: @inout #[no_mangle] pub unsafe fn inout(mut x: i32) -> MaybeUninit { let mut y: MaybeUninit; asm!("/*{}*/", inout(reg) x => y); asm!("/*{}*/", inout(reg) y => x); asm!("/*{}*/", inlateout(reg) x => y); asm!("/*{}*/", inlateout(reg) y => x); y }