So, is this UB?
pub fn freeze(x: MaybeUninit<u64>) -> u64 {
unsafe {
let r: u64;
std::arch::asm!(
"// {}",
inout(reg) x => r,
options(nomem,nostack,preserves_flags),
);
r
}
}