]>
Commit | Line | Data |
---|---|---|
fe692bf9 | 1 | // compile-flags: -O -C no-prepopulate-passes |
fe692bf9 FG |
2 | |
3 | #![crate_type = "lib"] | |
4 | ||
5 | // CHECK-LABEL: @array_load | |
6 | #[no_mangle] | |
7 | pub fn array_load(a: &[u8; 4]) -> [u8; 4] { | |
add651ee | 8 | // CHECK: %_0 = alloca [4 x i8], align 1 |
fe692bf9 | 9 | // CHECK: %[[TEMP1:.+]] = load <4 x i8>, ptr %a, align 1 |
add651ee FG |
10 | // CHECK: store <4 x i8> %[[TEMP1]], ptr %_0, align 1 |
11 | // CHECK: %[[TEMP2:.+]] = load i32, ptr %_0, align 1 | |
fe692bf9 FG |
12 | // CHECK: ret i32 %[[TEMP2]] |
13 | *a | |
14 | } | |
15 | ||
16 | // CHECK-LABEL: @array_store | |
17 | #[no_mangle] | |
18 | pub fn array_store(a: [u8; 4], p: &mut [u8; 4]) { | |
19 | // CHECK: %a = alloca [4 x i8] | |
20 | // CHECK: %[[TEMP:.+]] = load <4 x i8>, ptr %a, align 1 | |
21 | // CHECK-NEXT: store <4 x i8> %[[TEMP]], ptr %p, align 1 | |
22 | *p = a; | |
23 | } | |
24 | ||
25 | // CHECK-LABEL: @array_copy | |
26 | #[no_mangle] | |
27 | pub fn array_copy(a: &[u8; 4], p: &mut [u8; 4]) { | |
28 | // CHECK: %[[LOCAL:.+]] = alloca [4 x i8], align 1 | |
29 | // CHECK: %[[TEMP1:.+]] = load <4 x i8>, ptr %a, align 1 | |
30 | // CHECK: store <4 x i8> %[[TEMP1]], ptr %[[LOCAL]], align 1 | |
31 | // CHECK: %[[TEMP2:.+]] = load <4 x i8>, ptr %[[LOCAL]], align 1 | |
32 | // CHECK: store <4 x i8> %[[TEMP2]], ptr %p, align 1 | |
33 | *p = *a; | |
34 | } |