1eb89bf8dSeopXD; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 2eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zhinx -verify-machineinstrs < %s \ 3eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZHINX32 %s 4eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zhinx -verify-machineinstrs < %s \ 5eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZHINX64 %s 6eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zfinx -verify-machineinstrs < %s \ 7eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZFINX32 %s 8eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zfinx -verify-machineinstrs < %s \ 9eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZFINX64 %s 10eb89bf8dSeopXD; RUN: llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < %s \ 11eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZDINX32 %s 12eb89bf8dSeopXD; RUN: llc -mtriple=riscv64 -mattr=+zdinx -verify-machineinstrs < %s \ 13eb89bf8dSeopXD; RUN: | FileCheck -check-prefix=ZDINX64 %s 14eb89bf8dSeopXD 15eb89bf8dSeopXDdefine half @caller_half(half %x) nounwind { 16eb89bf8dSeopXD; ZHINX32-LABEL: caller_half: 17eb89bf8dSeopXD; ZHINX32: # %bb.0: # %entry 18eb89bf8dSeopXD; ZHINX32-NEXT: tail h 19eb89bf8dSeopXD; 20eb89bf8dSeopXD; ZHINX64-LABEL: caller_half: 21eb89bf8dSeopXD; ZHINX64: # %bb.0: # %entry 22eb89bf8dSeopXD; ZHINX64-NEXT: tail h 23eb89bf8dSeopXD; 24eb89bf8dSeopXD; ZFINX32-LABEL: caller_half: 25eb89bf8dSeopXD; ZFINX32: # %bb.0: # %entry 26bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 27eb89bf8dSeopXD; ZFINX32-NEXT: lui a1, 1048560 28eb89bf8dSeopXD; ZFINX32-NEXT: or a0, a0, a1 29bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 30eb89bf8dSeopXD; ZFINX32-NEXT: tail h 31eb89bf8dSeopXD; 32eb89bf8dSeopXD; ZFINX64-LABEL: caller_half: 33eb89bf8dSeopXD; ZFINX64: # %bb.0: # %entry 34bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 35eb89bf8dSeopXD; ZFINX64-NEXT: lui a1, 1048560 36eb89bf8dSeopXD; ZFINX64-NEXT: or a0, a0, a1 37bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 38eb89bf8dSeopXD; ZFINX64-NEXT: tail h 39eb89bf8dSeopXD; 40eb89bf8dSeopXD; ZDINX32-LABEL: caller_half: 41eb89bf8dSeopXD; ZDINX32: # %bb.0: # %entry 42bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 43eb89bf8dSeopXD; ZDINX32-NEXT: lui a1, 1048560 44eb89bf8dSeopXD; ZDINX32-NEXT: or a0, a0, a1 45bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 46eb89bf8dSeopXD; ZDINX32-NEXT: tail h 47eb89bf8dSeopXD; 48eb89bf8dSeopXD; ZDINX64-LABEL: caller_half: 49eb89bf8dSeopXD; ZDINX64: # %bb.0: # %entry 50bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 51eb89bf8dSeopXD; ZDINX64-NEXT: lui a1, 1048560 52eb89bf8dSeopXD; ZDINX64-NEXT: or a0, a0, a1 53bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 54eb89bf8dSeopXD; ZDINX64-NEXT: tail h 55eb89bf8dSeopXDentry: 56eb89bf8dSeopXD %0 = tail call fastcc half @h(half %x) 57eb89bf8dSeopXD ret half %0 58eb89bf8dSeopXD} 59eb89bf8dSeopXD 60eb89bf8dSeopXDdefine internal fastcc half @h(half %x) nounwind { 61eb89bf8dSeopXD; ZHINX32-LABEL: h: 62eb89bf8dSeopXD; ZHINX32: # %bb.0: 63eb89bf8dSeopXD; ZHINX32-NEXT: ret 64eb89bf8dSeopXD; 65eb89bf8dSeopXD; ZHINX64-LABEL: h: 66eb89bf8dSeopXD; ZHINX64: # %bb.0: 67eb89bf8dSeopXD; ZHINX64-NEXT: ret 68eb89bf8dSeopXD; 69eb89bf8dSeopXD; ZFINX32-LABEL: h: 70eb89bf8dSeopXD; ZFINX32: # %bb.0: 71bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 72eb89bf8dSeopXD; ZFINX32-NEXT: lui a1, 1048560 73eb89bf8dSeopXD; ZFINX32-NEXT: or a0, a0, a1 74bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 75eb89bf8dSeopXD; ZFINX32-NEXT: ret 76eb89bf8dSeopXD; 77eb89bf8dSeopXD; ZFINX64-LABEL: h: 78eb89bf8dSeopXD; ZFINX64: # %bb.0: 79bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 80eb89bf8dSeopXD; ZFINX64-NEXT: lui a1, 1048560 81eb89bf8dSeopXD; ZFINX64-NEXT: or a0, a0, a1 82bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 83eb89bf8dSeopXD; ZFINX64-NEXT: ret 84eb89bf8dSeopXD; 85eb89bf8dSeopXD; ZDINX32-LABEL: h: 86eb89bf8dSeopXD; ZDINX32: # %bb.0: 87bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 88eb89bf8dSeopXD; ZDINX32-NEXT: lui a1, 1048560 89eb89bf8dSeopXD; ZDINX32-NEXT: or a0, a0, a1 90bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 91eb89bf8dSeopXD; ZDINX32-NEXT: ret 92eb89bf8dSeopXD; 93eb89bf8dSeopXD; ZDINX64-LABEL: h: 94eb89bf8dSeopXD; ZDINX64: # %bb.0: 95bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 96eb89bf8dSeopXD; ZDINX64-NEXT: lui a1, 1048560 97eb89bf8dSeopXD; ZDINX64-NEXT: or a0, a0, a1 98bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 99eb89bf8dSeopXD; ZDINX64-NEXT: ret 100eb89bf8dSeopXD ret half %x 101eb89bf8dSeopXD} 102eb89bf8dSeopXD 103eb89bf8dSeopXDdefine float @caller_float(float %x) nounwind { 104eb89bf8dSeopXD; ZHINX32-LABEL: caller_float: 105eb89bf8dSeopXD; ZHINX32: # %bb.0: # %entry 106eb89bf8dSeopXD; ZHINX32-NEXT: tail f 107eb89bf8dSeopXD; 108eb89bf8dSeopXD; ZHINX64-LABEL: caller_float: 109eb89bf8dSeopXD; ZHINX64: # %bb.0: # %entry 110eb89bf8dSeopXD; ZHINX64-NEXT: tail f 111eb89bf8dSeopXD; 112eb89bf8dSeopXD; ZFINX32-LABEL: caller_float: 113eb89bf8dSeopXD; ZFINX32: # %bb.0: # %entry 114eb89bf8dSeopXD; ZFINX32-NEXT: tail f 115eb89bf8dSeopXD; 116eb89bf8dSeopXD; ZFINX64-LABEL: caller_float: 117eb89bf8dSeopXD; ZFINX64: # %bb.0: # %entry 118eb89bf8dSeopXD; ZFINX64-NEXT: tail f 119eb89bf8dSeopXD; 120eb89bf8dSeopXD; ZDINX32-LABEL: caller_float: 121eb89bf8dSeopXD; ZDINX32: # %bb.0: # %entry 122eb89bf8dSeopXD; ZDINX32-NEXT: tail f 123eb89bf8dSeopXD; 124eb89bf8dSeopXD; ZDINX64-LABEL: caller_float: 125eb89bf8dSeopXD; ZDINX64: # %bb.0: # %entry 126eb89bf8dSeopXD; ZDINX64-NEXT: tail f 127eb89bf8dSeopXDentry: 128eb89bf8dSeopXD %0 = tail call fastcc float @f(float %x) 129eb89bf8dSeopXD ret float %0 130eb89bf8dSeopXD} 131eb89bf8dSeopXD 132eb89bf8dSeopXDdefine internal fastcc float @f(float %x) nounwind { 133eb89bf8dSeopXD; ZHINX32-LABEL: f: 134eb89bf8dSeopXD; ZHINX32: # %bb.0: # %entry 135eb89bf8dSeopXD; ZHINX32-NEXT: ret 136eb89bf8dSeopXD; 137eb89bf8dSeopXD; ZHINX64-LABEL: f: 138eb89bf8dSeopXD; ZHINX64: # %bb.0: # %entry 139eb89bf8dSeopXD; ZHINX64-NEXT: ret 140eb89bf8dSeopXD; 141eb89bf8dSeopXD; ZFINX32-LABEL: f: 142eb89bf8dSeopXD; ZFINX32: # %bb.0: # %entry 143eb89bf8dSeopXD; ZFINX32-NEXT: ret 144eb89bf8dSeopXD; 145eb89bf8dSeopXD; ZFINX64-LABEL: f: 146eb89bf8dSeopXD; ZFINX64: # %bb.0: # %entry 147eb89bf8dSeopXD; ZFINX64-NEXT: ret 148eb89bf8dSeopXD; 149eb89bf8dSeopXD; ZDINX32-LABEL: f: 150eb89bf8dSeopXD; ZDINX32: # %bb.0: # %entry 151eb89bf8dSeopXD; ZDINX32-NEXT: ret 152eb89bf8dSeopXD; 153eb89bf8dSeopXD; ZDINX64-LABEL: f: 154eb89bf8dSeopXD; ZDINX64: # %bb.0: # %entry 155eb89bf8dSeopXD; ZDINX64-NEXT: ret 156eb89bf8dSeopXDentry: 157eb89bf8dSeopXD ret float %x 158eb89bf8dSeopXD} 159eb89bf8dSeopXD 160eb89bf8dSeopXDdefine double @caller_double(double %x) nounwind { 161eb89bf8dSeopXD; ZHINX32-LABEL: caller_double: 162eb89bf8dSeopXD; ZHINX32: # %bb.0: # %entry 163eb89bf8dSeopXD; ZHINX32-NEXT: tail d 164eb89bf8dSeopXD; 165eb89bf8dSeopXD; ZHINX64-LABEL: caller_double: 166eb89bf8dSeopXD; ZHINX64: # %bb.0: # %entry 167eb89bf8dSeopXD; ZHINX64-NEXT: tail d 168eb89bf8dSeopXD; 169eb89bf8dSeopXD; ZFINX32-LABEL: caller_double: 170eb89bf8dSeopXD; ZFINX32: # %bb.0: # %entry 171eb89bf8dSeopXD; ZFINX32-NEXT: tail d 172eb89bf8dSeopXD; 173eb89bf8dSeopXD; ZFINX64-LABEL: caller_double: 174eb89bf8dSeopXD; ZFINX64: # %bb.0: # %entry 175eb89bf8dSeopXD; ZFINX64-NEXT: tail d 176eb89bf8dSeopXD; 177eb89bf8dSeopXD; ZDINX32-LABEL: caller_double: 178eb89bf8dSeopXD; ZDINX32: # %bb.0: # %entry 179576d81baSCraig Topper; ZDINX32-NEXT: addi sp, sp, -16 180576d81baSCraig Topper; ZDINX32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill 181eb89bf8dSeopXD; ZDINX32-NEXT: sw a0, 0(sp) 182eb89bf8dSeopXD; ZDINX32-NEXT: sw a1, 4(sp) 183eb89bf8dSeopXD; ZDINX32-NEXT: call d 184576d81baSCraig Topper; ZDINX32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload 185576d81baSCraig Topper; ZDINX32-NEXT: addi sp, sp, 16 186eb89bf8dSeopXD; ZDINX32-NEXT: ret 187eb89bf8dSeopXD; 188eb89bf8dSeopXD; ZDINX64-LABEL: caller_double: 189eb89bf8dSeopXD; ZDINX64: # %bb.0: # %entry 190eb89bf8dSeopXD; ZDINX64-NEXT: tail d 191eb89bf8dSeopXDentry: 192eb89bf8dSeopXD %0 = tail call fastcc double @d(double %x) 193eb89bf8dSeopXD ret double %0 194eb89bf8dSeopXD} 195eb89bf8dSeopXD 196eb89bf8dSeopXDdefine internal fastcc double @d(double %x) nounwind { 197eb89bf8dSeopXD; ZHINX32-LABEL: d: 198eb89bf8dSeopXD; ZHINX32: # %bb.0: # %entry 199eb89bf8dSeopXD; ZHINX32-NEXT: ret 200eb89bf8dSeopXD; 201eb89bf8dSeopXD; ZHINX64-LABEL: d: 202eb89bf8dSeopXD; ZHINX64: # %bb.0: # %entry 203eb89bf8dSeopXD; ZHINX64-NEXT: ret 204eb89bf8dSeopXD; 205eb89bf8dSeopXD; ZFINX32-LABEL: d: 206eb89bf8dSeopXD; ZFINX32: # %bb.0: # %entry 207eb89bf8dSeopXD; ZFINX32-NEXT: ret 208eb89bf8dSeopXD; 209eb89bf8dSeopXD; ZFINX64-LABEL: d: 210eb89bf8dSeopXD; ZFINX64: # %bb.0: # %entry 211eb89bf8dSeopXD; ZFINX64-NEXT: ret 212eb89bf8dSeopXD; 213eb89bf8dSeopXD; ZDINX32-LABEL: d: 214eb89bf8dSeopXD; ZDINX32: # %bb.0: # %entry 215576d81baSCraig Topper; ZDINX32-NEXT: lw a0, 0(sp) 216576d81baSCraig Topper; ZDINX32-NEXT: lw a1, 4(sp) 217eb89bf8dSeopXD; ZDINX32-NEXT: ret 218eb89bf8dSeopXD; 219eb89bf8dSeopXD; ZDINX64-LABEL: d: 220eb89bf8dSeopXD; ZDINX64: # %bb.0: # %entry 221eb89bf8dSeopXD; ZDINX64-NEXT: ret 222eb89bf8dSeopXDentry: 223eb89bf8dSeopXD ret double %x 224eb89bf8dSeopXD} 22532c257d3SeopXD 22632c257d3SeopXDdefine fastcc half @callee_half_32(<32 x half> %A) nounwind { 22732c257d3SeopXD; ZHINX32-LABEL: callee_half_32: 22832c257d3SeopXD; ZHINX32: # %bb.0: 22932c257d3SeopXD; ZHINX32-NEXT: ret 23032c257d3SeopXD; 23132c257d3SeopXD; ZHINX64-LABEL: callee_half_32: 23232c257d3SeopXD; ZHINX64: # %bb.0: 23332c257d3SeopXD; ZHINX64-NEXT: ret 23432c257d3SeopXD; 23532c257d3SeopXD; ZFINX32-LABEL: callee_half_32: 23632c257d3SeopXD; ZFINX32: # %bb.0: 23732c257d3SeopXD; ZFINX32-NEXT: lui a1, 1048560 23832c257d3SeopXD; ZFINX32-NEXT: or a0, a0, a1 239bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 24032c257d3SeopXD; ZFINX32-NEXT: ret 24132c257d3SeopXD; 24232c257d3SeopXD; ZFINX64-LABEL: callee_half_32: 24332c257d3SeopXD; ZFINX64: # %bb.0: 24432c257d3SeopXD; ZFINX64-NEXT: lui a1, 1048560 24532c257d3SeopXD; ZFINX64-NEXT: or a0, a0, a1 246bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 24732c257d3SeopXD; ZFINX64-NEXT: ret 24832c257d3SeopXD; 24932c257d3SeopXD; ZDINX32-LABEL: callee_half_32: 25032c257d3SeopXD; ZDINX32: # %bb.0: 25132c257d3SeopXD; ZDINX32-NEXT: lui a1, 1048560 25232c257d3SeopXD; ZDINX32-NEXT: or a0, a0, a1 253bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 25432c257d3SeopXD; ZDINX32-NEXT: ret 25532c257d3SeopXD; 25632c257d3SeopXD; ZDINX64-LABEL: callee_half_32: 25732c257d3SeopXD; ZDINX64: # %bb.0: 25832c257d3SeopXD; ZDINX64-NEXT: lui a1, 1048560 25932c257d3SeopXD; ZDINX64-NEXT: or a0, a0, a1 260bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 26132c257d3SeopXD; ZDINX64-NEXT: ret 26232c257d3SeopXD %B = extractelement <32 x half> %A, i32 0 26332c257d3SeopXD ret half %B 26432c257d3SeopXD} 26532c257d3SeopXD 26632c257d3SeopXDdefine half @caller_half_32(<32 x half> %A) nounwind { 26732c257d3SeopXD; ZHINX32-LABEL: caller_half_32: 26832c257d3SeopXD; ZHINX32: # %bb.0: 2698a7843caSCraig Topper; ZHINX32-NEXT: addi sp, sp, -112 2708a7843caSCraig Topper; ZHINX32-NEXT: sw ra, 108(sp) # 4-byte Folded Spill 2718a7843caSCraig Topper; ZHINX32-NEXT: sw s0, 104(sp) # 4-byte Folded Spill 2728a7843caSCraig Topper; ZHINX32-NEXT: sw s1, 100(sp) # 4-byte Folded Spill 2738a7843caSCraig Topper; ZHINX32-NEXT: sw s2, 96(sp) # 4-byte Folded Spill 2748a7843caSCraig Topper; ZHINX32-NEXT: sw s3, 92(sp) # 4-byte Folded Spill 2758a7843caSCraig Topper; ZHINX32-NEXT: sw s4, 88(sp) # 4-byte Folded Spill 2768a7843caSCraig Topper; ZHINX32-NEXT: sw s5, 84(sp) # 4-byte Folded Spill 2778a7843caSCraig Topper; ZHINX32-NEXT: sw s6, 80(sp) # 4-byte Folded Spill 2788a7843caSCraig Topper; ZHINX32-NEXT: sw s7, 76(sp) # 4-byte Folded Spill 2798a7843caSCraig Topper; ZHINX32-NEXT: sw s8, 72(sp) # 4-byte Folded Spill 2808a7843caSCraig Topper; ZHINX32-NEXT: sw s9, 68(sp) # 4-byte Folded Spill 2818a7843caSCraig Topper; ZHINX32-NEXT: sw s10, 64(sp) # 4-byte Folded Spill 2828a7843caSCraig Topper; ZHINX32-NEXT: sw s11, 60(sp) # 4-byte Folded Spill 283*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a7, 58(sp) # 2-byte Folded Spill 284*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a6, 56(sp) # 2-byte Folded Spill 285*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a5, 54(sp) # 2-byte Folded Spill 286*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a4, 52(sp) # 2-byte Folded Spill 287*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a7, a3 288*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a6, a2 289*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a5, a1 290*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t3, 112(sp) 291*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t4, 116(sp) 292*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t5, 120(sp) 293*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t6, 124(sp) 294*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t0, 128(sp) 295*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t1, 132(sp) 296*9122c523SPengcheng Wang; ZHINX32-NEXT: lh t2, 136(sp) 2978a7843caSCraig Topper; ZHINX32-NEXT: lh s0, 140(sp) 298b26157edSCraig Topper; ZHINX32-NEXT: lh s1, 144(sp) 299b26157edSCraig Topper; ZHINX32-NEXT: lh s2, 148(sp) 300b26157edSCraig Topper; ZHINX32-NEXT: lh s3, 152(sp) 301b26157edSCraig Topper; ZHINX32-NEXT: lh s4, 156(sp) 302b26157edSCraig Topper; ZHINX32-NEXT: lh s5, 160(sp) 303b26157edSCraig Topper; ZHINX32-NEXT: lh s6, 164(sp) 304b26157edSCraig Topper; ZHINX32-NEXT: lh s7, 168(sp) 305b26157edSCraig Topper; ZHINX32-NEXT: lh s8, 172(sp) 306b26157edSCraig Topper; ZHINX32-NEXT: lh s9, 176(sp) 307b26157edSCraig Topper; ZHINX32-NEXT: lh s10, 180(sp) 308b26157edSCraig Topper; ZHINX32-NEXT: lh s11, 184(sp) 309b26157edSCraig Topper; ZHINX32-NEXT: lh ra, 188(sp) 310*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a1, 192(sp) 311*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a2, 196(sp) 312*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a3, 200(sp) 313*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a4, 204(sp) 314*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a1, 32(sp) 315*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a2, 34(sp) 316*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a3, 36(sp) 317*9122c523SPengcheng Wang; ZHINX32-NEXT: sh a4, 38(sp) 3188a7843caSCraig Topper; ZHINX32-NEXT: sh s9, 24(sp) 3192967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s10, 26(sp) 3202967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s11, 28(sp) 3212967e5f8SAlex Bradbury; ZHINX32-NEXT: sh ra, 30(sp) 3228a7843caSCraig Topper; ZHINX32-NEXT: sh s5, 16(sp) 3232967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s6, 18(sp) 3242967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s7, 20(sp) 3252967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s8, 22(sp) 3268a7843caSCraig Topper; ZHINX32-NEXT: sh s1, 8(sp) 3272967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s2, 10(sp) 3282967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s3, 12(sp) 3292967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s4, 14(sp) 330*9122c523SPengcheng Wang; ZHINX32-NEXT: sh t0, 0(sp) 331*9122c523SPengcheng Wang; ZHINX32-NEXT: sh t1, 2(sp) 332*9122c523SPengcheng Wang; ZHINX32-NEXT: sh t2, 4(sp) 3332967e5f8SAlex Bradbury; ZHINX32-NEXT: sh s0, 6(sp) 334*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a1, a5 335*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a2, a6 336*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a3, a7 337*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a4, 52(sp) # 2-byte Folded Reload 338*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a5, 54(sp) # 2-byte Folded Reload 339*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a6, 56(sp) # 2-byte Folded Reload 340*9122c523SPengcheng Wang; ZHINX32-NEXT: lh a7, 58(sp) # 2-byte Folded Reload 341eabaee0cSFangrui Song; ZHINX32-NEXT: call callee_half_32 3428a7843caSCraig Topper; ZHINX32-NEXT: lw ra, 108(sp) # 4-byte Folded Reload 3438a7843caSCraig Topper; ZHINX32-NEXT: lw s0, 104(sp) # 4-byte Folded Reload 3448a7843caSCraig Topper; ZHINX32-NEXT: lw s1, 100(sp) # 4-byte Folded Reload 3458a7843caSCraig Topper; ZHINX32-NEXT: lw s2, 96(sp) # 4-byte Folded Reload 3468a7843caSCraig Topper; ZHINX32-NEXT: lw s3, 92(sp) # 4-byte Folded Reload 3478a7843caSCraig Topper; ZHINX32-NEXT: lw s4, 88(sp) # 4-byte Folded Reload 3488a7843caSCraig Topper; ZHINX32-NEXT: lw s5, 84(sp) # 4-byte Folded Reload 3498a7843caSCraig Topper; ZHINX32-NEXT: lw s6, 80(sp) # 4-byte Folded Reload 3508a7843caSCraig Topper; ZHINX32-NEXT: lw s7, 76(sp) # 4-byte Folded Reload 3518a7843caSCraig Topper; ZHINX32-NEXT: lw s8, 72(sp) # 4-byte Folded Reload 3528a7843caSCraig Topper; ZHINX32-NEXT: lw s9, 68(sp) # 4-byte Folded Reload 3538a7843caSCraig Topper; ZHINX32-NEXT: lw s10, 64(sp) # 4-byte Folded Reload 3548a7843caSCraig Topper; ZHINX32-NEXT: lw s11, 60(sp) # 4-byte Folded Reload 3558a7843caSCraig Topper; ZHINX32-NEXT: addi sp, sp, 112 35632c257d3SeopXD; ZHINX32-NEXT: ret 35732c257d3SeopXD; 35832c257d3SeopXD; ZHINX64-LABEL: caller_half_32: 35932c257d3SeopXD; ZHINX64: # %bb.0: 3608a7843caSCraig Topper; ZHINX64-NEXT: addi sp, sp, -160 3618a7843caSCraig Topper; ZHINX64-NEXT: sd ra, 152(sp) # 8-byte Folded Spill 3628a7843caSCraig Topper; ZHINX64-NEXT: sd s0, 144(sp) # 8-byte Folded Spill 3638a7843caSCraig Topper; ZHINX64-NEXT: sd s1, 136(sp) # 8-byte Folded Spill 3648a7843caSCraig Topper; ZHINX64-NEXT: sd s2, 128(sp) # 8-byte Folded Spill 3658a7843caSCraig Topper; ZHINX64-NEXT: sd s3, 120(sp) # 8-byte Folded Spill 3668a7843caSCraig Topper; ZHINX64-NEXT: sd s4, 112(sp) # 8-byte Folded Spill 3678a7843caSCraig Topper; ZHINX64-NEXT: sd s5, 104(sp) # 8-byte Folded Spill 3688a7843caSCraig Topper; ZHINX64-NEXT: sd s6, 96(sp) # 8-byte Folded Spill 3698a7843caSCraig Topper; ZHINX64-NEXT: sd s7, 88(sp) # 8-byte Folded Spill 3708a7843caSCraig Topper; ZHINX64-NEXT: sd s8, 80(sp) # 8-byte Folded Spill 3718a7843caSCraig Topper; ZHINX64-NEXT: sd s9, 72(sp) # 8-byte Folded Spill 3728a7843caSCraig Topper; ZHINX64-NEXT: sd s10, 64(sp) # 8-byte Folded Spill 3738a7843caSCraig Topper; ZHINX64-NEXT: sd s11, 56(sp) # 8-byte Folded Spill 374*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a7, 54(sp) # 2-byte Folded Spill 375*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a6, 52(sp) # 2-byte Folded Spill 376*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a5, 50(sp) # 2-byte Folded Spill 377*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a4, 48(sp) # 2-byte Folded Spill 378*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a7, a3 379*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a6, a2 380*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a5, a1 381*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t3, 160(sp) 382*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t4, 168(sp) 383*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t5, 176(sp) 384*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t6, 184(sp) 385*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t0, 192(sp) 386*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t1, 200(sp) 387*9122c523SPengcheng Wang; ZHINX64-NEXT: lh t2, 208(sp) 3888a7843caSCraig Topper; ZHINX64-NEXT: lh s0, 216(sp) 3898a7843caSCraig Topper; ZHINX64-NEXT: lh s1, 224(sp) 3908a7843caSCraig Topper; ZHINX64-NEXT: lh s2, 232(sp) 3918a7843caSCraig Topper; ZHINX64-NEXT: lh s3, 240(sp) 3928a7843caSCraig Topper; ZHINX64-NEXT: lh s4, 248(sp) 3938a7843caSCraig Topper; ZHINX64-NEXT: lh s5, 256(sp) 3948a7843caSCraig Topper; ZHINX64-NEXT: lh s6, 264(sp) 3958a7843caSCraig Topper; ZHINX64-NEXT: lh s7, 272(sp) 3968a7843caSCraig Topper; ZHINX64-NEXT: lh s8, 280(sp) 3978a7843caSCraig Topper; ZHINX64-NEXT: lh s9, 288(sp) 3988a7843caSCraig Topper; ZHINX64-NEXT: lh s10, 296(sp) 3998a7843caSCraig Topper; ZHINX64-NEXT: lh s11, 304(sp) 4008a7843caSCraig Topper; ZHINX64-NEXT: lh ra, 312(sp) 401*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a1, 320(sp) 402*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a2, 328(sp) 403*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a3, 336(sp) 404*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a4, 344(sp) 405*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a1, 32(sp) 406*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a2, 34(sp) 407*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a3, 36(sp) 408*9122c523SPengcheng Wang; ZHINX64-NEXT: sh a4, 38(sp) 4098a7843caSCraig Topper; ZHINX64-NEXT: sh s9, 24(sp) 4102967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s10, 26(sp) 4112967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s11, 28(sp) 4122967e5f8SAlex Bradbury; ZHINX64-NEXT: sh ra, 30(sp) 4138a7843caSCraig Topper; ZHINX64-NEXT: sh s5, 16(sp) 4142967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s6, 18(sp) 4152967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s7, 20(sp) 4162967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s8, 22(sp) 4178a7843caSCraig Topper; ZHINX64-NEXT: sh s1, 8(sp) 4182967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s2, 10(sp) 4192967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s3, 12(sp) 4202967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s4, 14(sp) 421*9122c523SPengcheng Wang; ZHINX64-NEXT: sh t0, 0(sp) 422*9122c523SPengcheng Wang; ZHINX64-NEXT: sh t1, 2(sp) 423*9122c523SPengcheng Wang; ZHINX64-NEXT: sh t2, 4(sp) 4242967e5f8SAlex Bradbury; ZHINX64-NEXT: sh s0, 6(sp) 425*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a1, a5 426*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a2, a6 427*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a3, a7 428*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a4, 48(sp) # 2-byte Folded Reload 429*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a5, 50(sp) # 2-byte Folded Reload 430*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a6, 52(sp) # 2-byte Folded Reload 431*9122c523SPengcheng Wang; ZHINX64-NEXT: lh a7, 54(sp) # 2-byte Folded Reload 432eabaee0cSFangrui Song; ZHINX64-NEXT: call callee_half_32 4338a7843caSCraig Topper; ZHINX64-NEXT: ld ra, 152(sp) # 8-byte Folded Reload 4348a7843caSCraig Topper; ZHINX64-NEXT: ld s0, 144(sp) # 8-byte Folded Reload 4358a7843caSCraig Topper; ZHINX64-NEXT: ld s1, 136(sp) # 8-byte Folded Reload 4368a7843caSCraig Topper; ZHINX64-NEXT: ld s2, 128(sp) # 8-byte Folded Reload 4378a7843caSCraig Topper; ZHINX64-NEXT: ld s3, 120(sp) # 8-byte Folded Reload 4388a7843caSCraig Topper; ZHINX64-NEXT: ld s4, 112(sp) # 8-byte Folded Reload 4398a7843caSCraig Topper; ZHINX64-NEXT: ld s5, 104(sp) # 8-byte Folded Reload 4408a7843caSCraig Topper; ZHINX64-NEXT: ld s6, 96(sp) # 8-byte Folded Reload 4418a7843caSCraig Topper; ZHINX64-NEXT: ld s7, 88(sp) # 8-byte Folded Reload 4428a7843caSCraig Topper; ZHINX64-NEXT: ld s8, 80(sp) # 8-byte Folded Reload 4438a7843caSCraig Topper; ZHINX64-NEXT: ld s9, 72(sp) # 8-byte Folded Reload 4448a7843caSCraig Topper; ZHINX64-NEXT: ld s10, 64(sp) # 8-byte Folded Reload 4458a7843caSCraig Topper; ZHINX64-NEXT: ld s11, 56(sp) # 8-byte Folded Reload 4468a7843caSCraig Topper; ZHINX64-NEXT: addi sp, sp, 160 44732c257d3SeopXD; ZHINX64-NEXT: ret 44832c257d3SeopXD; 44932c257d3SeopXD; ZFINX32-LABEL: caller_half_32: 45032c257d3SeopXD; ZFINX32: # %bb.0: 451b6c4ad70SYeting Kuo; ZFINX32-NEXT: addi sp, sp, -160 452b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill 453b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill 454b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill 455b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill 456b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill 457b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill 458b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill 459b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill 460b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill 461b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill 462b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill 463b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill 464b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill 4652967e5f8SAlex Bradbury; ZFINX32-NEXT: mv t0, a0 4662967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 0(a0) 4672967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a0, 104(sp) # 4-byte Folded Spill 4682967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 4(t0) 4692967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a0, 100(sp) # 4-byte Folded Spill 4702967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 8(t0) 4712967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a0, 96(sp) # 4-byte Folded Spill 4722967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 12(t0) 4732967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a0, 92(sp) # 4-byte Folded Spill 4742967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a4, 16(t0) 4752967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a5, 20(t0) 4762967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a6, 24(t0) 4772967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a7, 28(t0) 4782967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t3, 32(t0) 4792967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t4, 36(t0) 4802967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t5, 40(t0) 4812967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t6, 44(t0) 4822967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t1, 48(t0) 4832967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t2, 52(t0) 4842967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s0, 56(t0) 4852967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s1, 60(t0) 4862967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s2, 64(t0) 4872967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s3, 68(t0) 4882967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s4, 72(t0) 4892967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s5, 76(t0) 4902967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s6, 80(t0) 4912967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s7, 84(t0) 4922967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s8, 88(t0) 4932967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s9, 92(t0) 4942967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s10, 96(t0) 4952967e5f8SAlex Bradbury; ZFINX32-NEXT: lw s11, 100(t0) 4962967e5f8SAlex Bradbury; ZFINX32-NEXT: lw ra, 104(t0) 4972967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a3, 108(t0) 4982967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 112(t0) 4992967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a1, 116(t0) 5002967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a2, 120(t0) 5012967e5f8SAlex Bradbury; ZFINX32-NEXT: lw t0, 124(t0) 5022967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a0, 64(sp) 5032967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a1, 68(sp) 5042967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a2, 72(sp) 5052967e5f8SAlex Bradbury; ZFINX32-NEXT: sw t0, 76(sp) 506b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s10, 48(sp) 5072967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s11, 52(sp) 5082967e5f8SAlex Bradbury; ZFINX32-NEXT: sw ra, 56(sp) 5092967e5f8SAlex Bradbury; ZFINX32-NEXT: sw a3, 60(sp) 510b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s6, 32(sp) 5112967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s7, 36(sp) 5122967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s8, 40(sp) 5132967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s9, 44(sp) 514b6c4ad70SYeting Kuo; ZFINX32-NEXT: sw s2, 16(sp) 5152967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s3, 20(sp) 5162967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s4, 24(sp) 5172967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s5, 28(sp) 51832c257d3SeopXD; ZFINX32-NEXT: sw t1, 0(sp) 5192967e5f8SAlex Bradbury; ZFINX32-NEXT: sw t2, 4(sp) 5202967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s0, 8(sp) 5212967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s1, 12(sp) 5222967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a0, 104(sp) # 4-byte Folded Reload 5232967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a1, 100(sp) # 4-byte Folded Reload 5242967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a2, 96(sp) # 4-byte Folded Reload 5252967e5f8SAlex Bradbury; ZFINX32-NEXT: lw a3, 92(sp) # 4-byte Folded Reload 526eabaee0cSFangrui Song; ZFINX32-NEXT: call callee_half_32 527bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 52832c257d3SeopXD; ZFINX32-NEXT: lui a1, 1048560 52932c257d3SeopXD; ZFINX32-NEXT: or a0, a0, a1 530bc91f3cdSCraig Topper; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 531b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload 532b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload 533b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload 534b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload 535b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload 536b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload 537b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload 538b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload 539b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload 540b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload 541b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload 542b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload 543b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload 544b6c4ad70SYeting Kuo; ZFINX32-NEXT: addi sp, sp, 160 54532c257d3SeopXD; ZFINX32-NEXT: ret 54632c257d3SeopXD; 54732c257d3SeopXD; ZFINX64-LABEL: caller_half_32: 54832c257d3SeopXD; ZFINX64: # %bb.0: 549b6c4ad70SYeting Kuo; ZFINX64-NEXT: addi sp, sp, -304 550b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd ra, 296(sp) # 8-byte Folded Spill 551b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s0, 288(sp) # 8-byte Folded Spill 552b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s1, 280(sp) # 8-byte Folded Spill 553b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s2, 272(sp) # 8-byte Folded Spill 554b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s3, 264(sp) # 8-byte Folded Spill 555b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s4, 256(sp) # 8-byte Folded Spill 556b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s5, 248(sp) # 8-byte Folded Spill 557b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s6, 240(sp) # 8-byte Folded Spill 558b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s7, 232(sp) # 8-byte Folded Spill 559b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s8, 224(sp) # 8-byte Folded Spill 560b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s9, 216(sp) # 8-byte Folded Spill 561b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s10, 208(sp) # 8-byte Folded Spill 562b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s11, 200(sp) # 8-byte Folded Spill 5632967e5f8SAlex Bradbury; ZFINX64-NEXT: mv t0, a0 5642967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 0(a0) 5652967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a0, 192(sp) # 8-byte Folded Spill 5662967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 8(t0) 5672967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a0, 184(sp) # 8-byte Folded Spill 5682967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 16(t0) 5692967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a0, 176(sp) # 8-byte Folded Spill 5702967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 24(t0) 5712967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a0, 168(sp) # 8-byte Folded Spill 5722967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a4, 32(t0) 5732967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a5, 40(t0) 5742967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a6, 48(t0) 5752967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a7, 56(t0) 5762967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t3, 64(t0) 5772967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t4, 72(t0) 5782967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t5, 80(t0) 5792967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t6, 88(t0) 5802967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t1, 96(t0) 5812967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t2, 104(t0) 5822967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s0, 112(t0) 5832967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s1, 120(t0) 5842967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s2, 128(t0) 5852967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s3, 136(t0) 5862967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s4, 144(t0) 5872967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s5, 152(t0) 5882967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s6, 160(t0) 5892967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s7, 168(t0) 5902967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s8, 176(t0) 5912967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s9, 184(t0) 5922967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s10, 192(t0) 5932967e5f8SAlex Bradbury; ZFINX64-NEXT: ld s11, 200(t0) 5942967e5f8SAlex Bradbury; ZFINX64-NEXT: ld ra, 208(t0) 5952967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a3, 216(t0) 5962967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 224(t0) 5972967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a1, 232(t0) 5982967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a2, 240(t0) 5992967e5f8SAlex Bradbury; ZFINX64-NEXT: ld t0, 248(t0) 6002967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a0, 128(sp) 6012967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a1, 136(sp) 6022967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a2, 144(sp) 6032967e5f8SAlex Bradbury; ZFINX64-NEXT: sd t0, 152(sp) 604b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s10, 96(sp) 6052967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s11, 104(sp) 6062967e5f8SAlex Bradbury; ZFINX64-NEXT: sd ra, 112(sp) 6072967e5f8SAlex Bradbury; ZFINX64-NEXT: sd a3, 120(sp) 608b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s6, 64(sp) 6092967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s7, 72(sp) 6102967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s8, 80(sp) 6112967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s9, 88(sp) 612b6c4ad70SYeting Kuo; ZFINX64-NEXT: sd s2, 32(sp) 6132967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s3, 40(sp) 6142967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s4, 48(sp) 6152967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s5, 56(sp) 61632c257d3SeopXD; ZFINX64-NEXT: sd t1, 0(sp) 6172967e5f8SAlex Bradbury; ZFINX64-NEXT: sd t2, 8(sp) 6182967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s0, 16(sp) 6192967e5f8SAlex Bradbury; ZFINX64-NEXT: sd s1, 24(sp) 6202967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a0, 192(sp) # 8-byte Folded Reload 6212967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a1, 184(sp) # 8-byte Folded Reload 6222967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a2, 176(sp) # 8-byte Folded Reload 6232967e5f8SAlex Bradbury; ZFINX64-NEXT: ld a3, 168(sp) # 8-byte Folded Reload 624eabaee0cSFangrui Song; ZFINX64-NEXT: call callee_half_32 625bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 62632c257d3SeopXD; ZFINX64-NEXT: lui a1, 1048560 62732c257d3SeopXD; ZFINX64-NEXT: or a0, a0, a1 628bc91f3cdSCraig Topper; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 629b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld ra, 296(sp) # 8-byte Folded Reload 630b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s0, 288(sp) # 8-byte Folded Reload 631b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s1, 280(sp) # 8-byte Folded Reload 632b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s2, 272(sp) # 8-byte Folded Reload 633b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s3, 264(sp) # 8-byte Folded Reload 634b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s4, 256(sp) # 8-byte Folded Reload 635b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s5, 248(sp) # 8-byte Folded Reload 636b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s6, 240(sp) # 8-byte Folded Reload 637b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s7, 232(sp) # 8-byte Folded Reload 638b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s8, 224(sp) # 8-byte Folded Reload 639b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s9, 216(sp) # 8-byte Folded Reload 640b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s10, 208(sp) # 8-byte Folded Reload 641b6c4ad70SYeting Kuo; ZFINX64-NEXT: ld s11, 200(sp) # 8-byte Folded Reload 642b6c4ad70SYeting Kuo; ZFINX64-NEXT: addi sp, sp, 304 64332c257d3SeopXD; ZFINX64-NEXT: ret 64432c257d3SeopXD; 64532c257d3SeopXD; ZDINX32-LABEL: caller_half_32: 64632c257d3SeopXD; ZDINX32: # %bb.0: 647b6c4ad70SYeting Kuo; ZDINX32-NEXT: addi sp, sp, -160 648b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill 649b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill 650b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill 651b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill 652b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill 653b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill 654b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill 655b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill 656b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill 657b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill 658b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill 659b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill 660b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill 6612967e5f8SAlex Bradbury; ZDINX32-NEXT: mv t0, a0 6622967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 0(a0) 6632967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a0, 104(sp) # 4-byte Folded Spill 6642967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 4(t0) 6652967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a0, 100(sp) # 4-byte Folded Spill 6662967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 8(t0) 6672967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a0, 96(sp) # 4-byte Folded Spill 6682967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 12(t0) 6692967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a0, 92(sp) # 4-byte Folded Spill 6702967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a4, 16(t0) 6712967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a5, 20(t0) 6722967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a6, 24(t0) 6732967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a7, 28(t0) 6742967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t3, 32(t0) 6752967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t4, 36(t0) 6762967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t5, 40(t0) 6772967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t6, 44(t0) 6782967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t1, 48(t0) 6792967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t2, 52(t0) 6802967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s0, 56(t0) 6812967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s1, 60(t0) 6822967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s2, 64(t0) 6832967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s3, 68(t0) 6842967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s4, 72(t0) 6852967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s5, 76(t0) 6862967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s6, 80(t0) 6872967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s7, 84(t0) 6882967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s8, 88(t0) 6892967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s9, 92(t0) 6902967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s10, 96(t0) 6912967e5f8SAlex Bradbury; ZDINX32-NEXT: lw s11, 100(t0) 6922967e5f8SAlex Bradbury; ZDINX32-NEXT: lw ra, 104(t0) 6932967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a3, 108(t0) 6942967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 112(t0) 6952967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a1, 116(t0) 6962967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a2, 120(t0) 6972967e5f8SAlex Bradbury; ZDINX32-NEXT: lw t0, 124(t0) 6982967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a0, 64(sp) 6992967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a1, 68(sp) 7002967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a2, 72(sp) 7012967e5f8SAlex Bradbury; ZDINX32-NEXT: sw t0, 76(sp) 702b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s10, 48(sp) 7032967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s11, 52(sp) 7042967e5f8SAlex Bradbury; ZDINX32-NEXT: sw ra, 56(sp) 7052967e5f8SAlex Bradbury; ZDINX32-NEXT: sw a3, 60(sp) 706b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s6, 32(sp) 7072967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s7, 36(sp) 7082967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s8, 40(sp) 7092967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s9, 44(sp) 710b6c4ad70SYeting Kuo; ZDINX32-NEXT: sw s2, 16(sp) 7112967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s3, 20(sp) 7122967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s4, 24(sp) 7132967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s5, 28(sp) 71432c257d3SeopXD; ZDINX32-NEXT: sw t1, 0(sp) 7152967e5f8SAlex Bradbury; ZDINX32-NEXT: sw t2, 4(sp) 7162967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s0, 8(sp) 7172967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s1, 12(sp) 7182967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a0, 104(sp) # 4-byte Folded Reload 7192967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a1, 100(sp) # 4-byte Folded Reload 7202967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a2, 96(sp) # 4-byte Folded Reload 7212967e5f8SAlex Bradbury; ZDINX32-NEXT: lw a3, 92(sp) # 4-byte Folded Reload 722eabaee0cSFangrui Song; ZDINX32-NEXT: call callee_half_32 723bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10 72432c257d3SeopXD; ZDINX32-NEXT: lui a1, 1048560 72532c257d3SeopXD; ZDINX32-NEXT: or a0, a0, a1 726bc91f3cdSCraig Topper; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10 727b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload 728b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload 729b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload 730b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload 731b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload 732b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload 733b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload 734b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload 735b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload 736b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload 737b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload 738b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload 739b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload 740b6c4ad70SYeting Kuo; ZDINX32-NEXT: addi sp, sp, 160 74132c257d3SeopXD; ZDINX32-NEXT: ret 74232c257d3SeopXD; 74332c257d3SeopXD; ZDINX64-LABEL: caller_half_32: 74432c257d3SeopXD; ZDINX64: # %bb.0: 745b6c4ad70SYeting Kuo; ZDINX64-NEXT: addi sp, sp, -304 746b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd ra, 296(sp) # 8-byte Folded Spill 747b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s0, 288(sp) # 8-byte Folded Spill 748b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s1, 280(sp) # 8-byte Folded Spill 749b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s2, 272(sp) # 8-byte Folded Spill 750b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s3, 264(sp) # 8-byte Folded Spill 751b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s4, 256(sp) # 8-byte Folded Spill 752b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s5, 248(sp) # 8-byte Folded Spill 753b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s6, 240(sp) # 8-byte Folded Spill 754b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s7, 232(sp) # 8-byte Folded Spill 755b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s8, 224(sp) # 8-byte Folded Spill 756b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s9, 216(sp) # 8-byte Folded Spill 757b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s10, 208(sp) # 8-byte Folded Spill 758b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s11, 200(sp) # 8-byte Folded Spill 7592967e5f8SAlex Bradbury; ZDINX64-NEXT: mv t0, a0 7602967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 0(a0) 7612967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a0, 192(sp) # 8-byte Folded Spill 7622967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 8(t0) 7632967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a0, 184(sp) # 8-byte Folded Spill 7642967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 16(t0) 7652967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a0, 176(sp) # 8-byte Folded Spill 7662967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 24(t0) 7672967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a0, 168(sp) # 8-byte Folded Spill 7682967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a4, 32(t0) 7692967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a5, 40(t0) 7702967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a6, 48(t0) 7712967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a7, 56(t0) 7722967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t3, 64(t0) 7732967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t4, 72(t0) 7742967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t5, 80(t0) 7752967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t6, 88(t0) 7762967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t1, 96(t0) 7772967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t2, 104(t0) 7782967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s0, 112(t0) 7792967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s1, 120(t0) 7802967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s2, 128(t0) 7812967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s3, 136(t0) 7822967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s4, 144(t0) 7832967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s5, 152(t0) 7842967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s6, 160(t0) 7852967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s7, 168(t0) 7862967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s8, 176(t0) 7872967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s9, 184(t0) 7882967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s10, 192(t0) 7892967e5f8SAlex Bradbury; ZDINX64-NEXT: ld s11, 200(t0) 7902967e5f8SAlex Bradbury; ZDINX64-NEXT: ld ra, 208(t0) 7912967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a3, 216(t0) 7922967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 224(t0) 7932967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a1, 232(t0) 7942967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a2, 240(t0) 7952967e5f8SAlex Bradbury; ZDINX64-NEXT: ld t0, 248(t0) 7962967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a0, 128(sp) 7972967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a1, 136(sp) 7982967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a2, 144(sp) 7992967e5f8SAlex Bradbury; ZDINX64-NEXT: sd t0, 152(sp) 800b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s10, 96(sp) 8012967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s11, 104(sp) 8022967e5f8SAlex Bradbury; ZDINX64-NEXT: sd ra, 112(sp) 8032967e5f8SAlex Bradbury; ZDINX64-NEXT: sd a3, 120(sp) 804b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s6, 64(sp) 8052967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s7, 72(sp) 8062967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s8, 80(sp) 8072967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s9, 88(sp) 808b6c4ad70SYeting Kuo; ZDINX64-NEXT: sd s2, 32(sp) 8092967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s3, 40(sp) 8102967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s4, 48(sp) 8112967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s5, 56(sp) 81232c257d3SeopXD; ZDINX64-NEXT: sd t1, 0(sp) 8132967e5f8SAlex Bradbury; ZDINX64-NEXT: sd t2, 8(sp) 8142967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s0, 16(sp) 8152967e5f8SAlex Bradbury; ZDINX64-NEXT: sd s1, 24(sp) 8162967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a0, 192(sp) # 8-byte Folded Reload 8172967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a1, 184(sp) # 8-byte Folded Reload 8182967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a2, 176(sp) # 8-byte Folded Reload 8192967e5f8SAlex Bradbury; ZDINX64-NEXT: ld a3, 168(sp) # 8-byte Folded Reload 820eabaee0cSFangrui Song; ZDINX64-NEXT: call callee_half_32 821bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10 82232c257d3SeopXD; ZDINX64-NEXT: lui a1, 1048560 82332c257d3SeopXD; ZDINX64-NEXT: or a0, a0, a1 824bc91f3cdSCraig Topper; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10 825b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld ra, 296(sp) # 8-byte Folded Reload 826b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s0, 288(sp) # 8-byte Folded Reload 827b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s1, 280(sp) # 8-byte Folded Reload 828b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s2, 272(sp) # 8-byte Folded Reload 829b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s3, 264(sp) # 8-byte Folded Reload 830b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s4, 256(sp) # 8-byte Folded Reload 831b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s5, 248(sp) # 8-byte Folded Reload 832b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s6, 240(sp) # 8-byte Folded Reload 833b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s7, 232(sp) # 8-byte Folded Reload 834b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s8, 224(sp) # 8-byte Folded Reload 835b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s9, 216(sp) # 8-byte Folded Reload 836b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s10, 208(sp) # 8-byte Folded Reload 837b6c4ad70SYeting Kuo; ZDINX64-NEXT: ld s11, 200(sp) # 8-byte Folded Reload 838b6c4ad70SYeting Kuo; ZDINX64-NEXT: addi sp, sp, 304 83932c257d3SeopXD; ZDINX64-NEXT: ret 84032c257d3SeopXD %C = call fastcc half @callee_half_32(<32 x half> %A) 84132c257d3SeopXD ret half %C 84232c257d3SeopXD} 84332c257d3SeopXD 84432c257d3SeopXDdefine fastcc float @callee_float_32(<32 x float> %A) nounwind { 84532c257d3SeopXD; ZHINX32-LABEL: callee_float_32: 84632c257d3SeopXD; ZHINX32: # %bb.0: 84732c257d3SeopXD; ZHINX32-NEXT: ret 84832c257d3SeopXD; 84932c257d3SeopXD; ZHINX64-LABEL: callee_float_32: 85032c257d3SeopXD; ZHINX64: # %bb.0: 85132c257d3SeopXD; ZHINX64-NEXT: ret 85232c257d3SeopXD; 85332c257d3SeopXD; ZFINX32-LABEL: callee_float_32: 85432c257d3SeopXD; ZFINX32: # %bb.0: 85532c257d3SeopXD; ZFINX32-NEXT: ret 85632c257d3SeopXD; 85732c257d3SeopXD; ZFINX64-LABEL: callee_float_32: 85832c257d3SeopXD; ZFINX64: # %bb.0: 85932c257d3SeopXD; ZFINX64-NEXT: ret 86032c257d3SeopXD; 86132c257d3SeopXD; ZDINX32-LABEL: callee_float_32: 86232c257d3SeopXD; ZDINX32: # %bb.0: 86332c257d3SeopXD; ZDINX32-NEXT: ret 86432c257d3SeopXD; 86532c257d3SeopXD; ZDINX64-LABEL: callee_float_32: 86632c257d3SeopXD; ZDINX64: # %bb.0: 86732c257d3SeopXD; ZDINX64-NEXT: ret 86832c257d3SeopXD %B = extractelement <32 x float> %A, i32 0 86932c257d3SeopXD ret float %B 87032c257d3SeopXD} 87132c257d3SeopXD 87232c257d3SeopXDdefine float @caller_float_32(<32 x float> %A) nounwind { 87332c257d3SeopXD; ZHINX32-LABEL: caller_float_32: 87432c257d3SeopXD; ZHINX32: # %bb.0: 87549660e55SCraig Topper; ZHINX32-NEXT: addi sp, sp, -160 87649660e55SCraig Topper; ZHINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill 87749660e55SCraig Topper; ZHINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill 87849660e55SCraig Topper; ZHINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill 87949660e55SCraig Topper; ZHINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill 88049660e55SCraig Topper; ZHINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill 88149660e55SCraig Topper; ZHINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill 88249660e55SCraig Topper; ZHINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill 88349660e55SCraig Topper; ZHINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill 88449660e55SCraig Topper; ZHINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill 88549660e55SCraig Topper; ZHINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill 88649660e55SCraig Topper; ZHINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill 88749660e55SCraig Topper; ZHINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill 88849660e55SCraig Topper; ZHINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill 889*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill 890*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill 891*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill 892*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill 893*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a7, a3 894*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a6, a2 895*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a5, a1 896*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t3, 160(sp) 897*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t4, 164(sp) 898*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t5, 168(sp) 899*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t6, 172(sp) 900*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t0, 176(sp) 901*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t1, 180(sp) 902*9122c523SPengcheng Wang; ZHINX32-NEXT: lw t2, 184(sp) 90349660e55SCraig Topper; ZHINX32-NEXT: lw s0, 188(sp) 904b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s1, 192(sp) 905b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s2, 196(sp) 906b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s3, 200(sp) 907b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s4, 204(sp) 908b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s5, 208(sp) 909b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s6, 212(sp) 910b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s7, 216(sp) 911b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s8, 220(sp) 912b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s9, 224(sp) 913b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s10, 228(sp) 914b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw s11, 232(sp) 915b6c4ad70SYeting Kuo; ZHINX32-NEXT: lw ra, 236(sp) 916*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a1, 240(sp) 917*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a2, 244(sp) 918*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a3, 248(sp) 919*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a4, 252(sp) 920*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a1, 64(sp) 921*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a2, 68(sp) 922*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a3, 72(sp) 923*9122c523SPengcheng Wang; ZHINX32-NEXT: sw a4, 76(sp) 92449660e55SCraig Topper; ZHINX32-NEXT: sw s9, 48(sp) 9252967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s10, 52(sp) 9262967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s11, 56(sp) 9272967e5f8SAlex Bradbury; ZHINX32-NEXT: sw ra, 60(sp) 92849660e55SCraig Topper; ZHINX32-NEXT: sw s5, 32(sp) 9292967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s6, 36(sp) 9302967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s7, 40(sp) 9312967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s8, 44(sp) 93249660e55SCraig Topper; ZHINX32-NEXT: sw s1, 16(sp) 9332967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s2, 20(sp) 9342967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s3, 24(sp) 9352967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s4, 28(sp) 936*9122c523SPengcheng Wang; ZHINX32-NEXT: sw t0, 0(sp) 937*9122c523SPengcheng Wang; ZHINX32-NEXT: sw t1, 4(sp) 938*9122c523SPengcheng Wang; ZHINX32-NEXT: sw t2, 8(sp) 9392967e5f8SAlex Bradbury; ZHINX32-NEXT: sw s0, 12(sp) 940*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a1, a5 941*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a2, a6 942*9122c523SPengcheng Wang; ZHINX32-NEXT: mv a3, a7 943*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload 944*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload 945*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload 946*9122c523SPengcheng Wang; ZHINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload 947eabaee0cSFangrui Song; ZHINX32-NEXT: call callee_float_32 94849660e55SCraig Topper; ZHINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload 94949660e55SCraig Topper; ZHINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload 95049660e55SCraig Topper; ZHINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload 95149660e55SCraig Topper; ZHINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload 95249660e55SCraig Topper; ZHINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload 95349660e55SCraig Topper; ZHINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload 95449660e55SCraig Topper; ZHINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload 95549660e55SCraig Topper; ZHINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload 95649660e55SCraig Topper; ZHINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload 95749660e55SCraig Topper; ZHINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload 95849660e55SCraig Topper; ZHINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload 95949660e55SCraig Topper; ZHINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload 96049660e55SCraig Topper; ZHINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload 96149660e55SCraig Topper; ZHINX32-NEXT: addi sp, sp, 160 96232c257d3SeopXD; ZHINX32-NEXT: ret 96332c257d3SeopXD; 96432c257d3SeopXD; ZHINX64-LABEL: caller_float_32: 96532c257d3SeopXD; ZHINX64: # %bb.0: 966bc91f3cdSCraig Topper; ZHINX64-NEXT: addi sp, sp, -208 967bc91f3cdSCraig Topper; ZHINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill 968bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill 969bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill 970bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill 971bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill 972bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill 973bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill 974bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill 975bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill 976bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill 977bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill 978bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill 979bc91f3cdSCraig Topper; ZHINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill 980*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill 981*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill 982*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill 983*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill 984*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a7, a3 985*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a6, a2 986*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a5, a1 987*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t3, 208(sp) 988*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t4, 216(sp) 989*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t5, 224(sp) 990*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t6, 232(sp) 991*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t0, 240(sp) 992*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t1, 248(sp) 993*9122c523SPengcheng Wang; ZHINX64-NEXT: lw t2, 256(sp) 994bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s0, 264(sp) 995bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s1, 272(sp) 996bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s2, 280(sp) 997bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s3, 288(sp) 998bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s4, 296(sp) 999bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s5, 304(sp) 1000bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s6, 312(sp) 1001bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s7, 320(sp) 1002bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s8, 328(sp) 1003bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s9, 336(sp) 1004bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s10, 344(sp) 1005bc91f3cdSCraig Topper; ZHINX64-NEXT: lw s11, 352(sp) 1006bc91f3cdSCraig Topper; ZHINX64-NEXT: lw ra, 360(sp) 1007*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a1, 368(sp) 1008*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a2, 376(sp) 1009*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a3, 384(sp) 1010*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a4, 392(sp) 1011*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a1, 64(sp) 1012*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a2, 68(sp) 1013*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a3, 72(sp) 1014*9122c523SPengcheng Wang; ZHINX64-NEXT: sw a4, 76(sp) 1015bc91f3cdSCraig Topper; ZHINX64-NEXT: sw s9, 48(sp) 10162967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s10, 52(sp) 10172967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s11, 56(sp) 10182967e5f8SAlex Bradbury; ZHINX64-NEXT: sw ra, 60(sp) 1019bc91f3cdSCraig Topper; ZHINX64-NEXT: sw s5, 32(sp) 10202967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s6, 36(sp) 10212967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s7, 40(sp) 10222967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s8, 44(sp) 1023bc91f3cdSCraig Topper; ZHINX64-NEXT: sw s1, 16(sp) 10242967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s2, 20(sp) 10252967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s3, 24(sp) 10262967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s4, 28(sp) 1027*9122c523SPengcheng Wang; ZHINX64-NEXT: sw t0, 0(sp) 1028*9122c523SPengcheng Wang; ZHINX64-NEXT: sw t1, 4(sp) 1029*9122c523SPengcheng Wang; ZHINX64-NEXT: sw t2, 8(sp) 10302967e5f8SAlex Bradbury; ZHINX64-NEXT: sw s0, 12(sp) 1031*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a1, a5 1032*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a2, a6 1033*9122c523SPengcheng Wang; ZHINX64-NEXT: mv a3, a7 1034*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload 1035*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload 1036*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload 1037*9122c523SPengcheng Wang; ZHINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload 1038eabaee0cSFangrui Song; ZHINX64-NEXT: call callee_float_32 1039bc91f3cdSCraig Topper; ZHINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload 1040bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload 1041bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload 1042bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload 1043bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload 1044bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload 1045bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload 1046bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload 1047bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload 1048bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload 1049bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload 1050bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload 1051bc91f3cdSCraig Topper; ZHINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload 1052bc91f3cdSCraig Topper; ZHINX64-NEXT: addi sp, sp, 208 105332c257d3SeopXD; ZHINX64-NEXT: ret 105432c257d3SeopXD; 105532c257d3SeopXD; ZFINX32-LABEL: caller_float_32: 105632c257d3SeopXD; ZFINX32: # %bb.0: 105749660e55SCraig Topper; ZFINX32-NEXT: addi sp, sp, -160 105849660e55SCraig Topper; ZFINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill 105949660e55SCraig Topper; ZFINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill 106049660e55SCraig Topper; ZFINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill 106149660e55SCraig Topper; ZFINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill 106249660e55SCraig Topper; ZFINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill 106349660e55SCraig Topper; ZFINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill 106449660e55SCraig Topper; ZFINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill 106549660e55SCraig Topper; ZFINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill 106649660e55SCraig Topper; ZFINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill 106749660e55SCraig Topper; ZFINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill 106849660e55SCraig Topper; ZFINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill 106949660e55SCraig Topper; ZFINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill 107049660e55SCraig Topper; ZFINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill 1071*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill 1072*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill 1073*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill 1074*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill 1075*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a7, a3 1076*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a6, a2 1077*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a5, a1 1078*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t3, 160(sp) 1079*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t4, 164(sp) 1080*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t5, 168(sp) 1081*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t6, 172(sp) 1082*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t0, 176(sp) 1083*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t1, 180(sp) 1084*9122c523SPengcheng Wang; ZFINX32-NEXT: lw t2, 184(sp) 108549660e55SCraig Topper; ZFINX32-NEXT: lw s0, 188(sp) 1086b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s1, 192(sp) 1087b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s2, 196(sp) 1088b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s3, 200(sp) 1089b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s4, 204(sp) 1090b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s5, 208(sp) 1091b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s6, 212(sp) 1092b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s7, 216(sp) 1093b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s8, 220(sp) 1094b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s9, 224(sp) 1095b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s10, 228(sp) 1096b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw s11, 232(sp) 1097b6c4ad70SYeting Kuo; ZFINX32-NEXT: lw ra, 236(sp) 1098*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a1, 240(sp) 1099*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a2, 244(sp) 1100*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a3, 248(sp) 1101*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a4, 252(sp) 1102*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a1, 64(sp) 1103*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a2, 68(sp) 1104*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a3, 72(sp) 1105*9122c523SPengcheng Wang; ZFINX32-NEXT: sw a4, 76(sp) 110649660e55SCraig Topper; ZFINX32-NEXT: sw s9, 48(sp) 11072967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s10, 52(sp) 11082967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s11, 56(sp) 11092967e5f8SAlex Bradbury; ZFINX32-NEXT: sw ra, 60(sp) 111049660e55SCraig Topper; ZFINX32-NEXT: sw s5, 32(sp) 11112967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s6, 36(sp) 11122967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s7, 40(sp) 11132967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s8, 44(sp) 111449660e55SCraig Topper; ZFINX32-NEXT: sw s1, 16(sp) 11152967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s2, 20(sp) 11162967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s3, 24(sp) 11172967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s4, 28(sp) 1118*9122c523SPengcheng Wang; ZFINX32-NEXT: sw t0, 0(sp) 1119*9122c523SPengcheng Wang; ZFINX32-NEXT: sw t1, 4(sp) 1120*9122c523SPengcheng Wang; ZFINX32-NEXT: sw t2, 8(sp) 11212967e5f8SAlex Bradbury; ZFINX32-NEXT: sw s0, 12(sp) 1122*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a1, a5 1123*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a2, a6 1124*9122c523SPengcheng Wang; ZFINX32-NEXT: mv a3, a7 1125*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload 1126*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload 1127*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload 1128*9122c523SPengcheng Wang; ZFINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload 1129eabaee0cSFangrui Song; ZFINX32-NEXT: call callee_float_32 113049660e55SCraig Topper; ZFINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload 113149660e55SCraig Topper; ZFINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload 113249660e55SCraig Topper; ZFINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload 113349660e55SCraig Topper; ZFINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload 113449660e55SCraig Topper; ZFINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload 113549660e55SCraig Topper; ZFINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload 113649660e55SCraig Topper; ZFINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload 113749660e55SCraig Topper; ZFINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload 113849660e55SCraig Topper; ZFINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload 113949660e55SCraig Topper; ZFINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload 114049660e55SCraig Topper; ZFINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload 114149660e55SCraig Topper; ZFINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload 114249660e55SCraig Topper; ZFINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload 114349660e55SCraig Topper; ZFINX32-NEXT: addi sp, sp, 160 114432c257d3SeopXD; ZFINX32-NEXT: ret 114532c257d3SeopXD; 114632c257d3SeopXD; ZFINX64-LABEL: caller_float_32: 114732c257d3SeopXD; ZFINX64: # %bb.0: 1148bc91f3cdSCraig Topper; ZFINX64-NEXT: addi sp, sp, -208 1149bc91f3cdSCraig Topper; ZFINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill 1150bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill 1151bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill 1152bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill 1153bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill 1154bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill 1155bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill 1156bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill 1157bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill 1158bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill 1159bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill 1160bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill 1161bc91f3cdSCraig Topper; ZFINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill 1162*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill 1163*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill 1164*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill 1165*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill 1166*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a7, a3 1167*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a6, a2 1168*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a5, a1 1169*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t3, 208(sp) 1170*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t4, 216(sp) 1171*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t5, 224(sp) 1172*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t6, 232(sp) 1173*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t0, 240(sp) 1174*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t1, 248(sp) 1175*9122c523SPengcheng Wang; ZFINX64-NEXT: lw t2, 256(sp) 1176bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s0, 264(sp) 1177bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s1, 272(sp) 1178bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s2, 280(sp) 1179bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s3, 288(sp) 1180bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s4, 296(sp) 1181bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s5, 304(sp) 1182bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s6, 312(sp) 1183bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s7, 320(sp) 1184bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s8, 328(sp) 1185bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s9, 336(sp) 1186bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s10, 344(sp) 1187bc91f3cdSCraig Topper; ZFINX64-NEXT: lw s11, 352(sp) 1188bc91f3cdSCraig Topper; ZFINX64-NEXT: lw ra, 360(sp) 1189*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a1, 368(sp) 1190*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a2, 376(sp) 1191*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a3, 384(sp) 1192*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a4, 392(sp) 1193*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a1, 64(sp) 1194*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a2, 68(sp) 1195*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a3, 72(sp) 1196*9122c523SPengcheng Wang; ZFINX64-NEXT: sw a4, 76(sp) 1197bc91f3cdSCraig Topper; ZFINX64-NEXT: sw s9, 48(sp) 11982967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s10, 52(sp) 11992967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s11, 56(sp) 12002967e5f8SAlex Bradbury; ZFINX64-NEXT: sw ra, 60(sp) 1201bc91f3cdSCraig Topper; ZFINX64-NEXT: sw s5, 32(sp) 12022967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s6, 36(sp) 12032967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s7, 40(sp) 12042967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s8, 44(sp) 1205bc91f3cdSCraig Topper; ZFINX64-NEXT: sw s1, 16(sp) 12062967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s2, 20(sp) 12072967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s3, 24(sp) 12082967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s4, 28(sp) 1209*9122c523SPengcheng Wang; ZFINX64-NEXT: sw t0, 0(sp) 1210*9122c523SPengcheng Wang; ZFINX64-NEXT: sw t1, 4(sp) 1211*9122c523SPengcheng Wang; ZFINX64-NEXT: sw t2, 8(sp) 12122967e5f8SAlex Bradbury; ZFINX64-NEXT: sw s0, 12(sp) 1213*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a1, a5 1214*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a2, a6 1215*9122c523SPengcheng Wang; ZFINX64-NEXT: mv a3, a7 1216*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload 1217*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload 1218*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload 1219*9122c523SPengcheng Wang; ZFINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload 1220eabaee0cSFangrui Song; ZFINX64-NEXT: call callee_float_32 1221bc91f3cdSCraig Topper; ZFINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload 1222bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload 1223bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload 1224bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload 1225bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload 1226bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload 1227bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload 1228bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload 1229bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload 1230bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload 1231bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload 1232bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload 1233bc91f3cdSCraig Topper; ZFINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload 1234bc91f3cdSCraig Topper; ZFINX64-NEXT: addi sp, sp, 208 123532c257d3SeopXD; ZFINX64-NEXT: ret 123632c257d3SeopXD; 123732c257d3SeopXD; ZDINX32-LABEL: caller_float_32: 123832c257d3SeopXD; ZDINX32: # %bb.0: 123949660e55SCraig Topper; ZDINX32-NEXT: addi sp, sp, -160 124049660e55SCraig Topper; ZDINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill 124149660e55SCraig Topper; ZDINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill 124249660e55SCraig Topper; ZDINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill 124349660e55SCraig Topper; ZDINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill 124449660e55SCraig Topper; ZDINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill 124549660e55SCraig Topper; ZDINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill 124649660e55SCraig Topper; ZDINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill 124749660e55SCraig Topper; ZDINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill 124849660e55SCraig Topper; ZDINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill 124949660e55SCraig Topper; ZDINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill 125049660e55SCraig Topper; ZDINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill 125149660e55SCraig Topper; ZDINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill 125249660e55SCraig Topper; ZDINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill 1253*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill 1254*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill 1255*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill 1256*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill 1257*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a7, a3 1258*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a6, a2 1259*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a5, a1 1260*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t3, 160(sp) 1261*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t4, 164(sp) 1262*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t5, 168(sp) 1263*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t6, 172(sp) 1264*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t0, 176(sp) 1265*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t1, 180(sp) 1266*9122c523SPengcheng Wang; ZDINX32-NEXT: lw t2, 184(sp) 126749660e55SCraig Topper; ZDINX32-NEXT: lw s0, 188(sp) 1268b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s1, 192(sp) 1269b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s2, 196(sp) 1270b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s3, 200(sp) 1271b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s4, 204(sp) 1272b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s5, 208(sp) 1273b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s6, 212(sp) 1274b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s7, 216(sp) 1275b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s8, 220(sp) 1276b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s9, 224(sp) 1277b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s10, 228(sp) 1278b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw s11, 232(sp) 1279b6c4ad70SYeting Kuo; ZDINX32-NEXT: lw ra, 236(sp) 1280*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a1, 240(sp) 1281*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a2, 244(sp) 1282*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a3, 248(sp) 1283*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a4, 252(sp) 1284*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a1, 64(sp) 1285*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a2, 68(sp) 1286*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a3, 72(sp) 1287*9122c523SPengcheng Wang; ZDINX32-NEXT: sw a4, 76(sp) 128849660e55SCraig Topper; ZDINX32-NEXT: sw s9, 48(sp) 12892967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s10, 52(sp) 12902967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s11, 56(sp) 12912967e5f8SAlex Bradbury; ZDINX32-NEXT: sw ra, 60(sp) 129249660e55SCraig Topper; ZDINX32-NEXT: sw s5, 32(sp) 12932967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s6, 36(sp) 12942967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s7, 40(sp) 12952967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s8, 44(sp) 129649660e55SCraig Topper; ZDINX32-NEXT: sw s1, 16(sp) 12972967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s2, 20(sp) 12982967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s3, 24(sp) 12992967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s4, 28(sp) 1300*9122c523SPengcheng Wang; ZDINX32-NEXT: sw t0, 0(sp) 1301*9122c523SPengcheng Wang; ZDINX32-NEXT: sw t1, 4(sp) 1302*9122c523SPengcheng Wang; ZDINX32-NEXT: sw t2, 8(sp) 13032967e5f8SAlex Bradbury; ZDINX32-NEXT: sw s0, 12(sp) 1304*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a1, a5 1305*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a2, a6 1306*9122c523SPengcheng Wang; ZDINX32-NEXT: mv a3, a7 1307*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload 1308*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload 1309*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload 1310*9122c523SPengcheng Wang; ZDINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload 1311eabaee0cSFangrui Song; ZDINX32-NEXT: call callee_float_32 131249660e55SCraig Topper; ZDINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload 131349660e55SCraig Topper; ZDINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload 131449660e55SCraig Topper; ZDINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload 131549660e55SCraig Topper; ZDINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload 131649660e55SCraig Topper; ZDINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload 131749660e55SCraig Topper; ZDINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload 131849660e55SCraig Topper; ZDINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload 131949660e55SCraig Topper; ZDINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload 132049660e55SCraig Topper; ZDINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload 132149660e55SCraig Topper; ZDINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload 132249660e55SCraig Topper; ZDINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload 132349660e55SCraig Topper; ZDINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload 132449660e55SCraig Topper; ZDINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload 132549660e55SCraig Topper; ZDINX32-NEXT: addi sp, sp, 160 132632c257d3SeopXD; ZDINX32-NEXT: ret 132732c257d3SeopXD; 132832c257d3SeopXD; ZDINX64-LABEL: caller_float_32: 132932c257d3SeopXD; ZDINX64: # %bb.0: 1330bc91f3cdSCraig Topper; ZDINX64-NEXT: addi sp, sp, -208 1331bc91f3cdSCraig Topper; ZDINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill 1332bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill 1333bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill 1334bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill 1335bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill 1336bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill 1337bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill 1338bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill 1339bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill 1340bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill 1341bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill 1342bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill 1343bc91f3cdSCraig Topper; ZDINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill 1344*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill 1345*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill 1346*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill 1347*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill 1348*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a7, a3 1349*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a6, a2 1350*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a5, a1 1351*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t3, 208(sp) 1352*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t4, 216(sp) 1353*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t5, 224(sp) 1354*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t6, 232(sp) 1355*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t0, 240(sp) 1356*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t1, 248(sp) 1357*9122c523SPengcheng Wang; ZDINX64-NEXT: lw t2, 256(sp) 1358bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s0, 264(sp) 1359bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s1, 272(sp) 1360bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s2, 280(sp) 1361bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s3, 288(sp) 1362bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s4, 296(sp) 1363bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s5, 304(sp) 1364bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s6, 312(sp) 1365bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s7, 320(sp) 1366bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s8, 328(sp) 1367bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s9, 336(sp) 1368bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s10, 344(sp) 1369bc91f3cdSCraig Topper; ZDINX64-NEXT: lw s11, 352(sp) 1370bc91f3cdSCraig Topper; ZDINX64-NEXT: lw ra, 360(sp) 1371*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a1, 368(sp) 1372*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a2, 376(sp) 1373*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a3, 384(sp) 1374*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a4, 392(sp) 1375*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a1, 64(sp) 1376*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a2, 68(sp) 1377*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a3, 72(sp) 1378*9122c523SPengcheng Wang; ZDINX64-NEXT: sw a4, 76(sp) 1379bc91f3cdSCraig Topper; ZDINX64-NEXT: sw s9, 48(sp) 13802967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s10, 52(sp) 13812967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s11, 56(sp) 13822967e5f8SAlex Bradbury; ZDINX64-NEXT: sw ra, 60(sp) 1383bc91f3cdSCraig Topper; ZDINX64-NEXT: sw s5, 32(sp) 13842967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s6, 36(sp) 13852967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s7, 40(sp) 13862967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s8, 44(sp) 1387bc91f3cdSCraig Topper; ZDINX64-NEXT: sw s1, 16(sp) 13882967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s2, 20(sp) 13892967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s3, 24(sp) 13902967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s4, 28(sp) 1391*9122c523SPengcheng Wang; ZDINX64-NEXT: sw t0, 0(sp) 1392*9122c523SPengcheng Wang; ZDINX64-NEXT: sw t1, 4(sp) 1393*9122c523SPengcheng Wang; ZDINX64-NEXT: sw t2, 8(sp) 13942967e5f8SAlex Bradbury; ZDINX64-NEXT: sw s0, 12(sp) 1395*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a1, a5 1396*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a2, a6 1397*9122c523SPengcheng Wang; ZDINX64-NEXT: mv a3, a7 1398*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload 1399*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload 1400*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload 1401*9122c523SPengcheng Wang; ZDINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload 1402eabaee0cSFangrui Song; ZDINX64-NEXT: call callee_float_32 1403bc91f3cdSCraig Topper; ZDINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload 1404bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload 1405bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload 1406bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload 1407bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload 1408bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload 1409bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload 1410bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload 1411bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload 1412bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload 1413bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload 1414bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload 1415bc91f3cdSCraig Topper; ZDINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload 1416bc91f3cdSCraig Topper; ZDINX64-NEXT: addi sp, sp, 208 141732c257d3SeopXD; ZDINX64-NEXT: ret 141832c257d3SeopXD %C = call fastcc float @callee_float_32(<32 x float> %A) 141932c257d3SeopXD ret float %C 142032c257d3SeopXD} 142132c257d3SeopXD 142232c257d3SeopXDdefine fastcc double @callee_double_32(<32 x double> %A) nounwind { 14239eebfa80SCraig Topper; ZHINX32-LABEL: callee_double_32: 14249eebfa80SCraig Topper; ZHINX32: # %bb.0: 14259eebfa80SCraig Topper; ZHINX32-NEXT: ret 14269eebfa80SCraig Topper; 14279eebfa80SCraig Topper; ZHINX64-LABEL: callee_double_32: 14289eebfa80SCraig Topper; ZHINX64: # %bb.0: 14299eebfa80SCraig Topper; ZHINX64-NEXT: ret 14309eebfa80SCraig Topper; 14319eebfa80SCraig Topper; ZFINX32-LABEL: callee_double_32: 14329eebfa80SCraig Topper; ZFINX32: # %bb.0: 14339eebfa80SCraig Topper; ZFINX32-NEXT: ret 14349eebfa80SCraig Topper; 14359eebfa80SCraig Topper; ZFINX64-LABEL: callee_double_32: 14369eebfa80SCraig Topper; ZFINX64: # %bb.0: 14379eebfa80SCraig Topper; ZFINX64-NEXT: ret 14389eebfa80SCraig Topper; 14399eebfa80SCraig Topper; ZDINX32-LABEL: callee_double_32: 14409eebfa80SCraig Topper; ZDINX32: # %bb.0: 1441576d81baSCraig Topper; ZDINX32-NEXT: lw a0, 0(sp) 1442576d81baSCraig Topper; ZDINX32-NEXT: lw a1, 4(sp) 14439eebfa80SCraig Topper; ZDINX32-NEXT: ret 14449eebfa80SCraig Topper; 14459eebfa80SCraig Topper; ZDINX64-LABEL: callee_double_32: 14469eebfa80SCraig Topper; ZDINX64: # %bb.0: 14479eebfa80SCraig Topper; ZDINX64-NEXT: ret 144832c257d3SeopXD %B = extractelement <32 x double> %A, i32 0 144932c257d3SeopXD ret double %B 145032c257d3SeopXD} 1451