[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AArch64 / arm64-register-pairing.ll
blobeac7e5cb33631149a19fb052e24a8eda8887a20f
1 ; RUN: llc -mtriple=arm64-apple-ios < %s | FileCheck %s
2 ; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck -check-prefix CHECK-NOTMACHO %s
4 ; rdar://14075006
6 define void @odd() nounwind {
7 ; CHECK-LABEL: odd:
8 ; CHECK: stp d15, d14, [sp, #-144]!
9 ; CHECK: stp d13, d12, [sp, #16]
10 ; CHECK: stp d11, d10, [sp, #32]
11 ; CHECK: stp d9, d8, [sp, #48]
12 ; CHECK: stp x28, x27, [sp, #64]
13 ; CHECK: stp x26, x25, [sp, #80]
14 ; CHECK: stp x24, x23, [sp, #96]
15 ; CHECK: stp x22, x21, [sp, #112]
16 ; CHECK: stp x20, x19, [sp, #128]
17 ; CHECK: mov x0, #42
18 ; CHECK: ldp x20, x19, [sp, #128]
19 ; CHECK: ldp x22, x21, [sp, #112]
20 ; CHECK: ldp x24, x23, [sp, #96]
21 ; CHECK: ldp x26, x25, [sp, #80]
22 ; CHECK: ldp x28, x27, [sp, #64]
23 ; CHECK: ldp d9, d8, [sp, #48]
24 ; CHECK: ldp d11, d10, [sp, #32]
25 ; CHECK: ldp d13, d12, [sp, #16]
26 ; CHECK: ldp d15, d14, [sp], #144
28 ; CHECK-NOTMACHO-LABEL: odd:
29 ; CHECK-NOTMACHO: stp d14, d12, [sp, #-80]!
30 ; CHECK-NOTMACHO: stp d10, d8, [sp, #16]
31 ; CHECK-NOTMACHO: str x27, [sp, #32]
32 ; CHECK-NOTMACHO: stp x25, x23, [sp, #48]
33 ; CHECK-NOTMACHO: stp x21, x19, [sp, #64]
34 ; CHECK-NOTMACHO: mov x0, #42
35 ; CHECK-NOTMACHO: ldp x21, x19, [sp, #64]
36 ; CHECK-NOTMACHO: ldp x25, x23, [sp, #48]
37 ; CHECK-NOTMACHO: ldr x27, [sp, #32]
38 ; CHECK-NOTMACHO: ldp d10, d8, [sp, #16]
39 ; CHECK-NOTMACHO: ldp d14, d12, [sp], #80
40   call void asm sideeffect "mov x0, #42", "~{x0},~{x19},~{x21},~{x23},~{x25},~{x27},~{d8},~{d10},~{d12},~{d14}"() nounwind
41   ret void
44 define void @even() nounwind {
45 ; CHECK-LABEL: even:
46 ; CHECK: stp d15, d14, [sp, #-144]!
47 ; CHECK: stp d13, d12, [sp, #16]
48 ; CHECK: stp d11, d10, [sp, #32]
49 ; CHECK: stp d9, d8, [sp, #48]
50 ; CHECK: stp x28, x27, [sp, #64]
51 ; CHECK: stp x26, x25, [sp, #80]
52 ; CHECK: stp x24, x23, [sp, #96]
53 ; CHECK: stp x22, x21, [sp, #112]
54 ; CHECK: stp x20, x19, [sp, #128]
55 ; CHECK: mov x0, #42
56 ; CHECK: ldp x20, x19, [sp, #128]
57 ; CHECK: ldp x22, x21, [sp, #112]
58 ; CHECK: ldp x24, x23, [sp, #96]
59 ; CHECK: ldp x26, x25, [sp, #80]
60 ; CHECK: ldp x28, x27, [sp, #64]
61 ; CHECK: ldp d9, d8, [sp, #48]
62 ; CHECK: ldp d11, d10, [sp, #32]
63 ; CHECK: ldp d13, d12, [sp, #16]
64 ; CHECK: ldp d15, d14, [sp], #144
66 ; CHECK-NOTMACHO-LABEL: even:
67 ; CHECK-NOTMACHO: stp d15, d13, [sp, #-80]!
68 ; CHECK-NOTMACHO: stp d11, d9, [sp, #16]
69 ; CHECK-NOTMACHO: str x28, [sp, #32]
70 ; CHECK-NOTMACHO: stp x26, x24, [sp, #48]
71 ; CHECK-NOTMACHO: stp x22, x20, [sp, #64]
72 ; CHECK-NOTMACHO: mov x0, #42
73 ; CHECK-NOTMACHO: ldp x22, x20, [sp, #64]
74 ; CHECK-NOTMACHO: ldp x26, x24, [sp, #48]
75 ; CHECK-NOTMACHO: ldr x28, [sp, #32]
76 ; CHECK-NOTMACHO: ldp d11, d9, [sp, #16]
77 ; CHECK-NOTMACHO: ldp d15, d13, [sp], #80
78   call void asm sideeffect "mov x0, #42", "~{x0},~{x20},~{x22},~{x24},~{x26},~{x28},~{d9},~{d11},~{d13},~{d15}"() nounwind
79   ret void