]> git.lizzy.rs Git - rust.git/blob - src/test/ui/asm/aarch64/const.rs
Auto merge of #90668 - matthiaskrgr:clippy_nov7, r=jyn514
[rust.git] / src / test / ui / asm / aarch64 / const.rs
1 // only-aarch64
2 // run-pass
3 // revisions: mirunsafeck thirunsafeck
4 // [thirunsafeck]compile-flags: -Z thir-unsafeck
5
6 #![feature(asm, global_asm, asm_const)]
7
8 fn const_generic<const X: usize>() -> usize {
9     unsafe {
10         let a: usize;
11         asm!("mov {}, {}", out(reg) a, const X);
12         a
13     }
14 }
15
16 const fn constfn(x: usize) -> usize {
17     x
18 }
19
20 fn main() {
21     unsafe {
22         let a: usize;
23         asm!("mov {}, {}", out(reg) a, const 5);
24         assert_eq!(a, 5);
25
26         let b: usize;
27         asm!("mov {}, {}", out(reg) b, const constfn(5));
28         assert_eq!(b, 5);
29
30         let c: usize;
31         asm!("mov {}, {}", out(reg) c, const constfn(5) + constfn(5));
32         assert_eq!(c, 10);
33     }
34
35     let d = const_generic::<5>();
36     assert_eq!(d, 5);
37 }
38
39 global_asm!("mov x0, {}", const 5);
40 global_asm!("mov x0, {}", const constfn(5));
41 global_asm!("mov x0, {}", const constfn(5) + constfn(5));