@@ -11,67 +11,66 @@ target triple = "aarch64-unknown-linux-gnu"
1111define  dso_local void  @func1 (ptr  %v1 , ptr  %v2 , ptr  %v3 , ptr  %v4 , ptr  %v5 , ptr  %v6 , ptr  %v7 , ptr  %v8 ,
1212; CHECK-LABEL: func1: 
1313; CHECK:       // %bb.0: 
14- ; CHECK-NEXT:    str x29, [sp, #-48]! // 8-byte Folded Spill 
15- ; CHECK-NEXT:    stp x22, x21, [sp, #16] // 16-byte Folded Spill 
16- ; CHECK-NEXT:    stp x20, x19, [sp, #32] // 16-byte Folded Spill 
17- ; CHECK-NEXT:    .cfi_def_cfa_offset 48 
18- ; CHECK-NEXT:    .cfi_offset w19, -8 
19- ; CHECK-NEXT:    .cfi_offset w20, -16 
20- ; CHECK-NEXT:    .cfi_offset w21, -24 
21- ; CHECK-NEXT:    .cfi_offset w22, -32 
22- ; CHECK-NEXT:    .cfi_offset w29, -48 
14+ ; CHECK-NEXT:    sub sp, sp, #368 
15+ ; CHECK-NEXT:    stp x29, x30, [sp, #336] // 16-byte Folded Spill 
16+ ; CHECK-NEXT:    str x28, [sp, #352] // 8-byte Folded Spill 
17+ ; CHECK-NEXT:    add x29, sp, #336 
18+ ; CHECK-NEXT:    .cfi_def_cfa w29, 32 
19+ ; CHECK-NEXT:    .cfi_offset w28, -16 
20+ ; CHECK-NEXT:    .cfi_offset w30, -24 
21+ ; CHECK-NEXT:    .cfi_offset w29, -32 
2322; CHECK-NEXT:    ptrue p0.d 
24- ; CHECK-NEXT:    add x10, sp, #176 
25- ; CHECK-NEXT:    add x8, sp, #48 
26- ; CHECK-NEXT:    add x9, sp, #144 
27- ; CHECK-NEXT:    add x20, sp, #176 
28- ; CHECK-NEXT:    ldr x15, [sp, #104] 
29- ; CHECK-NEXT:    ld1d { z3.d }, p0/z, [x10] 
23+ ; CHECK-NEXT:    add x8, x29, #32 
24+ ; CHECK-NEXT:    add x9, x29, #136 
25+ ; CHECK-NEXT:    mov x12, #32 // =0x20 
26+ ; CHECK-NEXT:    ldp x10, x11, [x29, #336] 
3027; CHECK-NEXT:    ld1d { z0.d }, p0/z, [x8] 
31- ; CHECK-NEXT:    add x8, sp , #112  
32- ; CHECK-NEXT:    ld1d { z2 .d }, p0/z, [x9] 
28+ ; CHECK-NEXT:    add x8, x29 , #72  
29+ ; CHECK-NEXT:    ld1d { z3 .d }, p0/z, [x9] 
3330; CHECK-NEXT:    ld1d { z1.d }, p0/z, [x8] 
34- ; CHECK-NEXT:    ldur q4, [sp, #88] 
35- ; CHECK-NEXT:    ldp x9, x8, [sp, #328] 
36- ; CHECK-NEXT:    ldr x19, [sp, #272] 
37- ; CHECK-NEXT:    ldp x11, x10, [sp, #312] 
38- ; CHECK-NEXT:    ldp x13, x12, [sp, #296] 
39- ; CHECK-NEXT:    ldp x18, x14, [sp, #280] 
40- ; CHECK-NEXT:    ldp x16, x17, [sp, #208] 
41- ; CHECK-NEXT:    ldp x21, x22, [sp, #352] 
42- ; CHECK-NEXT:    st1d { z3.d }, p0, [x20] 
43- ; CHECK-NEXT:    add x20, sp, #144 
44- ; CHECK-NEXT:    st1d { z2.d }, p0, [x20] 
45- ; CHECK-NEXT:    add x20, sp, #112 
46- ; CHECK-NEXT:    st1d { z1.d }, p0, [x20] 
47- ; CHECK-NEXT:    add x20, sp, #48 
48- ; CHECK-NEXT:    st1d { z0.d }, p0, [x20] 
49- ; CHECK-NEXT:    stp x21, x22, [sp, #352] 
50- ; CHECK-NEXT:    ldp x22, x21, [sp, #16] // 16-byte Folded Reload 
51- ; CHECK-NEXT:    stp x19, x18, [sp, #272] 
52- ; CHECK-NEXT:    ldp x20, x19, [sp, #32] // 16-byte Folded Reload 
53- ; CHECK-NEXT:    stp x16, x17, [sp, #208] 
54- ; CHECK-NEXT:    stur q4, [sp, #88] 
55- ; CHECK-NEXT:    str x15, [sp, #104] 
56- ; CHECK-NEXT:    stp x14, x13, [sp, #288] 
57- ; CHECK-NEXT:    stp x12, x11, [sp, #304] 
58- ; CHECK-NEXT:    stp x10, x9, [sp, #320] 
59- ; CHECK-NEXT:    str x8, [sp, #336] 
60- ; CHECK-NEXT:    ldr x29, [sp], #48 // 8-byte Folded Reload 
61- ; CHECK-NEXT:    b func2 
31+ ; CHECK-NEXT:    add x8, x29, #104 
32+ ; CHECK-NEXT:    add x9, x29, #288 
33+ ; CHECK-NEXT:    ld1d { z2.d }, p0/z, [x8] 
34+ ; CHECK-NEXT:    add x8, x29, #168 
35+ ; CHECK-NEXT:    ld1d { z6.d }, p0/z, [x9] 
36+ ; CHECK-NEXT:    ld1d { z4.d }, p0/z, [x8] 
37+ ; CHECK-NEXT:    add x8, x29, #256 
38+ ; CHECK-NEXT:    ldr x9, [x29, #320] 
39+ ; CHECK-NEXT:    ld1d { z5.d }, p0/z, [x8] 
40+ ; CHECK-NEXT:    ldr x8, [x29, #200] 
41+ ; CHECK-NEXT:    st1d { z6.d }, p0, [sp, x12, lsl #3] 
42+ ; CHECK-NEXT:    mov x12, #28 // =0x1c 
43+ ; CHECK-NEXT:    st1d { z5.d }, p0, [sp, x12, lsl #3] 
44+ ; CHECK-NEXT:    mov x12, #17 // =0x11 
45+ ; CHECK-NEXT:    st1d { z4.d }, p0, [sp, x12, lsl #3] 
46+ ; CHECK-NEXT:    mov x12, #13 // =0xd 
47+ ; CHECK-NEXT:    st1d { z3.d }, p0, [sp, x12, lsl #3] 
48+ ; CHECK-NEXT:    mov x12, #9 // =0x9 
49+ ; CHECK-NEXT:    st1d { z2.d }, p0, [sp, x12, lsl #3] 
50+ ; CHECK-NEXT:    mov x12, #5 // =0x5 
51+ ; CHECK-NEXT:    st1d { z1.d }, p0, [sp, x12, lsl #3] 
52+ ; CHECK-NEXT:    st1d { z0.d }, p0, [sp] 
53+ ; CHECK-NEXT:    stp x10, x11, [sp, #304] 
54+ ; CHECK-NEXT:    str x9, [sp, #288] 
55+ ; CHECK-NEXT:    str x8, [sp, #168] 
56+ ; CHECK-NEXT:    bl func2 
57+ ; CHECK-NEXT:    ldp x29, x30, [sp, #336] // 16-byte Folded Reload 
58+ ; CHECK-NEXT:    ldr x28, [sp, #352] // 8-byte Folded Reload 
59+ ; CHECK-NEXT:    add sp, sp, #368 
60+ ; CHECK-NEXT:    ret 
6261                             ptr  %v9 , ptr  %v10 , ptr  %v11 , ptr  %v12 , ptr  %v13 , ptr  %v14 ,  ptr  %v15 , ptr  %v16 ,
6362                             ptr  %v17 , ptr  %v18 , ptr  %v19 , ptr  %v20 , ptr  %v21 , ptr  %v22 , ptr  %v23 , ptr  %v24 ,
6463                             ptr  %v25 , ptr  %v26 , ptr  %v27 , ptr  %v28 , ptr  %v29 , ptr  %v30 , ptr  %v31 , ptr  %v32 ,
6564                             ptr  %v33 , ptr  %v34 , ptr  %v35 , ptr  %v36 , ptr  %v37 , ptr  %v38 , ptr  %v39 , ptr  %v40 ,
6665                             ptr  %v41 , ptr  %v42 , ptr  %v43 , ptr  %v44 , ptr  %v45 , ptr  %v46 , ptr  %v47 , ptr  %v48 ,
6766                             i64  %v49 ) #0  {
68-   tail   call  void  @func2 (ptr  %v1 , ptr  %v2 , ptr  %v3 , ptr  %v4 , ptr  %v5 , ptr  %v6 , ptr  %v7 , ptr  %v8 ,
69-                          ptr  %v9 , ptr  %v10 , ptr  %v11 , ptr  %v12 , ptr  undef , ptr  %v14 , ptr  %v15 , ptr  %v16 ,
70-                          ptr  %v17 , ptr  %v18 , ptr  %v19 , ptr  %v20 , ptr  %v21 , ptr  %v22 , ptr  %v23 , ptr  %v24 ,
71-                          ptr  %v25 , ptr  %v26 , ptr  %v27 , ptr  %v28 , ptr  %v29 , ptr  %v30 , ptr  undef , ptr  undef ,
72-                          ptr  undef , ptr  undef , ptr  undef , ptr  undef , ptr  %v37 , ptr  %v38 , ptr  %v39 , ptr  %v40 ,
73-                          ptr  %v41 , ptr  %v42 , ptr  %v43 , ptr  %v44 , ptr  %v45 , ptr  undef , ptr  %v47 , ptr  %v48 ,
74-                          i64  undef )
67+   call  void  @func2 (ptr  %v1 , ptr  %v2 , ptr  %v3 , ptr  %v4 , ptr  %v5 , ptr  %v6 , ptr  %v7 , ptr  %v8 ,
68+                    ptr  %v9 , ptr  %v10 , ptr  %v11 , ptr  %v12 , ptr  undef , ptr  %v14 , ptr  %v15 , ptr  %v16 ,
69+                    ptr  %v17 , ptr  %v18 , ptr  %v19 , ptr  %v20 , ptr  %v21 , ptr  %v22 , ptr  %v23 , ptr  %v24 ,
70+                    ptr  %v25 , ptr  %v26 , ptr  %v27 , ptr  %v28 , ptr  %v29 , ptr  %v30 , ptr  undef , ptr  undef ,
71+                    ptr  undef , ptr  undef , ptr  undef , ptr  undef , ptr  %v37 , ptr  %v38 , ptr  %v39 , ptr  %v40 ,
72+                    ptr  %v41 , ptr  %v42 , ptr  %v43 , ptr  %v44 , ptr  %v45 , ptr  undef , ptr  %v47 , ptr  %v48 ,
73+                    i64  undef )
7574  ret  void 
7675}
7776
0 commit comments