@@ -11,66 +11,64 @@ 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 
23- ; CHECK-NEXT:    add x10, sp, #176 
24- ; CHECK-NEXT:    add x8, sp, #48 
25- ; CHECK-NEXT:    add x9, sp, #144 
26- ; CHECK-NEXT:    ldr z3, [x10] 
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 
22+ ; CHECK-NEXT:    add x8, x29, #32 
23+ ; CHECK-NEXT:    add x9, x29, #72 
24+ ; CHECK-NEXT:    ptrue p0.d 
2725; CHECK-NEXT:    ldr z0, [x8] 
28- ; CHECK-NEXT:    add x8, sp , #112  
29- ; CHECK-NEXT:    ldr z2 , [x9] 
26+ ; CHECK-NEXT:    add x8, x29 , #256  
27+ ; CHECK-NEXT:    ldr z3 , [x9] 
3028; CHECK-NEXT:    ldr z1, [x8] 
31- ; CHECK-NEXT:    add x20, sp , #176  
32- ; CHECK-NEXT:    ldp  x9, x8, [sp, #328]  
33- ; CHECK-NEXT:    ldr x15 , [sp, #104 ] 
34- ; CHECK-NEXT:    ldp x11, x10, [sp, #312]  
35- ; CHECK-NEXT:    ldur q4 , [sp, #88 ] 
36- ; CHECK-NEXT:    ldp x13, x12, [sp, #296 ] 
37- ; CHECK-NEXT:    ldr x19, [sp , #272]  
38- ; CHECK-NEXT:    ldp x18, x14, [sp, #280]  
39- ; CHECK-NEXT:    ldp x16, x17, [sp, #208 ] 
40- ; CHECK-NEXT:    ldp x21, x22 , [sp , #352 ] 
41- ; CHECK-NEXT:    str z3, [x20 ] 
42- ; CHECK-NEXT:    add x20, sp, #144  
43- ; CHECK-NEXT:    str z2 , [x20 ] 
44- ; CHECK-NEXT:    add x20, sp , #112  
45- ; CHECK-NEXT:    str z1, [x20 ] 
46- ; CHECK-NEXT:    add x20, sp, #48  
47- ; CHECK-NEXT:    str z0, [x20 ] 
48- ; CHECK-NEXT:    stp x21, x22, [sp, #352]  
49- ; CHECK-NEXT:    ldp x22, x21 , [sp, #16] // 16-byte Folded Reload  
50- ; CHECK-NEXT:    stp x19, x18 , [sp, #272 ] 
51- ; CHECK-NEXT:    ldp x20, x19,  [sp, #32] // 16-byte Folded Reload  
52- ; CHECK-NEXT:    stp x16, x17,  [sp, #208 ] 
53- ; CHECK-NEXT:    stur q4 , [sp, #88 ] 
54- ; CHECK-NEXT:    str x15 , [sp, #104 ] 
55- ; CHECK-NEXT:    stp x14, x13,  [sp, #288 ] 
56- ; CHECK-NEXT:    stp x12, x11, [sp, #304]  
57- ; CHECK-NEXT:    stp x10, x9 , [sp, #320]  
58- ; CHECK-NEXT:    str x8 , [sp, #336]  
59- ; CHECK-NEXT:    ldr x29, [sp] , #48 // 8-byte Folded Reload  
60- ; CHECK-NEXT:    b func2  
29+ ; CHECK-NEXT:    add x8, x29 , #288  
30+ ; CHECK-NEXT:    add  x9, x29, #168  
31+ ; CHECK-NEXT:    ldr z2 , [x8 ] 
32+ ; CHECK-NEXT:    add x8, x29, #104  
33+ ; CHECK-NEXT:    ldr z6 , [x9 ] 
34+ ; CHECK-NEXT:    ldr z4, [x8 ] 
35+ ; CHECK-NEXT:    add x8, x29 , #136  
36+ ; CHECK-NEXT:    mov x12, #17 // =0x11  
37+ ; CHECK-NEXT:    ldr z5, [x8 ] 
38+ ; CHECK-NEXT:    ldp x10, x11 , [x29 , #336 ] 
39+ ; CHECK-NEXT:    st1d { z6.d }, p0, [sp, x12, lsl #3 ] 
40+ ; CHECK-NEXT:    mov x12, #13 // =0xd  
41+ ; CHECK-NEXT:    ldr x8 , [x29, #200 ] 
42+ ; CHECK-NEXT:    ldr x9, [x29 , #320]  
43+ ; CHECK-NEXT:    st1d { z5.d }, p0, [sp, x12, lsl #3 ] 
44+ ; CHECK-NEXT:    mov x12, #9 // =0x9  
45+ ; CHECK-NEXT:    st1d { z4.d }, p0, [sp, x12, lsl #3 ] 
46+ ; CHECK-NEXT:    mov x12, #5 // =0x5  
47+ ; CHECK-NEXT:    st1d { z3.d }, p0 , [sp, x12, lsl #3]  
48+ ; CHECK-NEXT:    stp x10, x11 , [sp, #304 ] 
49+ ; CHECK-NEXT:    str x9,  [sp, #288]  
50+ ; CHECK-NEXT:    str z2,  [sp, #8, mul vl ] 
51+ ; CHECK-NEXT:    str z1 , [sp, #7, mul vl ] 
52+ ; CHECK-NEXT:    str x8 , [sp, #168 ] 
53+ ; CHECK-NEXT:    str z0,  [sp] 
54+ ; CHECK-NEXT:    bl func2  
55+ ; CHECK-NEXT:    ldp x29, x30 , [sp, #336] // 16-byte Folded Reload  
56+ ; CHECK-NEXT:    ldr x28 , [sp, #352] // 8-byte Folded Reload  
57+ ; CHECK-NEXT:    add sp, sp , #368  
58+ ; CHECK-NEXT:    ret  
6159                             ptr  %v9 , ptr  %v10 , ptr  %v11 , ptr  %v12 , ptr  %v13 , ptr  %v14 ,  ptr  %v15 , ptr  %v16 ,
6260                             ptr  %v17 , ptr  %v18 , ptr  %v19 , ptr  %v20 , ptr  %v21 , ptr  %v22 , ptr  %v23 , ptr  %v24 ,
6361                             ptr  %v25 , ptr  %v26 , ptr  %v27 , ptr  %v28 , ptr  %v29 , ptr  %v30 , ptr  %v31 , ptr  %v32 ,
6462                             ptr  %v33 , ptr  %v34 , ptr  %v35 , ptr  %v36 , ptr  %v37 , ptr  %v38 , ptr  %v39 , ptr  %v40 ,
6563                             ptr  %v41 , ptr  %v42 , ptr  %v43 , ptr  %v44 , ptr  %v45 , ptr  %v46 , ptr  %v47 , ptr  %v48 ,
6664                             i64  %v49 ) #0  {
67-   tail   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 )
65+   call  void  @func2 (ptr  %v1 , ptr  %v2 , ptr  %v3 , ptr  %v4 , ptr  %v5 , ptr  %v6 , ptr  %v7 , ptr  %v8 ,
66+                    ptr  %v9 , ptr  %v10 , ptr  %v11 , ptr  %v12 , ptr  undef , ptr  %v14 , ptr  %v15 , ptr  %v16 ,
67+                    ptr  %v17 , ptr  %v18 , ptr  %v19 , ptr  %v20 , ptr  %v21 , ptr  %v22 , ptr  %v23 , ptr  %v24 ,
68+                    ptr  %v25 , ptr  %v26 , ptr  %v27 , ptr  %v28 , ptr  %v29 , ptr  %v30 , ptr  undef , ptr  undef ,
69+                    ptr  undef , ptr  undef , ptr  undef , ptr  undef , ptr  %v37 , ptr  %v38 , ptr  %v39 , ptr  %v40 ,
70+                    ptr  %v41 , ptr  %v42 , ptr  %v43 , ptr  %v44 , ptr  %v45 , ptr  undef , ptr  %v47 , ptr  %v48 ,
71+                    i64  undef )
7472  ret  void 
7573}
7674
0 commit comments