]>
Commit | Line | Data |
---|---|---|
f9f354fc | 1 | // compile-flags: -C no-prepopulate-passes -Z mir-opt-level=0 |
9fa01778 | 2 | // ignore-tidy-linelength |
9fa01778 XL |
3 | |
4 | #![crate_type = "lib"] | |
9fa01778 XL |
5 | |
6 | #[repr(align(64))] | |
7 | pub enum Align64 { | |
8 | A(u32), | |
9 | B(u32), | |
10 | } | |
11 | // CHECK: %Align64 = type { [0 x i32], i32, [15 x i32] } | |
12 | ||
13 | pub struct Nested64 { | |
14 | a: u8, | |
15 | b: Align64, | |
16 | c: u16, | |
17 | } | |
18 | ||
19 | // CHECK-LABEL: @align64 | |
20 | #[no_mangle] | |
21 | pub fn align64(a: u32) -> Align64 { | |
22 | // CHECK: %a64 = alloca %Align64, align 64 | |
23 | // CHECK: call void @llvm.memcpy.{{.*}}(i8* align 64 %{{.*}}, i8* align 64 %{{.*}}, i{{[0-9]+}} 64, i1 false) | |
24 | let a64 = Align64::A(a); | |
25 | a64 | |
26 | } | |
27 | ||
28 | // CHECK-LABEL: @nested64 | |
29 | #[no_mangle] | |
30 | pub fn nested64(a: u8, b: u32, c: u16) -> Nested64 { | |
31 | // CHECK: %n64 = alloca %Nested64, align 64 | |
32 | let n64 = Nested64 { a, b: Align64::B(b), c }; | |
33 | n64 | |
34 | } |