1451 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=riscv32 -mattr=+zhinx -verify-machineinstrs < %s \3; RUN: | FileCheck -check-prefix=ZHINX32 %s4; RUN: llc -mtriple=riscv64 -mattr=+zhinx -verify-machineinstrs < %s \5; RUN: | FileCheck -check-prefix=ZHINX64 %s6; RUN: llc -mtriple=riscv32 -mattr=+zfinx -verify-machineinstrs < %s \7; RUN: | FileCheck -check-prefix=ZFINX32 %s8; RUN: llc -mtriple=riscv64 -mattr=+zfinx -verify-machineinstrs < %s \9; RUN: | FileCheck -check-prefix=ZFINX64 %s10; RUN: llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs < %s \11; RUN: | FileCheck -check-prefix=ZDINX32 %s12; RUN: llc -mtriple=riscv64 -mattr=+zdinx -verify-machineinstrs < %s \13; RUN: | FileCheck -check-prefix=ZDINX64 %s14 15define half @caller_half(half %x) nounwind {16; ZHINX32-LABEL: caller_half:17; ZHINX32: # %bb.0: # %entry18; ZHINX32-NEXT: tail h19;20; ZHINX64-LABEL: caller_half:21; ZHINX64: # %bb.0: # %entry22; ZHINX64-NEXT: tail h23;24; ZFINX32-LABEL: caller_half:25; ZFINX32: # %bb.0: # %entry26; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x1027; ZFINX32-NEXT: lui a1, 104856028; ZFINX32-NEXT: or a0, a0, a129; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x1030; ZFINX32-NEXT: tail h31;32; ZFINX64-LABEL: caller_half:33; ZFINX64: # %bb.0: # %entry34; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x1035; ZFINX64-NEXT: lui a1, 104856036; ZFINX64-NEXT: or a0, a0, a137; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x1038; ZFINX64-NEXT: tail h39;40; ZDINX32-LABEL: caller_half:41; ZDINX32: # %bb.0: # %entry42; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x1043; ZDINX32-NEXT: lui a1, 104856044; ZDINX32-NEXT: or a0, a0, a145; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x1046; ZDINX32-NEXT: tail h47;48; ZDINX64-LABEL: caller_half:49; ZDINX64: # %bb.0: # %entry50; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x1051; ZDINX64-NEXT: lui a1, 104856052; ZDINX64-NEXT: or a0, a0, a153; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x1054; ZDINX64-NEXT: tail h55entry:56 %0 = tail call fastcc half @h(half %x)57 ret half %058}59 60define internal fastcc half @h(half %x) nounwind {61; ZHINX32-LABEL: h:62; ZHINX32: # %bb.0:63; ZHINX32-NEXT: ret64;65; ZHINX64-LABEL: h:66; ZHINX64: # %bb.0:67; ZHINX64-NEXT: ret68;69; ZFINX32-LABEL: h:70; ZFINX32: # %bb.0:71; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x1072; ZFINX32-NEXT: lui a1, 104856073; ZFINX32-NEXT: or a0, a0, a174; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x1075; ZFINX32-NEXT: ret76;77; ZFINX64-LABEL: h:78; ZFINX64: # %bb.0:79; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x1080; ZFINX64-NEXT: lui a1, 104856081; ZFINX64-NEXT: or a0, a0, a182; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x1083; ZFINX64-NEXT: ret84;85; ZDINX32-LABEL: h:86; ZDINX32: # %bb.0:87; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x1088; ZDINX32-NEXT: lui a1, 104856089; ZDINX32-NEXT: or a0, a0, a190; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x1091; ZDINX32-NEXT: ret92;93; ZDINX64-LABEL: h:94; ZDINX64: # %bb.0:95; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x1096; ZDINX64-NEXT: lui a1, 104856097; ZDINX64-NEXT: or a0, a0, a198; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x1099; ZDINX64-NEXT: ret100 ret half %x101}102 103define float @caller_float(float %x) nounwind {104; ZHINX32-LABEL: caller_float:105; ZHINX32: # %bb.0: # %entry106; ZHINX32-NEXT: tail f107;108; ZHINX64-LABEL: caller_float:109; ZHINX64: # %bb.0: # %entry110; ZHINX64-NEXT: tail f111;112; ZFINX32-LABEL: caller_float:113; ZFINX32: # %bb.0: # %entry114; ZFINX32-NEXT: tail f115;116; ZFINX64-LABEL: caller_float:117; ZFINX64: # %bb.0: # %entry118; ZFINX64-NEXT: tail f119;120; ZDINX32-LABEL: caller_float:121; ZDINX32: # %bb.0: # %entry122; ZDINX32-NEXT: tail f123;124; ZDINX64-LABEL: caller_float:125; ZDINX64: # %bb.0: # %entry126; ZDINX64-NEXT: tail f127entry:128 %0 = tail call fastcc float @f(float %x)129 ret float %0130}131 132define internal fastcc float @f(float %x) nounwind {133; ZHINX32-LABEL: f:134; ZHINX32: # %bb.0: # %entry135; ZHINX32-NEXT: ret136;137; ZHINX64-LABEL: f:138; ZHINX64: # %bb.0: # %entry139; ZHINX64-NEXT: ret140;141; ZFINX32-LABEL: f:142; ZFINX32: # %bb.0: # %entry143; ZFINX32-NEXT: ret144;145; ZFINX64-LABEL: f:146; ZFINX64: # %bb.0: # %entry147; ZFINX64-NEXT: ret148;149; ZDINX32-LABEL: f:150; ZDINX32: # %bb.0: # %entry151; ZDINX32-NEXT: ret152;153; ZDINX64-LABEL: f:154; ZDINX64: # %bb.0: # %entry155; ZDINX64-NEXT: ret156entry:157 ret float %x158}159 160define double @caller_double(double %x) nounwind {161; ZHINX32-LABEL: caller_double:162; ZHINX32: # %bb.0: # %entry163; ZHINX32-NEXT: tail d164;165; ZHINX64-LABEL: caller_double:166; ZHINX64: # %bb.0: # %entry167; ZHINX64-NEXT: tail d168;169; ZFINX32-LABEL: caller_double:170; ZFINX32: # %bb.0: # %entry171; ZFINX32-NEXT: tail d172;173; ZFINX64-LABEL: caller_double:174; ZFINX64: # %bb.0: # %entry175; ZFINX64-NEXT: tail d176;177; ZDINX32-LABEL: caller_double:178; ZDINX32: # %bb.0: # %entry179; ZDINX32-NEXT: addi sp, sp, -16180; ZDINX32-NEXT: sw ra, 12(sp) # 4-byte Folded Spill181; ZDINX32-NEXT: sw a0, 0(sp)182; ZDINX32-NEXT: sw a1, 4(sp)183; ZDINX32-NEXT: call d184; ZDINX32-NEXT: lw ra, 12(sp) # 4-byte Folded Reload185; ZDINX32-NEXT: addi sp, sp, 16186; ZDINX32-NEXT: ret187;188; ZDINX64-LABEL: caller_double:189; ZDINX64: # %bb.0: # %entry190; ZDINX64-NEXT: tail d191entry:192 %0 = tail call fastcc double @d(double %x)193 ret double %0194}195 196define internal fastcc double @d(double %x) nounwind {197; ZHINX32-LABEL: d:198; ZHINX32: # %bb.0: # %entry199; ZHINX32-NEXT: ret200;201; ZHINX64-LABEL: d:202; ZHINX64: # %bb.0: # %entry203; ZHINX64-NEXT: ret204;205; ZFINX32-LABEL: d:206; ZFINX32: # %bb.0: # %entry207; ZFINX32-NEXT: ret208;209; ZFINX64-LABEL: d:210; ZFINX64: # %bb.0: # %entry211; ZFINX64-NEXT: ret212;213; ZDINX32-LABEL: d:214; ZDINX32: # %bb.0: # %entry215; ZDINX32-NEXT: lw a0, 0(sp)216; ZDINX32-NEXT: lw a1, 4(sp)217; ZDINX32-NEXT: ret218;219; ZDINX64-LABEL: d:220; ZDINX64: # %bb.0: # %entry221; ZDINX64-NEXT: ret222entry:223 ret double %x224}225 226define fastcc half @callee_half_32(<32 x half> %A) nounwind {227; ZHINX32-LABEL: callee_half_32:228; ZHINX32: # %bb.0:229; ZHINX32-NEXT: ret230;231; ZHINX64-LABEL: callee_half_32:232; ZHINX64: # %bb.0:233; ZHINX64-NEXT: ret234;235; ZFINX32-LABEL: callee_half_32:236; ZFINX32: # %bb.0:237; ZFINX32-NEXT: lui a1, 1048560238; ZFINX32-NEXT: or a0, a0, a1239; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10240; ZFINX32-NEXT: ret241;242; ZFINX64-LABEL: callee_half_32:243; ZFINX64: # %bb.0:244; ZFINX64-NEXT: lui a1, 1048560245; ZFINX64-NEXT: or a0, a0, a1246; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10247; ZFINX64-NEXT: ret248;249; ZDINX32-LABEL: callee_half_32:250; ZDINX32: # %bb.0:251; ZDINX32-NEXT: lui a1, 1048560252; ZDINX32-NEXT: or a0, a0, a1253; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10254; ZDINX32-NEXT: ret255;256; ZDINX64-LABEL: callee_half_32:257; ZDINX64: # %bb.0:258; ZDINX64-NEXT: lui a1, 1048560259; ZDINX64-NEXT: or a0, a0, a1260; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10261; ZDINX64-NEXT: ret262 %B = extractelement <32 x half> %A, i32 0263 ret half %B264}265 266define half @caller_half_32(<32 x half> %A) nounwind {267; ZHINX32-LABEL: caller_half_32:268; ZHINX32: # %bb.0:269; ZHINX32-NEXT: addi sp, sp, -112270; ZHINX32-NEXT: sw ra, 108(sp) # 4-byte Folded Spill271; ZHINX32-NEXT: sw s0, 104(sp) # 4-byte Folded Spill272; ZHINX32-NEXT: sw s1, 100(sp) # 4-byte Folded Spill273; ZHINX32-NEXT: sw s2, 96(sp) # 4-byte Folded Spill274; ZHINX32-NEXT: sw s3, 92(sp) # 4-byte Folded Spill275; ZHINX32-NEXT: sw s4, 88(sp) # 4-byte Folded Spill276; ZHINX32-NEXT: sw s5, 84(sp) # 4-byte Folded Spill277; ZHINX32-NEXT: sw s6, 80(sp) # 4-byte Folded Spill278; ZHINX32-NEXT: sw s7, 76(sp) # 4-byte Folded Spill279; ZHINX32-NEXT: sw s8, 72(sp) # 4-byte Folded Spill280; ZHINX32-NEXT: sw s9, 68(sp) # 4-byte Folded Spill281; ZHINX32-NEXT: sw s10, 64(sp) # 4-byte Folded Spill282; ZHINX32-NEXT: sw s11, 60(sp) # 4-byte Folded Spill283; ZHINX32-NEXT: sh a7, 58(sp) # 2-byte Folded Spill284; ZHINX32-NEXT: sh a6, 56(sp) # 2-byte Folded Spill285; ZHINX32-NEXT: sh a5, 54(sp) # 2-byte Folded Spill286; ZHINX32-NEXT: sh a4, 52(sp) # 2-byte Folded Spill287; ZHINX32-NEXT: mv a7, a3288; ZHINX32-NEXT: mv a6, a2289; ZHINX32-NEXT: mv a5, a1290; ZHINX32-NEXT: lh t3, 112(sp)291; ZHINX32-NEXT: lh t4, 116(sp)292; ZHINX32-NEXT: lh t5, 120(sp)293; ZHINX32-NEXT: lh t6, 124(sp)294; ZHINX32-NEXT: lh t0, 128(sp)295; ZHINX32-NEXT: lh t1, 132(sp)296; ZHINX32-NEXT: lh t2, 136(sp)297; ZHINX32-NEXT: lh s0, 140(sp)298; ZHINX32-NEXT: lh s1, 144(sp)299; ZHINX32-NEXT: lh s2, 148(sp)300; ZHINX32-NEXT: lh s3, 152(sp)301; ZHINX32-NEXT: lh s4, 156(sp)302; ZHINX32-NEXT: lh s5, 160(sp)303; ZHINX32-NEXT: lh s6, 164(sp)304; ZHINX32-NEXT: lh s7, 168(sp)305; ZHINX32-NEXT: lh s8, 172(sp)306; ZHINX32-NEXT: lh s9, 176(sp)307; ZHINX32-NEXT: lh s10, 180(sp)308; ZHINX32-NEXT: lh s11, 184(sp)309; ZHINX32-NEXT: lh ra, 188(sp)310; ZHINX32-NEXT: lh a1, 192(sp)311; ZHINX32-NEXT: lh a2, 196(sp)312; ZHINX32-NEXT: lh a3, 200(sp)313; ZHINX32-NEXT: lh a4, 204(sp)314; ZHINX32-NEXT: sh a1, 32(sp)315; ZHINX32-NEXT: sh a2, 34(sp)316; ZHINX32-NEXT: sh a3, 36(sp)317; ZHINX32-NEXT: sh a4, 38(sp)318; ZHINX32-NEXT: sh s9, 24(sp)319; ZHINX32-NEXT: sh s10, 26(sp)320; ZHINX32-NEXT: sh s11, 28(sp)321; ZHINX32-NEXT: sh ra, 30(sp)322; ZHINX32-NEXT: sh s5, 16(sp)323; ZHINX32-NEXT: sh s6, 18(sp)324; ZHINX32-NEXT: sh s7, 20(sp)325; ZHINX32-NEXT: sh s8, 22(sp)326; ZHINX32-NEXT: sh s1, 8(sp)327; ZHINX32-NEXT: sh s2, 10(sp)328; ZHINX32-NEXT: sh s3, 12(sp)329; ZHINX32-NEXT: sh s4, 14(sp)330; ZHINX32-NEXT: sh t0, 0(sp)331; ZHINX32-NEXT: sh t1, 2(sp)332; ZHINX32-NEXT: sh t2, 4(sp)333; ZHINX32-NEXT: sh s0, 6(sp)334; ZHINX32-NEXT: mv a1, a5335; ZHINX32-NEXT: mv a2, a6336; ZHINX32-NEXT: mv a3, a7337; ZHINX32-NEXT: lh a4, 52(sp) # 2-byte Folded Reload338; ZHINX32-NEXT: lh a5, 54(sp) # 2-byte Folded Reload339; ZHINX32-NEXT: lh a6, 56(sp) # 2-byte Folded Reload340; ZHINX32-NEXT: lh a7, 58(sp) # 2-byte Folded Reload341; ZHINX32-NEXT: call callee_half_32342; ZHINX32-NEXT: lw ra, 108(sp) # 4-byte Folded Reload343; ZHINX32-NEXT: lw s0, 104(sp) # 4-byte Folded Reload344; ZHINX32-NEXT: lw s1, 100(sp) # 4-byte Folded Reload345; ZHINX32-NEXT: lw s2, 96(sp) # 4-byte Folded Reload346; ZHINX32-NEXT: lw s3, 92(sp) # 4-byte Folded Reload347; ZHINX32-NEXT: lw s4, 88(sp) # 4-byte Folded Reload348; ZHINX32-NEXT: lw s5, 84(sp) # 4-byte Folded Reload349; ZHINX32-NEXT: lw s6, 80(sp) # 4-byte Folded Reload350; ZHINX32-NEXT: lw s7, 76(sp) # 4-byte Folded Reload351; ZHINX32-NEXT: lw s8, 72(sp) # 4-byte Folded Reload352; ZHINX32-NEXT: lw s9, 68(sp) # 4-byte Folded Reload353; ZHINX32-NEXT: lw s10, 64(sp) # 4-byte Folded Reload354; ZHINX32-NEXT: lw s11, 60(sp) # 4-byte Folded Reload355; ZHINX32-NEXT: addi sp, sp, 112356; ZHINX32-NEXT: ret357;358; ZHINX64-LABEL: caller_half_32:359; ZHINX64: # %bb.0:360; ZHINX64-NEXT: addi sp, sp, -160361; ZHINX64-NEXT: sd ra, 152(sp) # 8-byte Folded Spill362; ZHINX64-NEXT: sd s0, 144(sp) # 8-byte Folded Spill363; ZHINX64-NEXT: sd s1, 136(sp) # 8-byte Folded Spill364; ZHINX64-NEXT: sd s2, 128(sp) # 8-byte Folded Spill365; ZHINX64-NEXT: sd s3, 120(sp) # 8-byte Folded Spill366; ZHINX64-NEXT: sd s4, 112(sp) # 8-byte Folded Spill367; ZHINX64-NEXT: sd s5, 104(sp) # 8-byte Folded Spill368; ZHINX64-NEXT: sd s6, 96(sp) # 8-byte Folded Spill369; ZHINX64-NEXT: sd s7, 88(sp) # 8-byte Folded Spill370; ZHINX64-NEXT: sd s8, 80(sp) # 8-byte Folded Spill371; ZHINX64-NEXT: sd s9, 72(sp) # 8-byte Folded Spill372; ZHINX64-NEXT: sd s10, 64(sp) # 8-byte Folded Spill373; ZHINX64-NEXT: sd s11, 56(sp) # 8-byte Folded Spill374; ZHINX64-NEXT: sh a7, 54(sp) # 2-byte Folded Spill375; ZHINX64-NEXT: sh a6, 52(sp) # 2-byte Folded Spill376; ZHINX64-NEXT: sh a5, 50(sp) # 2-byte Folded Spill377; ZHINX64-NEXT: sh a4, 48(sp) # 2-byte Folded Spill378; ZHINX64-NEXT: mv a7, a3379; ZHINX64-NEXT: mv a6, a2380; ZHINX64-NEXT: mv a5, a1381; ZHINX64-NEXT: lh t3, 160(sp)382; ZHINX64-NEXT: lh t4, 168(sp)383; ZHINX64-NEXT: lh t5, 176(sp)384; ZHINX64-NEXT: lh t6, 184(sp)385; ZHINX64-NEXT: lh t0, 192(sp)386; ZHINX64-NEXT: lh t1, 200(sp)387; ZHINX64-NEXT: lh t2, 208(sp)388; ZHINX64-NEXT: lh s0, 216(sp)389; ZHINX64-NEXT: lh s1, 224(sp)390; ZHINX64-NEXT: lh s2, 232(sp)391; ZHINX64-NEXT: lh s3, 240(sp)392; ZHINX64-NEXT: lh s4, 248(sp)393; ZHINX64-NEXT: lh s5, 256(sp)394; ZHINX64-NEXT: lh s6, 264(sp)395; ZHINX64-NEXT: lh s7, 272(sp)396; ZHINX64-NEXT: lh s8, 280(sp)397; ZHINX64-NEXT: lh s9, 288(sp)398; ZHINX64-NEXT: lh s10, 296(sp)399; ZHINX64-NEXT: lh s11, 304(sp)400; ZHINX64-NEXT: lh ra, 312(sp)401; ZHINX64-NEXT: lh a1, 320(sp)402; ZHINX64-NEXT: lh a2, 328(sp)403; ZHINX64-NEXT: lh a3, 336(sp)404; ZHINX64-NEXT: lh a4, 344(sp)405; ZHINX64-NEXT: sh a1, 32(sp)406; ZHINX64-NEXT: sh a2, 34(sp)407; ZHINX64-NEXT: sh a3, 36(sp)408; ZHINX64-NEXT: sh a4, 38(sp)409; ZHINX64-NEXT: sh s9, 24(sp)410; ZHINX64-NEXT: sh s10, 26(sp)411; ZHINX64-NEXT: sh s11, 28(sp)412; ZHINX64-NEXT: sh ra, 30(sp)413; ZHINX64-NEXT: sh s5, 16(sp)414; ZHINX64-NEXT: sh s6, 18(sp)415; ZHINX64-NEXT: sh s7, 20(sp)416; ZHINX64-NEXT: sh s8, 22(sp)417; ZHINX64-NEXT: sh s1, 8(sp)418; ZHINX64-NEXT: sh s2, 10(sp)419; ZHINX64-NEXT: sh s3, 12(sp)420; ZHINX64-NEXT: sh s4, 14(sp)421; ZHINX64-NEXT: sh t0, 0(sp)422; ZHINX64-NEXT: sh t1, 2(sp)423; ZHINX64-NEXT: sh t2, 4(sp)424; ZHINX64-NEXT: sh s0, 6(sp)425; ZHINX64-NEXT: mv a1, a5426; ZHINX64-NEXT: mv a2, a6427; ZHINX64-NEXT: mv a3, a7428; ZHINX64-NEXT: lh a4, 48(sp) # 2-byte Folded Reload429; ZHINX64-NEXT: lh a5, 50(sp) # 2-byte Folded Reload430; ZHINX64-NEXT: lh a6, 52(sp) # 2-byte Folded Reload431; ZHINX64-NEXT: lh a7, 54(sp) # 2-byte Folded Reload432; ZHINX64-NEXT: call callee_half_32433; ZHINX64-NEXT: ld ra, 152(sp) # 8-byte Folded Reload434; ZHINX64-NEXT: ld s0, 144(sp) # 8-byte Folded Reload435; ZHINX64-NEXT: ld s1, 136(sp) # 8-byte Folded Reload436; ZHINX64-NEXT: ld s2, 128(sp) # 8-byte Folded Reload437; ZHINX64-NEXT: ld s3, 120(sp) # 8-byte Folded Reload438; ZHINX64-NEXT: ld s4, 112(sp) # 8-byte Folded Reload439; ZHINX64-NEXT: ld s5, 104(sp) # 8-byte Folded Reload440; ZHINX64-NEXT: ld s6, 96(sp) # 8-byte Folded Reload441; ZHINX64-NEXT: ld s7, 88(sp) # 8-byte Folded Reload442; ZHINX64-NEXT: ld s8, 80(sp) # 8-byte Folded Reload443; ZHINX64-NEXT: ld s9, 72(sp) # 8-byte Folded Reload444; ZHINX64-NEXT: ld s10, 64(sp) # 8-byte Folded Reload445; ZHINX64-NEXT: ld s11, 56(sp) # 8-byte Folded Reload446; ZHINX64-NEXT: addi sp, sp, 160447; ZHINX64-NEXT: ret448;449; ZFINX32-LABEL: caller_half_32:450; ZFINX32: # %bb.0:451; ZFINX32-NEXT: addi sp, sp, -160452; ZFINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill453; ZFINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill454; ZFINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill455; ZFINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill456; ZFINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill457; ZFINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill458; ZFINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill459; ZFINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill460; ZFINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill461; ZFINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill462; ZFINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill463; ZFINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill464; ZFINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill465; ZFINX32-NEXT: mv t0, a0466; ZFINX32-NEXT: lw a0, 0(a0)467; ZFINX32-NEXT: sw a0, 104(sp) # 4-byte Folded Spill468; ZFINX32-NEXT: lw a0, 4(t0)469; ZFINX32-NEXT: sw a0, 100(sp) # 4-byte Folded Spill470; ZFINX32-NEXT: lw a0, 8(t0)471; ZFINX32-NEXT: sw a0, 96(sp) # 4-byte Folded Spill472; ZFINX32-NEXT: lw a0, 12(t0)473; ZFINX32-NEXT: sw a0, 92(sp) # 4-byte Folded Spill474; ZFINX32-NEXT: lw a4, 16(t0)475; ZFINX32-NEXT: lw a5, 20(t0)476; ZFINX32-NEXT: lw a6, 24(t0)477; ZFINX32-NEXT: lw a7, 28(t0)478; ZFINX32-NEXT: lw t3, 32(t0)479; ZFINX32-NEXT: lw t4, 36(t0)480; ZFINX32-NEXT: lw t5, 40(t0)481; ZFINX32-NEXT: lw t6, 44(t0)482; ZFINX32-NEXT: lw t1, 48(t0)483; ZFINX32-NEXT: lw t2, 52(t0)484; ZFINX32-NEXT: lw s0, 56(t0)485; ZFINX32-NEXT: lw s1, 60(t0)486; ZFINX32-NEXT: lw s2, 64(t0)487; ZFINX32-NEXT: lw s3, 68(t0)488; ZFINX32-NEXT: lw s4, 72(t0)489; ZFINX32-NEXT: lw s5, 76(t0)490; ZFINX32-NEXT: lw s6, 80(t0)491; ZFINX32-NEXT: lw s7, 84(t0)492; ZFINX32-NEXT: lw s8, 88(t0)493; ZFINX32-NEXT: lw s9, 92(t0)494; ZFINX32-NEXT: lw s10, 96(t0)495; ZFINX32-NEXT: lw s11, 100(t0)496; ZFINX32-NEXT: lw ra, 104(t0)497; ZFINX32-NEXT: lw a3, 108(t0)498; ZFINX32-NEXT: lw a0, 112(t0)499; ZFINX32-NEXT: lw a1, 116(t0)500; ZFINX32-NEXT: lw a2, 120(t0)501; ZFINX32-NEXT: lw t0, 124(t0)502; ZFINX32-NEXT: sw a0, 64(sp)503; ZFINX32-NEXT: sw a1, 68(sp)504; ZFINX32-NEXT: sw a2, 72(sp)505; ZFINX32-NEXT: sw t0, 76(sp)506; ZFINX32-NEXT: sw s10, 48(sp)507; ZFINX32-NEXT: sw s11, 52(sp)508; ZFINX32-NEXT: sw ra, 56(sp)509; ZFINX32-NEXT: sw a3, 60(sp)510; ZFINX32-NEXT: sw s6, 32(sp)511; ZFINX32-NEXT: sw s7, 36(sp)512; ZFINX32-NEXT: sw s8, 40(sp)513; ZFINX32-NEXT: sw s9, 44(sp)514; ZFINX32-NEXT: sw s2, 16(sp)515; ZFINX32-NEXT: sw s3, 20(sp)516; ZFINX32-NEXT: sw s4, 24(sp)517; ZFINX32-NEXT: sw s5, 28(sp)518; ZFINX32-NEXT: sw t1, 0(sp)519; ZFINX32-NEXT: sw t2, 4(sp)520; ZFINX32-NEXT: sw s0, 8(sp)521; ZFINX32-NEXT: sw s1, 12(sp)522; ZFINX32-NEXT: lw a0, 104(sp) # 4-byte Folded Reload523; ZFINX32-NEXT: lw a1, 100(sp) # 4-byte Folded Reload524; ZFINX32-NEXT: lw a2, 96(sp) # 4-byte Folded Reload525; ZFINX32-NEXT: lw a3, 92(sp) # 4-byte Folded Reload526; ZFINX32-NEXT: call callee_half_32527; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10528; ZFINX32-NEXT: lui a1, 1048560529; ZFINX32-NEXT: or a0, a0, a1530; ZFINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10531; ZFINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload532; ZFINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload533; ZFINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload534; ZFINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload535; ZFINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload536; ZFINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload537; ZFINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload538; ZFINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload539; ZFINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload540; ZFINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload541; ZFINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload542; ZFINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload543; ZFINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload544; ZFINX32-NEXT: addi sp, sp, 160545; ZFINX32-NEXT: ret546;547; ZFINX64-LABEL: caller_half_32:548; ZFINX64: # %bb.0:549; ZFINX64-NEXT: addi sp, sp, -304550; ZFINX64-NEXT: sd ra, 296(sp) # 8-byte Folded Spill551; ZFINX64-NEXT: sd s0, 288(sp) # 8-byte Folded Spill552; ZFINX64-NEXT: sd s1, 280(sp) # 8-byte Folded Spill553; ZFINX64-NEXT: sd s2, 272(sp) # 8-byte Folded Spill554; ZFINX64-NEXT: sd s3, 264(sp) # 8-byte Folded Spill555; ZFINX64-NEXT: sd s4, 256(sp) # 8-byte Folded Spill556; ZFINX64-NEXT: sd s5, 248(sp) # 8-byte Folded Spill557; ZFINX64-NEXT: sd s6, 240(sp) # 8-byte Folded Spill558; ZFINX64-NEXT: sd s7, 232(sp) # 8-byte Folded Spill559; ZFINX64-NEXT: sd s8, 224(sp) # 8-byte Folded Spill560; ZFINX64-NEXT: sd s9, 216(sp) # 8-byte Folded Spill561; ZFINX64-NEXT: sd s10, 208(sp) # 8-byte Folded Spill562; ZFINX64-NEXT: sd s11, 200(sp) # 8-byte Folded Spill563; ZFINX64-NEXT: mv t0, a0564; ZFINX64-NEXT: ld a0, 0(a0)565; ZFINX64-NEXT: sd a0, 192(sp) # 8-byte Folded Spill566; ZFINX64-NEXT: ld a0, 8(t0)567; ZFINX64-NEXT: sd a0, 184(sp) # 8-byte Folded Spill568; ZFINX64-NEXT: ld a0, 16(t0)569; ZFINX64-NEXT: sd a0, 176(sp) # 8-byte Folded Spill570; ZFINX64-NEXT: ld a0, 24(t0)571; ZFINX64-NEXT: sd a0, 168(sp) # 8-byte Folded Spill572; ZFINX64-NEXT: ld a4, 32(t0)573; ZFINX64-NEXT: ld a5, 40(t0)574; ZFINX64-NEXT: ld a6, 48(t0)575; ZFINX64-NEXT: ld a7, 56(t0)576; ZFINX64-NEXT: ld t3, 64(t0)577; ZFINX64-NEXT: ld t4, 72(t0)578; ZFINX64-NEXT: ld t5, 80(t0)579; ZFINX64-NEXT: ld t6, 88(t0)580; ZFINX64-NEXT: ld t1, 96(t0)581; ZFINX64-NEXT: ld t2, 104(t0)582; ZFINX64-NEXT: ld s0, 112(t0)583; ZFINX64-NEXT: ld s1, 120(t0)584; ZFINX64-NEXT: ld s2, 128(t0)585; ZFINX64-NEXT: ld s3, 136(t0)586; ZFINX64-NEXT: ld s4, 144(t0)587; ZFINX64-NEXT: ld s5, 152(t0)588; ZFINX64-NEXT: ld s6, 160(t0)589; ZFINX64-NEXT: ld s7, 168(t0)590; ZFINX64-NEXT: ld s8, 176(t0)591; ZFINX64-NEXT: ld s9, 184(t0)592; ZFINX64-NEXT: ld s10, 192(t0)593; ZFINX64-NEXT: ld s11, 200(t0)594; ZFINX64-NEXT: ld ra, 208(t0)595; ZFINX64-NEXT: ld a3, 216(t0)596; ZFINX64-NEXT: ld a0, 224(t0)597; ZFINX64-NEXT: ld a1, 232(t0)598; ZFINX64-NEXT: ld a2, 240(t0)599; ZFINX64-NEXT: ld t0, 248(t0)600; ZFINX64-NEXT: sd a0, 128(sp)601; ZFINX64-NEXT: sd a1, 136(sp)602; ZFINX64-NEXT: sd a2, 144(sp)603; ZFINX64-NEXT: sd t0, 152(sp)604; ZFINX64-NEXT: sd s10, 96(sp)605; ZFINX64-NEXT: sd s11, 104(sp)606; ZFINX64-NEXT: sd ra, 112(sp)607; ZFINX64-NEXT: sd a3, 120(sp)608; ZFINX64-NEXT: sd s6, 64(sp)609; ZFINX64-NEXT: sd s7, 72(sp)610; ZFINX64-NEXT: sd s8, 80(sp)611; ZFINX64-NEXT: sd s9, 88(sp)612; ZFINX64-NEXT: sd s2, 32(sp)613; ZFINX64-NEXT: sd s3, 40(sp)614; ZFINX64-NEXT: sd s4, 48(sp)615; ZFINX64-NEXT: sd s5, 56(sp)616; ZFINX64-NEXT: sd t1, 0(sp)617; ZFINX64-NEXT: sd t2, 8(sp)618; ZFINX64-NEXT: sd s0, 16(sp)619; ZFINX64-NEXT: sd s1, 24(sp)620; ZFINX64-NEXT: ld a0, 192(sp) # 8-byte Folded Reload621; ZFINX64-NEXT: ld a1, 184(sp) # 8-byte Folded Reload622; ZFINX64-NEXT: ld a2, 176(sp) # 8-byte Folded Reload623; ZFINX64-NEXT: ld a3, 168(sp) # 8-byte Folded Reload624; ZFINX64-NEXT: call callee_half_32625; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10626; ZFINX64-NEXT: lui a1, 1048560627; ZFINX64-NEXT: or a0, a0, a1628; ZFINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10629; ZFINX64-NEXT: ld ra, 296(sp) # 8-byte Folded Reload630; ZFINX64-NEXT: ld s0, 288(sp) # 8-byte Folded Reload631; ZFINX64-NEXT: ld s1, 280(sp) # 8-byte Folded Reload632; ZFINX64-NEXT: ld s2, 272(sp) # 8-byte Folded Reload633; ZFINX64-NEXT: ld s3, 264(sp) # 8-byte Folded Reload634; ZFINX64-NEXT: ld s4, 256(sp) # 8-byte Folded Reload635; ZFINX64-NEXT: ld s5, 248(sp) # 8-byte Folded Reload636; ZFINX64-NEXT: ld s6, 240(sp) # 8-byte Folded Reload637; ZFINX64-NEXT: ld s7, 232(sp) # 8-byte Folded Reload638; ZFINX64-NEXT: ld s8, 224(sp) # 8-byte Folded Reload639; ZFINX64-NEXT: ld s9, 216(sp) # 8-byte Folded Reload640; ZFINX64-NEXT: ld s10, 208(sp) # 8-byte Folded Reload641; ZFINX64-NEXT: ld s11, 200(sp) # 8-byte Folded Reload642; ZFINX64-NEXT: addi sp, sp, 304643; ZFINX64-NEXT: ret644;645; ZDINX32-LABEL: caller_half_32:646; ZDINX32: # %bb.0:647; ZDINX32-NEXT: addi sp, sp, -160648; ZDINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill649; ZDINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill650; ZDINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill651; ZDINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill652; ZDINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill653; ZDINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill654; ZDINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill655; ZDINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill656; ZDINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill657; ZDINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill658; ZDINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill659; ZDINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill660; ZDINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill661; ZDINX32-NEXT: mv t0, a0662; ZDINX32-NEXT: lw a0, 0(a0)663; ZDINX32-NEXT: sw a0, 104(sp) # 4-byte Folded Spill664; ZDINX32-NEXT: lw a0, 4(t0)665; ZDINX32-NEXT: sw a0, 100(sp) # 4-byte Folded Spill666; ZDINX32-NEXT: lw a0, 8(t0)667; ZDINX32-NEXT: sw a0, 96(sp) # 4-byte Folded Spill668; ZDINX32-NEXT: lw a0, 12(t0)669; ZDINX32-NEXT: sw a0, 92(sp) # 4-byte Folded Spill670; ZDINX32-NEXT: lw a4, 16(t0)671; ZDINX32-NEXT: lw a5, 20(t0)672; ZDINX32-NEXT: lw a6, 24(t0)673; ZDINX32-NEXT: lw a7, 28(t0)674; ZDINX32-NEXT: lw t3, 32(t0)675; ZDINX32-NEXT: lw t4, 36(t0)676; ZDINX32-NEXT: lw t5, 40(t0)677; ZDINX32-NEXT: lw t6, 44(t0)678; ZDINX32-NEXT: lw t1, 48(t0)679; ZDINX32-NEXT: lw t2, 52(t0)680; ZDINX32-NEXT: lw s0, 56(t0)681; ZDINX32-NEXT: lw s1, 60(t0)682; ZDINX32-NEXT: lw s2, 64(t0)683; ZDINX32-NEXT: lw s3, 68(t0)684; ZDINX32-NEXT: lw s4, 72(t0)685; ZDINX32-NEXT: lw s5, 76(t0)686; ZDINX32-NEXT: lw s6, 80(t0)687; ZDINX32-NEXT: lw s7, 84(t0)688; ZDINX32-NEXT: lw s8, 88(t0)689; ZDINX32-NEXT: lw s9, 92(t0)690; ZDINX32-NEXT: lw s10, 96(t0)691; ZDINX32-NEXT: lw s11, 100(t0)692; ZDINX32-NEXT: lw ra, 104(t0)693; ZDINX32-NEXT: lw a3, 108(t0)694; ZDINX32-NEXT: lw a0, 112(t0)695; ZDINX32-NEXT: lw a1, 116(t0)696; ZDINX32-NEXT: lw a2, 120(t0)697; ZDINX32-NEXT: lw t0, 124(t0)698; ZDINX32-NEXT: sw a0, 64(sp)699; ZDINX32-NEXT: sw a1, 68(sp)700; ZDINX32-NEXT: sw a2, 72(sp)701; ZDINX32-NEXT: sw t0, 76(sp)702; ZDINX32-NEXT: sw s10, 48(sp)703; ZDINX32-NEXT: sw s11, 52(sp)704; ZDINX32-NEXT: sw ra, 56(sp)705; ZDINX32-NEXT: sw a3, 60(sp)706; ZDINX32-NEXT: sw s6, 32(sp)707; ZDINX32-NEXT: sw s7, 36(sp)708; ZDINX32-NEXT: sw s8, 40(sp)709; ZDINX32-NEXT: sw s9, 44(sp)710; ZDINX32-NEXT: sw s2, 16(sp)711; ZDINX32-NEXT: sw s3, 20(sp)712; ZDINX32-NEXT: sw s4, 24(sp)713; ZDINX32-NEXT: sw s5, 28(sp)714; ZDINX32-NEXT: sw t1, 0(sp)715; ZDINX32-NEXT: sw t2, 4(sp)716; ZDINX32-NEXT: sw s0, 8(sp)717; ZDINX32-NEXT: sw s1, 12(sp)718; ZDINX32-NEXT: lw a0, 104(sp) # 4-byte Folded Reload719; ZDINX32-NEXT: lw a1, 100(sp) # 4-byte Folded Reload720; ZDINX32-NEXT: lw a2, 96(sp) # 4-byte Folded Reload721; ZDINX32-NEXT: lw a3, 92(sp) # 4-byte Folded Reload722; ZDINX32-NEXT: call callee_half_32723; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w def $x10724; ZDINX32-NEXT: lui a1, 1048560725; ZDINX32-NEXT: or a0, a0, a1726; ZDINX32-NEXT: # kill: def $x10_w killed $x10_w killed $x10727; ZDINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload728; ZDINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload729; ZDINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload730; ZDINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload731; ZDINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload732; ZDINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload733; ZDINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload734; ZDINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload735; ZDINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload736; ZDINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload737; ZDINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload738; ZDINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload739; ZDINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload740; ZDINX32-NEXT: addi sp, sp, 160741; ZDINX32-NEXT: ret742;743; ZDINX64-LABEL: caller_half_32:744; ZDINX64: # %bb.0:745; ZDINX64-NEXT: addi sp, sp, -304746; ZDINX64-NEXT: sd ra, 296(sp) # 8-byte Folded Spill747; ZDINX64-NEXT: sd s0, 288(sp) # 8-byte Folded Spill748; ZDINX64-NEXT: sd s1, 280(sp) # 8-byte Folded Spill749; ZDINX64-NEXT: sd s2, 272(sp) # 8-byte Folded Spill750; ZDINX64-NEXT: sd s3, 264(sp) # 8-byte Folded Spill751; ZDINX64-NEXT: sd s4, 256(sp) # 8-byte Folded Spill752; ZDINX64-NEXT: sd s5, 248(sp) # 8-byte Folded Spill753; ZDINX64-NEXT: sd s6, 240(sp) # 8-byte Folded Spill754; ZDINX64-NEXT: sd s7, 232(sp) # 8-byte Folded Spill755; ZDINX64-NEXT: sd s8, 224(sp) # 8-byte Folded Spill756; ZDINX64-NEXT: sd s9, 216(sp) # 8-byte Folded Spill757; ZDINX64-NEXT: sd s10, 208(sp) # 8-byte Folded Spill758; ZDINX64-NEXT: sd s11, 200(sp) # 8-byte Folded Spill759; ZDINX64-NEXT: mv t0, a0760; ZDINX64-NEXT: ld a0, 0(a0)761; ZDINX64-NEXT: sd a0, 192(sp) # 8-byte Folded Spill762; ZDINX64-NEXT: ld a0, 8(t0)763; ZDINX64-NEXT: sd a0, 184(sp) # 8-byte Folded Spill764; ZDINX64-NEXT: ld a0, 16(t0)765; ZDINX64-NEXT: sd a0, 176(sp) # 8-byte Folded Spill766; ZDINX64-NEXT: ld a0, 24(t0)767; ZDINX64-NEXT: sd a0, 168(sp) # 8-byte Folded Spill768; ZDINX64-NEXT: ld a4, 32(t0)769; ZDINX64-NEXT: ld a5, 40(t0)770; ZDINX64-NEXT: ld a6, 48(t0)771; ZDINX64-NEXT: ld a7, 56(t0)772; ZDINX64-NEXT: ld t3, 64(t0)773; ZDINX64-NEXT: ld t4, 72(t0)774; ZDINX64-NEXT: ld t5, 80(t0)775; ZDINX64-NEXT: ld t6, 88(t0)776; ZDINX64-NEXT: ld t1, 96(t0)777; ZDINX64-NEXT: ld t2, 104(t0)778; ZDINX64-NEXT: ld s0, 112(t0)779; ZDINX64-NEXT: ld s1, 120(t0)780; ZDINX64-NEXT: ld s2, 128(t0)781; ZDINX64-NEXT: ld s3, 136(t0)782; ZDINX64-NEXT: ld s4, 144(t0)783; ZDINX64-NEXT: ld s5, 152(t0)784; ZDINX64-NEXT: ld s6, 160(t0)785; ZDINX64-NEXT: ld s7, 168(t0)786; ZDINX64-NEXT: ld s8, 176(t0)787; ZDINX64-NEXT: ld s9, 184(t0)788; ZDINX64-NEXT: ld s10, 192(t0)789; ZDINX64-NEXT: ld s11, 200(t0)790; ZDINX64-NEXT: ld ra, 208(t0)791; ZDINX64-NEXT: ld a3, 216(t0)792; ZDINX64-NEXT: ld a0, 224(t0)793; ZDINX64-NEXT: ld a1, 232(t0)794; ZDINX64-NEXT: ld a2, 240(t0)795; ZDINX64-NEXT: ld t0, 248(t0)796; ZDINX64-NEXT: sd a0, 128(sp)797; ZDINX64-NEXT: sd a1, 136(sp)798; ZDINX64-NEXT: sd a2, 144(sp)799; ZDINX64-NEXT: sd t0, 152(sp)800; ZDINX64-NEXT: sd s10, 96(sp)801; ZDINX64-NEXT: sd s11, 104(sp)802; ZDINX64-NEXT: sd ra, 112(sp)803; ZDINX64-NEXT: sd a3, 120(sp)804; ZDINX64-NEXT: sd s6, 64(sp)805; ZDINX64-NEXT: sd s7, 72(sp)806; ZDINX64-NEXT: sd s8, 80(sp)807; ZDINX64-NEXT: sd s9, 88(sp)808; ZDINX64-NEXT: sd s2, 32(sp)809; ZDINX64-NEXT: sd s3, 40(sp)810; ZDINX64-NEXT: sd s4, 48(sp)811; ZDINX64-NEXT: sd s5, 56(sp)812; ZDINX64-NEXT: sd t1, 0(sp)813; ZDINX64-NEXT: sd t2, 8(sp)814; ZDINX64-NEXT: sd s0, 16(sp)815; ZDINX64-NEXT: sd s1, 24(sp)816; ZDINX64-NEXT: ld a0, 192(sp) # 8-byte Folded Reload817; ZDINX64-NEXT: ld a1, 184(sp) # 8-byte Folded Reload818; ZDINX64-NEXT: ld a2, 176(sp) # 8-byte Folded Reload819; ZDINX64-NEXT: ld a3, 168(sp) # 8-byte Folded Reload820; ZDINX64-NEXT: call callee_half_32821; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w def $x10822; ZDINX64-NEXT: lui a1, 1048560823; ZDINX64-NEXT: or a0, a0, a1824; ZDINX64-NEXT: # kill: def $x10_w killed $x10_w killed $x10825; ZDINX64-NEXT: ld ra, 296(sp) # 8-byte Folded Reload826; ZDINX64-NEXT: ld s0, 288(sp) # 8-byte Folded Reload827; ZDINX64-NEXT: ld s1, 280(sp) # 8-byte Folded Reload828; ZDINX64-NEXT: ld s2, 272(sp) # 8-byte Folded Reload829; ZDINX64-NEXT: ld s3, 264(sp) # 8-byte Folded Reload830; ZDINX64-NEXT: ld s4, 256(sp) # 8-byte Folded Reload831; ZDINX64-NEXT: ld s5, 248(sp) # 8-byte Folded Reload832; ZDINX64-NEXT: ld s6, 240(sp) # 8-byte Folded Reload833; ZDINX64-NEXT: ld s7, 232(sp) # 8-byte Folded Reload834; ZDINX64-NEXT: ld s8, 224(sp) # 8-byte Folded Reload835; ZDINX64-NEXT: ld s9, 216(sp) # 8-byte Folded Reload836; ZDINX64-NEXT: ld s10, 208(sp) # 8-byte Folded Reload837; ZDINX64-NEXT: ld s11, 200(sp) # 8-byte Folded Reload838; ZDINX64-NEXT: addi sp, sp, 304839; ZDINX64-NEXT: ret840 %C = call fastcc half @callee_half_32(<32 x half> %A)841 ret half %C842}843 844define fastcc float @callee_float_32(<32 x float> %A) nounwind {845; ZHINX32-LABEL: callee_float_32:846; ZHINX32: # %bb.0:847; ZHINX32-NEXT: ret848;849; ZHINX64-LABEL: callee_float_32:850; ZHINX64: # %bb.0:851; ZHINX64-NEXT: ret852;853; ZFINX32-LABEL: callee_float_32:854; ZFINX32: # %bb.0:855; ZFINX32-NEXT: ret856;857; ZFINX64-LABEL: callee_float_32:858; ZFINX64: # %bb.0:859; ZFINX64-NEXT: ret860;861; ZDINX32-LABEL: callee_float_32:862; ZDINX32: # %bb.0:863; ZDINX32-NEXT: ret864;865; ZDINX64-LABEL: callee_float_32:866; ZDINX64: # %bb.0:867; ZDINX64-NEXT: ret868 %B = extractelement <32 x float> %A, i32 0869 ret float %B870}871 872define float @caller_float_32(<32 x float> %A) nounwind {873; ZHINX32-LABEL: caller_float_32:874; ZHINX32: # %bb.0:875; ZHINX32-NEXT: addi sp, sp, -160876; ZHINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill877; ZHINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill878; ZHINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill879; ZHINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill880; ZHINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill881; ZHINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill882; ZHINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill883; ZHINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill884; ZHINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill885; ZHINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill886; ZHINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill887; ZHINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill888; ZHINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill889; ZHINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill890; ZHINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill891; ZHINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill892; ZHINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill893; ZHINX32-NEXT: mv a7, a3894; ZHINX32-NEXT: mv a6, a2895; ZHINX32-NEXT: mv a5, a1896; ZHINX32-NEXT: lw t3, 160(sp)897; ZHINX32-NEXT: lw t4, 164(sp)898; ZHINX32-NEXT: lw t5, 168(sp)899; ZHINX32-NEXT: lw t6, 172(sp)900; ZHINX32-NEXT: lw t0, 176(sp)901; ZHINX32-NEXT: lw t1, 180(sp)902; ZHINX32-NEXT: lw t2, 184(sp)903; ZHINX32-NEXT: lw s0, 188(sp)904; ZHINX32-NEXT: lw s1, 192(sp)905; ZHINX32-NEXT: lw s2, 196(sp)906; ZHINX32-NEXT: lw s3, 200(sp)907; ZHINX32-NEXT: lw s4, 204(sp)908; ZHINX32-NEXT: lw s5, 208(sp)909; ZHINX32-NEXT: lw s6, 212(sp)910; ZHINX32-NEXT: lw s7, 216(sp)911; ZHINX32-NEXT: lw s8, 220(sp)912; ZHINX32-NEXT: lw s9, 224(sp)913; ZHINX32-NEXT: lw s10, 228(sp)914; ZHINX32-NEXT: lw s11, 232(sp)915; ZHINX32-NEXT: lw ra, 236(sp)916; ZHINX32-NEXT: lw a1, 240(sp)917; ZHINX32-NEXT: lw a2, 244(sp)918; ZHINX32-NEXT: lw a3, 248(sp)919; ZHINX32-NEXT: lw a4, 252(sp)920; ZHINX32-NEXT: sw a1, 64(sp)921; ZHINX32-NEXT: sw a2, 68(sp)922; ZHINX32-NEXT: sw a3, 72(sp)923; ZHINX32-NEXT: sw a4, 76(sp)924; ZHINX32-NEXT: sw s9, 48(sp)925; ZHINX32-NEXT: sw s10, 52(sp)926; ZHINX32-NEXT: sw s11, 56(sp)927; ZHINX32-NEXT: sw ra, 60(sp)928; ZHINX32-NEXT: sw s5, 32(sp)929; ZHINX32-NEXT: sw s6, 36(sp)930; ZHINX32-NEXT: sw s7, 40(sp)931; ZHINX32-NEXT: sw s8, 44(sp)932; ZHINX32-NEXT: sw s1, 16(sp)933; ZHINX32-NEXT: sw s2, 20(sp)934; ZHINX32-NEXT: sw s3, 24(sp)935; ZHINX32-NEXT: sw s4, 28(sp)936; ZHINX32-NEXT: sw t0, 0(sp)937; ZHINX32-NEXT: sw t1, 4(sp)938; ZHINX32-NEXT: sw t2, 8(sp)939; ZHINX32-NEXT: sw s0, 12(sp)940; ZHINX32-NEXT: mv a1, a5941; ZHINX32-NEXT: mv a2, a6942; ZHINX32-NEXT: mv a3, a7943; ZHINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload944; ZHINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload945; ZHINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload946; ZHINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload947; ZHINX32-NEXT: call callee_float_32948; ZHINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload949; ZHINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload950; ZHINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload951; ZHINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload952; ZHINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload953; ZHINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload954; ZHINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload955; ZHINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload956; ZHINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload957; ZHINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload958; ZHINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload959; ZHINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload960; ZHINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload961; ZHINX32-NEXT: addi sp, sp, 160962; ZHINX32-NEXT: ret963;964; ZHINX64-LABEL: caller_float_32:965; ZHINX64: # %bb.0:966; ZHINX64-NEXT: addi sp, sp, -208967; ZHINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill968; ZHINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill969; ZHINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill970; ZHINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill971; ZHINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill972; ZHINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill973; ZHINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill974; ZHINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill975; ZHINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill976; ZHINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill977; ZHINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill978; ZHINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill979; ZHINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill980; ZHINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill981; ZHINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill982; ZHINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill983; ZHINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill984; ZHINX64-NEXT: mv a7, a3985; ZHINX64-NEXT: mv a6, a2986; ZHINX64-NEXT: mv a5, a1987; ZHINX64-NEXT: lw t3, 208(sp)988; ZHINX64-NEXT: lw t4, 216(sp)989; ZHINX64-NEXT: lw t5, 224(sp)990; ZHINX64-NEXT: lw t6, 232(sp)991; ZHINX64-NEXT: lw t0, 240(sp)992; ZHINX64-NEXT: lw t1, 248(sp)993; ZHINX64-NEXT: lw t2, 256(sp)994; ZHINX64-NEXT: lw s0, 264(sp)995; ZHINX64-NEXT: lw s1, 272(sp)996; ZHINX64-NEXT: lw s2, 280(sp)997; ZHINX64-NEXT: lw s3, 288(sp)998; ZHINX64-NEXT: lw s4, 296(sp)999; ZHINX64-NEXT: lw s5, 304(sp)1000; ZHINX64-NEXT: lw s6, 312(sp)1001; ZHINX64-NEXT: lw s7, 320(sp)1002; ZHINX64-NEXT: lw s8, 328(sp)1003; ZHINX64-NEXT: lw s9, 336(sp)1004; ZHINX64-NEXT: lw s10, 344(sp)1005; ZHINX64-NEXT: lw s11, 352(sp)1006; ZHINX64-NEXT: lw ra, 360(sp)1007; ZHINX64-NEXT: lw a1, 368(sp)1008; ZHINX64-NEXT: lw a2, 376(sp)1009; ZHINX64-NEXT: lw a3, 384(sp)1010; ZHINX64-NEXT: lw a4, 392(sp)1011; ZHINX64-NEXT: sw a1, 64(sp)1012; ZHINX64-NEXT: sw a2, 68(sp)1013; ZHINX64-NEXT: sw a3, 72(sp)1014; ZHINX64-NEXT: sw a4, 76(sp)1015; ZHINX64-NEXT: sw s9, 48(sp)1016; ZHINX64-NEXT: sw s10, 52(sp)1017; ZHINX64-NEXT: sw s11, 56(sp)1018; ZHINX64-NEXT: sw ra, 60(sp)1019; ZHINX64-NEXT: sw s5, 32(sp)1020; ZHINX64-NEXT: sw s6, 36(sp)1021; ZHINX64-NEXT: sw s7, 40(sp)1022; ZHINX64-NEXT: sw s8, 44(sp)1023; ZHINX64-NEXT: sw s1, 16(sp)1024; ZHINX64-NEXT: sw s2, 20(sp)1025; ZHINX64-NEXT: sw s3, 24(sp)1026; ZHINX64-NEXT: sw s4, 28(sp)1027; ZHINX64-NEXT: sw t0, 0(sp)1028; ZHINX64-NEXT: sw t1, 4(sp)1029; ZHINX64-NEXT: sw t2, 8(sp)1030; ZHINX64-NEXT: sw s0, 12(sp)1031; ZHINX64-NEXT: mv a1, a51032; ZHINX64-NEXT: mv a2, a61033; ZHINX64-NEXT: mv a3, a71034; ZHINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload1035; ZHINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload1036; ZHINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload1037; ZHINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload1038; ZHINX64-NEXT: call callee_float_321039; ZHINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload1040; ZHINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload1041; ZHINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload1042; ZHINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload1043; ZHINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload1044; ZHINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload1045; ZHINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload1046; ZHINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload1047; ZHINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload1048; ZHINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload1049; ZHINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload1050; ZHINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload1051; ZHINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload1052; ZHINX64-NEXT: addi sp, sp, 2081053; ZHINX64-NEXT: ret1054;1055; ZFINX32-LABEL: caller_float_32:1056; ZFINX32: # %bb.0:1057; ZFINX32-NEXT: addi sp, sp, -1601058; ZFINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill1059; ZFINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill1060; ZFINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill1061; ZFINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill1062; ZFINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill1063; ZFINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill1064; ZFINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill1065; ZFINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill1066; ZFINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill1067; ZFINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill1068; ZFINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill1069; ZFINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill1070; ZFINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill1071; ZFINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill1072; ZFINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill1073; ZFINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill1074; ZFINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill1075; ZFINX32-NEXT: mv a7, a31076; ZFINX32-NEXT: mv a6, a21077; ZFINX32-NEXT: mv a5, a11078; ZFINX32-NEXT: lw t3, 160(sp)1079; ZFINX32-NEXT: lw t4, 164(sp)1080; ZFINX32-NEXT: lw t5, 168(sp)1081; ZFINX32-NEXT: lw t6, 172(sp)1082; ZFINX32-NEXT: lw t0, 176(sp)1083; ZFINX32-NEXT: lw t1, 180(sp)1084; ZFINX32-NEXT: lw t2, 184(sp)1085; ZFINX32-NEXT: lw s0, 188(sp)1086; ZFINX32-NEXT: lw s1, 192(sp)1087; ZFINX32-NEXT: lw s2, 196(sp)1088; ZFINX32-NEXT: lw s3, 200(sp)1089; ZFINX32-NEXT: lw s4, 204(sp)1090; ZFINX32-NEXT: lw s5, 208(sp)1091; ZFINX32-NEXT: lw s6, 212(sp)1092; ZFINX32-NEXT: lw s7, 216(sp)1093; ZFINX32-NEXT: lw s8, 220(sp)1094; ZFINX32-NEXT: lw s9, 224(sp)1095; ZFINX32-NEXT: lw s10, 228(sp)1096; ZFINX32-NEXT: lw s11, 232(sp)1097; ZFINX32-NEXT: lw ra, 236(sp)1098; ZFINX32-NEXT: lw a1, 240(sp)1099; ZFINX32-NEXT: lw a2, 244(sp)1100; ZFINX32-NEXT: lw a3, 248(sp)1101; ZFINX32-NEXT: lw a4, 252(sp)1102; ZFINX32-NEXT: sw a1, 64(sp)1103; ZFINX32-NEXT: sw a2, 68(sp)1104; ZFINX32-NEXT: sw a3, 72(sp)1105; ZFINX32-NEXT: sw a4, 76(sp)1106; ZFINX32-NEXT: sw s9, 48(sp)1107; ZFINX32-NEXT: sw s10, 52(sp)1108; ZFINX32-NEXT: sw s11, 56(sp)1109; ZFINX32-NEXT: sw ra, 60(sp)1110; ZFINX32-NEXT: sw s5, 32(sp)1111; ZFINX32-NEXT: sw s6, 36(sp)1112; ZFINX32-NEXT: sw s7, 40(sp)1113; ZFINX32-NEXT: sw s8, 44(sp)1114; ZFINX32-NEXT: sw s1, 16(sp)1115; ZFINX32-NEXT: sw s2, 20(sp)1116; ZFINX32-NEXT: sw s3, 24(sp)1117; ZFINX32-NEXT: sw s4, 28(sp)1118; ZFINX32-NEXT: sw t0, 0(sp)1119; ZFINX32-NEXT: sw t1, 4(sp)1120; ZFINX32-NEXT: sw t2, 8(sp)1121; ZFINX32-NEXT: sw s0, 12(sp)1122; ZFINX32-NEXT: mv a1, a51123; ZFINX32-NEXT: mv a2, a61124; ZFINX32-NEXT: mv a3, a71125; ZFINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload1126; ZFINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload1127; ZFINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload1128; ZFINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload1129; ZFINX32-NEXT: call callee_float_321130; ZFINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload1131; ZFINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload1132; ZFINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload1133; ZFINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload1134; ZFINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload1135; ZFINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload1136; ZFINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload1137; ZFINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload1138; ZFINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload1139; ZFINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload1140; ZFINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload1141; ZFINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload1142; ZFINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload1143; ZFINX32-NEXT: addi sp, sp, 1601144; ZFINX32-NEXT: ret1145;1146; ZFINX64-LABEL: caller_float_32:1147; ZFINX64: # %bb.0:1148; ZFINX64-NEXT: addi sp, sp, -2081149; ZFINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill1150; ZFINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill1151; ZFINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill1152; ZFINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill1153; ZFINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill1154; ZFINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill1155; ZFINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill1156; ZFINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill1157; ZFINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill1158; ZFINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill1159; ZFINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill1160; ZFINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill1161; ZFINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill1162; ZFINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill1163; ZFINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill1164; ZFINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill1165; ZFINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill1166; ZFINX64-NEXT: mv a7, a31167; ZFINX64-NEXT: mv a6, a21168; ZFINX64-NEXT: mv a5, a11169; ZFINX64-NEXT: lw t3, 208(sp)1170; ZFINX64-NEXT: lw t4, 216(sp)1171; ZFINX64-NEXT: lw t5, 224(sp)1172; ZFINX64-NEXT: lw t6, 232(sp)1173; ZFINX64-NEXT: lw t0, 240(sp)1174; ZFINX64-NEXT: lw t1, 248(sp)1175; ZFINX64-NEXT: lw t2, 256(sp)1176; ZFINX64-NEXT: lw s0, 264(sp)1177; ZFINX64-NEXT: lw s1, 272(sp)1178; ZFINX64-NEXT: lw s2, 280(sp)1179; ZFINX64-NEXT: lw s3, 288(sp)1180; ZFINX64-NEXT: lw s4, 296(sp)1181; ZFINX64-NEXT: lw s5, 304(sp)1182; ZFINX64-NEXT: lw s6, 312(sp)1183; ZFINX64-NEXT: lw s7, 320(sp)1184; ZFINX64-NEXT: lw s8, 328(sp)1185; ZFINX64-NEXT: lw s9, 336(sp)1186; ZFINX64-NEXT: lw s10, 344(sp)1187; ZFINX64-NEXT: lw s11, 352(sp)1188; ZFINX64-NEXT: lw ra, 360(sp)1189; ZFINX64-NEXT: lw a1, 368(sp)1190; ZFINX64-NEXT: lw a2, 376(sp)1191; ZFINX64-NEXT: lw a3, 384(sp)1192; ZFINX64-NEXT: lw a4, 392(sp)1193; ZFINX64-NEXT: sw a1, 64(sp)1194; ZFINX64-NEXT: sw a2, 68(sp)1195; ZFINX64-NEXT: sw a3, 72(sp)1196; ZFINX64-NEXT: sw a4, 76(sp)1197; ZFINX64-NEXT: sw s9, 48(sp)1198; ZFINX64-NEXT: sw s10, 52(sp)1199; ZFINX64-NEXT: sw s11, 56(sp)1200; ZFINX64-NEXT: sw ra, 60(sp)1201; ZFINX64-NEXT: sw s5, 32(sp)1202; ZFINX64-NEXT: sw s6, 36(sp)1203; ZFINX64-NEXT: sw s7, 40(sp)1204; ZFINX64-NEXT: sw s8, 44(sp)1205; ZFINX64-NEXT: sw s1, 16(sp)1206; ZFINX64-NEXT: sw s2, 20(sp)1207; ZFINX64-NEXT: sw s3, 24(sp)1208; ZFINX64-NEXT: sw s4, 28(sp)1209; ZFINX64-NEXT: sw t0, 0(sp)1210; ZFINX64-NEXT: sw t1, 4(sp)1211; ZFINX64-NEXT: sw t2, 8(sp)1212; ZFINX64-NEXT: sw s0, 12(sp)1213; ZFINX64-NEXT: mv a1, a51214; ZFINX64-NEXT: mv a2, a61215; ZFINX64-NEXT: mv a3, a71216; ZFINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload1217; ZFINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload1218; ZFINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload1219; ZFINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload1220; ZFINX64-NEXT: call callee_float_321221; ZFINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload1222; ZFINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload1223; ZFINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload1224; ZFINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload1225; ZFINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload1226; ZFINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload1227; ZFINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload1228; ZFINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload1229; ZFINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload1230; ZFINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload1231; ZFINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload1232; ZFINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload1233; ZFINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload1234; ZFINX64-NEXT: addi sp, sp, 2081235; ZFINX64-NEXT: ret1236;1237; ZDINX32-LABEL: caller_float_32:1238; ZDINX32: # %bb.0:1239; ZDINX32-NEXT: addi sp, sp, -1601240; ZDINX32-NEXT: sw ra, 156(sp) # 4-byte Folded Spill1241; ZDINX32-NEXT: sw s0, 152(sp) # 4-byte Folded Spill1242; ZDINX32-NEXT: sw s1, 148(sp) # 4-byte Folded Spill1243; ZDINX32-NEXT: sw s2, 144(sp) # 4-byte Folded Spill1244; ZDINX32-NEXT: sw s3, 140(sp) # 4-byte Folded Spill1245; ZDINX32-NEXT: sw s4, 136(sp) # 4-byte Folded Spill1246; ZDINX32-NEXT: sw s5, 132(sp) # 4-byte Folded Spill1247; ZDINX32-NEXT: sw s6, 128(sp) # 4-byte Folded Spill1248; ZDINX32-NEXT: sw s7, 124(sp) # 4-byte Folded Spill1249; ZDINX32-NEXT: sw s8, 120(sp) # 4-byte Folded Spill1250; ZDINX32-NEXT: sw s9, 116(sp) # 4-byte Folded Spill1251; ZDINX32-NEXT: sw s10, 112(sp) # 4-byte Folded Spill1252; ZDINX32-NEXT: sw s11, 108(sp) # 4-byte Folded Spill1253; ZDINX32-NEXT: sw a7, 104(sp) # 4-byte Folded Spill1254; ZDINX32-NEXT: sw a6, 100(sp) # 4-byte Folded Spill1255; ZDINX32-NEXT: sw a5, 96(sp) # 4-byte Folded Spill1256; ZDINX32-NEXT: sw a4, 92(sp) # 4-byte Folded Spill1257; ZDINX32-NEXT: mv a7, a31258; ZDINX32-NEXT: mv a6, a21259; ZDINX32-NEXT: mv a5, a11260; ZDINX32-NEXT: lw t3, 160(sp)1261; ZDINX32-NEXT: lw t4, 164(sp)1262; ZDINX32-NEXT: lw t5, 168(sp)1263; ZDINX32-NEXT: lw t6, 172(sp)1264; ZDINX32-NEXT: lw t0, 176(sp)1265; ZDINX32-NEXT: lw t1, 180(sp)1266; ZDINX32-NEXT: lw t2, 184(sp)1267; ZDINX32-NEXT: lw s0, 188(sp)1268; ZDINX32-NEXT: lw s1, 192(sp)1269; ZDINX32-NEXT: lw s2, 196(sp)1270; ZDINX32-NEXT: lw s3, 200(sp)1271; ZDINX32-NEXT: lw s4, 204(sp)1272; ZDINX32-NEXT: lw s5, 208(sp)1273; ZDINX32-NEXT: lw s6, 212(sp)1274; ZDINX32-NEXT: lw s7, 216(sp)1275; ZDINX32-NEXT: lw s8, 220(sp)1276; ZDINX32-NEXT: lw s9, 224(sp)1277; ZDINX32-NEXT: lw s10, 228(sp)1278; ZDINX32-NEXT: lw s11, 232(sp)1279; ZDINX32-NEXT: lw ra, 236(sp)1280; ZDINX32-NEXT: lw a1, 240(sp)1281; ZDINX32-NEXT: lw a2, 244(sp)1282; ZDINX32-NEXT: lw a3, 248(sp)1283; ZDINX32-NEXT: lw a4, 252(sp)1284; ZDINX32-NEXT: sw a1, 64(sp)1285; ZDINX32-NEXT: sw a2, 68(sp)1286; ZDINX32-NEXT: sw a3, 72(sp)1287; ZDINX32-NEXT: sw a4, 76(sp)1288; ZDINX32-NEXT: sw s9, 48(sp)1289; ZDINX32-NEXT: sw s10, 52(sp)1290; ZDINX32-NEXT: sw s11, 56(sp)1291; ZDINX32-NEXT: sw ra, 60(sp)1292; ZDINX32-NEXT: sw s5, 32(sp)1293; ZDINX32-NEXT: sw s6, 36(sp)1294; ZDINX32-NEXT: sw s7, 40(sp)1295; ZDINX32-NEXT: sw s8, 44(sp)1296; ZDINX32-NEXT: sw s1, 16(sp)1297; ZDINX32-NEXT: sw s2, 20(sp)1298; ZDINX32-NEXT: sw s3, 24(sp)1299; ZDINX32-NEXT: sw s4, 28(sp)1300; ZDINX32-NEXT: sw t0, 0(sp)1301; ZDINX32-NEXT: sw t1, 4(sp)1302; ZDINX32-NEXT: sw t2, 8(sp)1303; ZDINX32-NEXT: sw s0, 12(sp)1304; ZDINX32-NEXT: mv a1, a51305; ZDINX32-NEXT: mv a2, a61306; ZDINX32-NEXT: mv a3, a71307; ZDINX32-NEXT: lw a4, 92(sp) # 4-byte Folded Reload1308; ZDINX32-NEXT: lw a5, 96(sp) # 4-byte Folded Reload1309; ZDINX32-NEXT: lw a6, 100(sp) # 4-byte Folded Reload1310; ZDINX32-NEXT: lw a7, 104(sp) # 4-byte Folded Reload1311; ZDINX32-NEXT: call callee_float_321312; ZDINX32-NEXT: lw ra, 156(sp) # 4-byte Folded Reload1313; ZDINX32-NEXT: lw s0, 152(sp) # 4-byte Folded Reload1314; ZDINX32-NEXT: lw s1, 148(sp) # 4-byte Folded Reload1315; ZDINX32-NEXT: lw s2, 144(sp) # 4-byte Folded Reload1316; ZDINX32-NEXT: lw s3, 140(sp) # 4-byte Folded Reload1317; ZDINX32-NEXT: lw s4, 136(sp) # 4-byte Folded Reload1318; ZDINX32-NEXT: lw s5, 132(sp) # 4-byte Folded Reload1319; ZDINX32-NEXT: lw s6, 128(sp) # 4-byte Folded Reload1320; ZDINX32-NEXT: lw s7, 124(sp) # 4-byte Folded Reload1321; ZDINX32-NEXT: lw s8, 120(sp) # 4-byte Folded Reload1322; ZDINX32-NEXT: lw s9, 116(sp) # 4-byte Folded Reload1323; ZDINX32-NEXT: lw s10, 112(sp) # 4-byte Folded Reload1324; ZDINX32-NEXT: lw s11, 108(sp) # 4-byte Folded Reload1325; ZDINX32-NEXT: addi sp, sp, 1601326; ZDINX32-NEXT: ret1327;1328; ZDINX64-LABEL: caller_float_32:1329; ZDINX64: # %bb.0:1330; ZDINX64-NEXT: addi sp, sp, -2081331; ZDINX64-NEXT: sd ra, 200(sp) # 8-byte Folded Spill1332; ZDINX64-NEXT: sd s0, 192(sp) # 8-byte Folded Spill1333; ZDINX64-NEXT: sd s1, 184(sp) # 8-byte Folded Spill1334; ZDINX64-NEXT: sd s2, 176(sp) # 8-byte Folded Spill1335; ZDINX64-NEXT: sd s3, 168(sp) # 8-byte Folded Spill1336; ZDINX64-NEXT: sd s4, 160(sp) # 8-byte Folded Spill1337; ZDINX64-NEXT: sd s5, 152(sp) # 8-byte Folded Spill1338; ZDINX64-NEXT: sd s6, 144(sp) # 8-byte Folded Spill1339; ZDINX64-NEXT: sd s7, 136(sp) # 8-byte Folded Spill1340; ZDINX64-NEXT: sd s8, 128(sp) # 8-byte Folded Spill1341; ZDINX64-NEXT: sd s9, 120(sp) # 8-byte Folded Spill1342; ZDINX64-NEXT: sd s10, 112(sp) # 8-byte Folded Spill1343; ZDINX64-NEXT: sd s11, 104(sp) # 8-byte Folded Spill1344; ZDINX64-NEXT: sw a7, 100(sp) # 4-byte Folded Spill1345; ZDINX64-NEXT: sw a6, 96(sp) # 4-byte Folded Spill1346; ZDINX64-NEXT: sw a5, 92(sp) # 4-byte Folded Spill1347; ZDINX64-NEXT: sw a4, 88(sp) # 4-byte Folded Spill1348; ZDINX64-NEXT: mv a7, a31349; ZDINX64-NEXT: mv a6, a21350; ZDINX64-NEXT: mv a5, a11351; ZDINX64-NEXT: lw t3, 208(sp)1352; ZDINX64-NEXT: lw t4, 216(sp)1353; ZDINX64-NEXT: lw t5, 224(sp)1354; ZDINX64-NEXT: lw t6, 232(sp)1355; ZDINX64-NEXT: lw t0, 240(sp)1356; ZDINX64-NEXT: lw t1, 248(sp)1357; ZDINX64-NEXT: lw t2, 256(sp)1358; ZDINX64-NEXT: lw s0, 264(sp)1359; ZDINX64-NEXT: lw s1, 272(sp)1360; ZDINX64-NEXT: lw s2, 280(sp)1361; ZDINX64-NEXT: lw s3, 288(sp)1362; ZDINX64-NEXT: lw s4, 296(sp)1363; ZDINX64-NEXT: lw s5, 304(sp)1364; ZDINX64-NEXT: lw s6, 312(sp)1365; ZDINX64-NEXT: lw s7, 320(sp)1366; ZDINX64-NEXT: lw s8, 328(sp)1367; ZDINX64-NEXT: lw s9, 336(sp)1368; ZDINX64-NEXT: lw s10, 344(sp)1369; ZDINX64-NEXT: lw s11, 352(sp)1370; ZDINX64-NEXT: lw ra, 360(sp)1371; ZDINX64-NEXT: lw a1, 368(sp)1372; ZDINX64-NEXT: lw a2, 376(sp)1373; ZDINX64-NEXT: lw a3, 384(sp)1374; ZDINX64-NEXT: lw a4, 392(sp)1375; ZDINX64-NEXT: sw a1, 64(sp)1376; ZDINX64-NEXT: sw a2, 68(sp)1377; ZDINX64-NEXT: sw a3, 72(sp)1378; ZDINX64-NEXT: sw a4, 76(sp)1379; ZDINX64-NEXT: sw s9, 48(sp)1380; ZDINX64-NEXT: sw s10, 52(sp)1381; ZDINX64-NEXT: sw s11, 56(sp)1382; ZDINX64-NEXT: sw ra, 60(sp)1383; ZDINX64-NEXT: sw s5, 32(sp)1384; ZDINX64-NEXT: sw s6, 36(sp)1385; ZDINX64-NEXT: sw s7, 40(sp)1386; ZDINX64-NEXT: sw s8, 44(sp)1387; ZDINX64-NEXT: sw s1, 16(sp)1388; ZDINX64-NEXT: sw s2, 20(sp)1389; ZDINX64-NEXT: sw s3, 24(sp)1390; ZDINX64-NEXT: sw s4, 28(sp)1391; ZDINX64-NEXT: sw t0, 0(sp)1392; ZDINX64-NEXT: sw t1, 4(sp)1393; ZDINX64-NEXT: sw t2, 8(sp)1394; ZDINX64-NEXT: sw s0, 12(sp)1395; ZDINX64-NEXT: mv a1, a51396; ZDINX64-NEXT: mv a2, a61397; ZDINX64-NEXT: mv a3, a71398; ZDINX64-NEXT: lw a4, 88(sp) # 4-byte Folded Reload1399; ZDINX64-NEXT: lw a5, 92(sp) # 4-byte Folded Reload1400; ZDINX64-NEXT: lw a6, 96(sp) # 4-byte Folded Reload1401; ZDINX64-NEXT: lw a7, 100(sp) # 4-byte Folded Reload1402; ZDINX64-NEXT: call callee_float_321403; ZDINX64-NEXT: ld ra, 200(sp) # 8-byte Folded Reload1404; ZDINX64-NEXT: ld s0, 192(sp) # 8-byte Folded Reload1405; ZDINX64-NEXT: ld s1, 184(sp) # 8-byte Folded Reload1406; ZDINX64-NEXT: ld s2, 176(sp) # 8-byte Folded Reload1407; ZDINX64-NEXT: ld s3, 168(sp) # 8-byte Folded Reload1408; ZDINX64-NEXT: ld s4, 160(sp) # 8-byte Folded Reload1409; ZDINX64-NEXT: ld s5, 152(sp) # 8-byte Folded Reload1410; ZDINX64-NEXT: ld s6, 144(sp) # 8-byte Folded Reload1411; ZDINX64-NEXT: ld s7, 136(sp) # 8-byte Folded Reload1412; ZDINX64-NEXT: ld s8, 128(sp) # 8-byte Folded Reload1413; ZDINX64-NEXT: ld s9, 120(sp) # 8-byte Folded Reload1414; ZDINX64-NEXT: ld s10, 112(sp) # 8-byte Folded Reload1415; ZDINX64-NEXT: ld s11, 104(sp) # 8-byte Folded Reload1416; ZDINX64-NEXT: addi sp, sp, 2081417; ZDINX64-NEXT: ret1418 %C = call fastcc float @callee_float_32(<32 x float> %A)1419 ret float %C1420}1421 1422define fastcc double @callee_double_32(<32 x double> %A) nounwind {1423; ZHINX32-LABEL: callee_double_32:1424; ZHINX32: # %bb.0:1425; ZHINX32-NEXT: ret1426;1427; ZHINX64-LABEL: callee_double_32:1428; ZHINX64: # %bb.0:1429; ZHINX64-NEXT: ret1430;1431; ZFINX32-LABEL: callee_double_32:1432; ZFINX32: # %bb.0:1433; ZFINX32-NEXT: ret1434;1435; ZFINX64-LABEL: callee_double_32:1436; ZFINX64: # %bb.0:1437; ZFINX64-NEXT: ret1438;1439; ZDINX32-LABEL: callee_double_32:1440; ZDINX32: # %bb.0:1441; ZDINX32-NEXT: lw a0, 0(sp)1442; ZDINX32-NEXT: lw a1, 4(sp)1443; ZDINX32-NEXT: ret1444;1445; ZDINX64-LABEL: callee_double_32:1446; ZDINX64: # %bb.0:1447; ZDINX64-NEXT: ret1448 %B = extractelement <32 x double> %A, i32 01449 ret double %B1450}1451