1*20957d20SQiu Chaofan; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 2*20957d20SQiu Chaofan; RUN: llc -verify-machineinstrs -mtriple=powerpc-ibm-aix -mcpu=pwr7 < %s | FileCheck %s -check-prefix=32BIT 3*20957d20SQiu Chaofan; RUN: llc -verify-machineinstrs -mtriple=powerpc64-ibm-aix -mcpu=pwr7 < %s | FileCheck %s -check-prefix=64BIT 4*20957d20SQiu Chaofan 5*20957d20SQiu Chaofandefine void @i64_join(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64 %g, i64 %h, i64 %i, i64 %j) #0 { 6*20957d20SQiu Chaofan; 32BIT-LABEL: i64_join: 7*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 8*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 9*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 10*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 11*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 116(1) 12*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 112(1) 13*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 108(1) 14*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 104(1) 15*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 100(1) 16*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 96(1) 17*20957d20SQiu Chaofan; 32BIT-NEXT: stw 4, 92(1) 18*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 88(1) 19*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 20*20957d20SQiu Chaofan; 32BIT-NEXT: nop 21*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 22*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 23*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 24*20957d20SQiu Chaofan; 32BIT-NEXT: blr 25*20957d20SQiu Chaofan; 26*20957d20SQiu Chaofan; 64BIT-LABEL: i64_join: 27*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 28*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 29*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 30*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 31*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 216(1) 32*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 208(1) 33*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 200(1) 34*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 192(1) 35*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 184(1) 36*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 176(1) 37*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 168(1) 38*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 160(1) 39*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 40*20957d20SQiu Chaofan; 64BIT-NEXT: nop 41*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 42*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 43*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 44*20957d20SQiu Chaofan; 64BIT-NEXT: blr 45*20957d20SQiu Chaofanentry: 46*20957d20SQiu Chaofan %add = add nsw i64 %b, %a 47*20957d20SQiu Chaofan %add1 = add nsw i64 %add, %c 48*20957d20SQiu Chaofan %add2 = add nsw i64 %add1, %d 49*20957d20SQiu Chaofan %add3 = add nsw i64 %add2, %e 50*20957d20SQiu Chaofan %add4 = add nsw i64 %add3, %f 51*20957d20SQiu Chaofan %add5 = add nsw i64 %add4, %g 52*20957d20SQiu Chaofan %add6 = add nsw i64 %add5, %h 53*20957d20SQiu Chaofan %add7 = add nsw i64 %add6, %i 54*20957d20SQiu Chaofan %add8 = add nsw i64 %add7, %j 55*20957d20SQiu Chaofan tail call void @foo() 56*20957d20SQiu Chaofan ret void 57*20957d20SQiu Chaofan} 58*20957d20SQiu Chaofan 59*20957d20SQiu Chaofandefine void @i64_join_missing(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64 %g, i64 %h, i64 %i, i64 %j) #0 { 60*20957d20SQiu Chaofan; 32BIT-LABEL: i64_join_missing: 61*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 62*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 63*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 64*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 65*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 116(1) 66*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 112(1) 67*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 108(1) 68*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 104(1) 69*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 100(1) 70*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 96(1) 71*20957d20SQiu Chaofan; 32BIT-NEXT: stw 4, 92(1) 72*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 88(1) 73*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 74*20957d20SQiu Chaofan; 32BIT-NEXT: nop 75*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 76*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 77*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 78*20957d20SQiu Chaofan; 32BIT-NEXT: blr 79*20957d20SQiu Chaofan; 80*20957d20SQiu Chaofan; 64BIT-LABEL: i64_join_missing: 81*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 82*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 83*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 84*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 85*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 216(1) 86*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 208(1) 87*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 200(1) 88*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 192(1) 89*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 184(1) 90*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 176(1) 91*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 168(1) 92*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 160(1) 93*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 94*20957d20SQiu Chaofan; 64BIT-NEXT: nop 95*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 96*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 97*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 98*20957d20SQiu Chaofan; 64BIT-NEXT: blr 99*20957d20SQiu Chaofanentry: 100*20957d20SQiu Chaofan %add1 = mul nsw i64 %a, 3 101*20957d20SQiu Chaofan %add2 = add nsw i64 %add1, %d 102*20957d20SQiu Chaofan %add3 = add nsw i64 %add2, %e 103*20957d20SQiu Chaofan %add4 = add nsw i64 %add3, %f 104*20957d20SQiu Chaofan %add5 = add nsw i64 %add4, %g 105*20957d20SQiu Chaofan %add6 = add nsw i64 %add5, %h 106*20957d20SQiu Chaofan %add7 = add nsw i64 %add6, %i 107*20957d20SQiu Chaofan %add8 = add nsw i64 %add7, %j 108*20957d20SQiu Chaofan tail call void @foo() 109*20957d20SQiu Chaofan ret void 110*20957d20SQiu Chaofan} 111*20957d20SQiu Chaofan 112*20957d20SQiu Chaofandefine void @i32_join(i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d, i32 signext %e, i32 signext %f, i32 signext %g, i32 signext %h, i32 signext %i, i32 signext %j) #0 { 113*20957d20SQiu Chaofan; 32BIT-LABEL: i32_join: 114*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 115*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 116*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 117*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 118*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 116(1) 119*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 112(1) 120*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 108(1) 121*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 104(1) 122*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 100(1) 123*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 96(1) 124*20957d20SQiu Chaofan; 32BIT-NEXT: stw 4, 92(1) 125*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 88(1) 126*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 127*20957d20SQiu Chaofan; 32BIT-NEXT: nop 128*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 129*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 130*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 131*20957d20SQiu Chaofan; 32BIT-NEXT: blr 132*20957d20SQiu Chaofan; 133*20957d20SQiu Chaofan; 64BIT-LABEL: i32_join: 134*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 135*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 136*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 137*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 138*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 216(1) 139*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 208(1) 140*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 200(1) 141*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 192(1) 142*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 184(1) 143*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 176(1) 144*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 168(1) 145*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 160(1) 146*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 147*20957d20SQiu Chaofan; 64BIT-NEXT: nop 148*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 149*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 150*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 151*20957d20SQiu Chaofan; 64BIT-NEXT: blr 152*20957d20SQiu Chaofanentry: 153*20957d20SQiu Chaofan %add = add nsw i32 %b, %a 154*20957d20SQiu Chaofan %add1 = add nsw i32 %add, %c 155*20957d20SQiu Chaofan %add2 = add nsw i32 %add1, %d 156*20957d20SQiu Chaofan %add3 = add nsw i32 %add2, %e 157*20957d20SQiu Chaofan %add4 = add nsw i32 %add3, %f 158*20957d20SQiu Chaofan %add5 = add nsw i32 %add4, %g 159*20957d20SQiu Chaofan %add6 = add nsw i32 %add5, %h 160*20957d20SQiu Chaofan %add7 = add nsw i32 %add6, %i 161*20957d20SQiu Chaofan %add8 = add nsw i32 %add7, %j 162*20957d20SQiu Chaofan tail call void @foo() 163*20957d20SQiu Chaofan ret void 164*20957d20SQiu Chaofan} 165*20957d20SQiu Chaofan 166*20957d20SQiu Chaofandefine void @i32_join_missing(i32 signext %a, i32 signext %b, i32 signext %c, i32 signext %d, i32 signext %e, i32 signext %f, i32 signext %g, i32 signext %h, i32 signext %i, i32 signext %j) #0 { 167*20957d20SQiu Chaofan; 32BIT-LABEL: i32_join_missing: 168*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 169*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 170*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 171*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 172*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 116(1) 173*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 112(1) 174*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 108(1) 175*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 104(1) 176*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 100(1) 177*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 96(1) 178*20957d20SQiu Chaofan; 32BIT-NEXT: stw 4, 92(1) 179*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 88(1) 180*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 181*20957d20SQiu Chaofan; 32BIT-NEXT: nop 182*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 183*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 184*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 185*20957d20SQiu Chaofan; 32BIT-NEXT: blr 186*20957d20SQiu Chaofan; 187*20957d20SQiu Chaofan; 64BIT-LABEL: i32_join_missing: 188*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 189*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 190*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 191*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 192*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 216(1) 193*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 208(1) 194*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 200(1) 195*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 192(1) 196*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 184(1) 197*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 176(1) 198*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 168(1) 199*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 160(1) 200*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 201*20957d20SQiu Chaofan; 64BIT-NEXT: nop 202*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 203*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 204*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 205*20957d20SQiu Chaofan; 64BIT-NEXT: blr 206*20957d20SQiu Chaofanentry: 207*20957d20SQiu Chaofan %add1 = mul nsw i32 %a, 3 208*20957d20SQiu Chaofan %add2 = add nsw i32 %add1, %d 209*20957d20SQiu Chaofan %add3 = add nsw i32 %add2, %e 210*20957d20SQiu Chaofan %add4 = add nsw i32 %add3, %f 211*20957d20SQiu Chaofan %add5 = add nsw i32 %add4, %g 212*20957d20SQiu Chaofan %add6 = add nsw i32 %add5, %h 213*20957d20SQiu Chaofan %add7 = add nsw i32 %add6, %i 214*20957d20SQiu Chaofan %add8 = add nsw i32 %add7, %j 215*20957d20SQiu Chaofan tail call void @foo() 216*20957d20SQiu Chaofan ret void 217*20957d20SQiu Chaofan} 218*20957d20SQiu Chaofan 219*20957d20SQiu Chaofandefine void @f32_join(float %a, float %b, float %c, float %d, float %e, float %f, float %g, float %h, float %i, float %j) #0 { 220*20957d20SQiu Chaofan; 32BIT-LABEL: f32_join: 221*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 222*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 223*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 224*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 225*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 10, 124(1) 226*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 9, 120(1) 227*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 8, 116(1) 228*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 7, 112(1) 229*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 6, 108(1) 230*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 5, 104(1) 231*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 4, 100(1) 232*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 3, 96(1) 233*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 2, 92(1) 234*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 1, 88(1) 235*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 236*20957d20SQiu Chaofan; 32BIT-NEXT: nop 237*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 238*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 239*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 240*20957d20SQiu Chaofan; 32BIT-NEXT: blr 241*20957d20SQiu Chaofan; 242*20957d20SQiu Chaofan; 64BIT-LABEL: f32_join: 243*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 244*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 245*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 246*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 247*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 10, 232(1) 248*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 9, 224(1) 249*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 8, 216(1) 250*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 7, 208(1) 251*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 6, 200(1) 252*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 5, 192(1) 253*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 4, 184(1) 254*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 3, 176(1) 255*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 2, 168(1) 256*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 1, 160(1) 257*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 258*20957d20SQiu Chaofan; 64BIT-NEXT: nop 259*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 260*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 261*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 262*20957d20SQiu Chaofan; 64BIT-NEXT: blr 263*20957d20SQiu Chaofanentry: 264*20957d20SQiu Chaofan %add = fadd float %a, %b 265*20957d20SQiu Chaofan %add1 = fadd float %add, %c 266*20957d20SQiu Chaofan %add2 = fadd float %add1, %d 267*20957d20SQiu Chaofan %add3 = fadd float %add2, %e 268*20957d20SQiu Chaofan %add4 = fadd float %add3, %f 269*20957d20SQiu Chaofan %add5 = fadd float %add4, %g 270*20957d20SQiu Chaofan %add6 = fadd float %add5, %h 271*20957d20SQiu Chaofan %add7 = fadd float %add6, %i 272*20957d20SQiu Chaofan %add8 = fadd float %add7, %j 273*20957d20SQiu Chaofan tail call void @foo() 274*20957d20SQiu Chaofan ret void 275*20957d20SQiu Chaofan} 276*20957d20SQiu Chaofan 277*20957d20SQiu Chaofandefine void @f32_join_missing(float %a, float %b, float %c, float %d, float %e, float %f, float %g, float %h, float %i, float %j) #0 { 278*20957d20SQiu Chaofan; 32BIT-LABEL: f32_join_missing: 279*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 280*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 281*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 282*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 283*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 10, 124(1) 284*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 9, 120(1) 285*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 8, 116(1) 286*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 7, 112(1) 287*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 6, 108(1) 288*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 5, 104(1) 289*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 4, 100(1) 290*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 3, 96(1) 291*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 2, 92(1) 292*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 1, 88(1) 293*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 294*20957d20SQiu Chaofan; 32BIT-NEXT: nop 295*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 296*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 297*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 298*20957d20SQiu Chaofan; 32BIT-NEXT: blr 299*20957d20SQiu Chaofan; 300*20957d20SQiu Chaofan; 64BIT-LABEL: f32_join_missing: 301*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 302*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 303*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 304*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 305*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 10, 232(1) 306*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 9, 224(1) 307*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 8, 216(1) 308*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 7, 208(1) 309*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 6, 200(1) 310*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 5, 192(1) 311*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 4, 184(1) 312*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 3, 176(1) 313*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 2, 168(1) 314*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 1, 160(1) 315*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 316*20957d20SQiu Chaofan; 64BIT-NEXT: nop 317*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 318*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 319*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 320*20957d20SQiu Chaofan; 64BIT-NEXT: blr 321*20957d20SQiu Chaofanentry: 322*20957d20SQiu Chaofan %add = fadd float %a, %a 323*20957d20SQiu Chaofan %add1 = fadd float %add, %a 324*20957d20SQiu Chaofan %add2 = fadd float %add1, %d 325*20957d20SQiu Chaofan %add3 = fadd float %add2, %e 326*20957d20SQiu Chaofan %add4 = fadd float %add3, %f 327*20957d20SQiu Chaofan %add5 = fadd float %add4, %g 328*20957d20SQiu Chaofan %add6 = fadd float %add5, %h 329*20957d20SQiu Chaofan %add7 = fadd float %add6, %i 330*20957d20SQiu Chaofan %add8 = fadd float %add7, %j 331*20957d20SQiu Chaofan tail call void @foo() 332*20957d20SQiu Chaofan ret void 333*20957d20SQiu Chaofan} 334*20957d20SQiu Chaofan 335*20957d20SQiu Chaofandefine void @f64_join(double %a, double %b, double %c, double %d, double %e, double %f, double %g, double %h, double %i, double %j) #0 { 336*20957d20SQiu Chaofan; 32BIT-LABEL: f64_join: 337*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 338*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 339*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 340*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 341*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 10, 160(1) 342*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 9, 152(1) 343*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 8, 144(1) 344*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 7, 136(1) 345*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 6, 128(1) 346*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 5, 120(1) 347*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 4, 112(1) 348*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 3, 104(1) 349*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 2, 96(1) 350*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 1, 88(1) 351*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 352*20957d20SQiu Chaofan; 32BIT-NEXT: nop 353*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 354*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 355*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 356*20957d20SQiu Chaofan; 32BIT-NEXT: blr 357*20957d20SQiu Chaofan; 358*20957d20SQiu Chaofan; 64BIT-LABEL: f64_join: 359*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 360*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 361*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 362*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 363*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 10, 232(1) 364*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 9, 224(1) 365*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 8, 216(1) 366*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 7, 208(1) 367*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 6, 200(1) 368*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 5, 192(1) 369*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 4, 184(1) 370*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 3, 176(1) 371*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 2, 168(1) 372*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 1, 160(1) 373*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 374*20957d20SQiu Chaofan; 64BIT-NEXT: nop 375*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 376*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 377*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 378*20957d20SQiu Chaofan; 64BIT-NEXT: blr 379*20957d20SQiu Chaofanentry: 380*20957d20SQiu Chaofan %add = fadd double %a, %b 381*20957d20SQiu Chaofan %add1 = fadd double %add, %c 382*20957d20SQiu Chaofan %add2 = fadd double %add1, %d 383*20957d20SQiu Chaofan %add3 = fadd double %add2, %e 384*20957d20SQiu Chaofan %add4 = fadd double %add3, %f 385*20957d20SQiu Chaofan %add5 = fadd double %add4, %g 386*20957d20SQiu Chaofan %add6 = fadd double %add5, %h 387*20957d20SQiu Chaofan %add7 = fadd double %add6, %i 388*20957d20SQiu Chaofan %add8 = fadd double %add7, %j 389*20957d20SQiu Chaofan tail call void @foo() 390*20957d20SQiu Chaofan ret void 391*20957d20SQiu Chaofan} 392*20957d20SQiu Chaofan 393*20957d20SQiu Chaofandefine void @f64_missing(double %a, double %b, double %c, double %d, double %e, double %f, double %g, double %h, double %i, double %j) #0 { 394*20957d20SQiu Chaofan; 32BIT-LABEL: f64_missing: 395*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 396*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 397*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 398*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 399*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 10, 160(1) 400*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 9, 152(1) 401*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 8, 144(1) 402*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 7, 136(1) 403*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 6, 128(1) 404*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 5, 120(1) 405*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 4, 112(1) 406*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 3, 104(1) 407*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 2, 96(1) 408*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 1, 88(1) 409*20957d20SQiu Chaofan; 32BIT-NEXT: bl .foo[PR] 410*20957d20SQiu Chaofan; 32BIT-NEXT: nop 411*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 412*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 413*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 414*20957d20SQiu Chaofan; 32BIT-NEXT: blr 415*20957d20SQiu Chaofan; 416*20957d20SQiu Chaofan; 64BIT-LABEL: f64_missing: 417*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 418*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 419*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 420*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 421*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 10, 232(1) 422*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 9, 224(1) 423*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 8, 216(1) 424*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 7, 208(1) 425*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 6, 200(1) 426*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 5, 192(1) 427*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 4, 184(1) 428*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 3, 176(1) 429*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 2, 168(1) 430*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 1, 160(1) 431*20957d20SQiu Chaofan; 64BIT-NEXT: bl .foo[PR] 432*20957d20SQiu Chaofan; 64BIT-NEXT: nop 433*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 434*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 435*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 436*20957d20SQiu Chaofan; 64BIT-NEXT: blr 437*20957d20SQiu Chaofanentry: 438*20957d20SQiu Chaofan %add = fadd double %a, %a 439*20957d20SQiu Chaofan %add1 = fadd double %add, %a 440*20957d20SQiu Chaofan %add2 = fadd double %add1, %d 441*20957d20SQiu Chaofan %add3 = fadd double %add2, %e 442*20957d20SQiu Chaofan %add4 = fadd double %add3, %f 443*20957d20SQiu Chaofan %add5 = fadd double %add4, %g 444*20957d20SQiu Chaofan %add6 = fadd double %add5, %h 445*20957d20SQiu Chaofan %add7 = fadd double %add6, %i 446*20957d20SQiu Chaofan %add8 = fadd double %add7, %j 447*20957d20SQiu Chaofan tail call void @foo() 448*20957d20SQiu Chaofan ret void 449*20957d20SQiu Chaofan} 450*20957d20SQiu Chaofan 451*20957d20SQiu Chaofandefine void @mixed_1(double %a, i64 %b, i64 %c, i32 signext %d, i64 %e, float %f, float %g, double %h, i32 signext %i, double %j) #0 { 452*20957d20SQiu Chaofan; 32BIT-LABEL: mixed_1: 453*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 454*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 455*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -112(1) 456*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 120(1) 457*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 1, 136(1) 458*20957d20SQiu Chaofan; 32BIT-NEXT: xsadddp 1, 1, 5 459*20957d20SQiu Chaofan; 32BIT-NEXT: stw 24, 64(1) # 4-byte Folded Spill 460*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 24, 168(1) 461*20957d20SQiu Chaofan; 32BIT-NEXT: stw 25, 68(1) # 4-byte Folded Spill 462*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 25, 188(1) 463*20957d20SQiu Chaofan; 32BIT-NEXT: stw 26, 72(1) # 4-byte Folded Spill 464*20957d20SQiu Chaofan; 32BIT-NEXT: stw 27, 76(1) # 4-byte Folded Spill 465*20957d20SQiu Chaofan; 32BIT-NEXT: stw 28, 80(1) # 4-byte Folded Spill 466*20957d20SQiu Chaofan; 32BIT-NEXT: stw 29, 84(1) # 4-byte Folded Spill 467*20957d20SQiu Chaofan; 32BIT-NEXT: stw 30, 88(1) # 4-byte Folded Spill 468*20957d20SQiu Chaofan; 32BIT-NEXT: stw 31, 92(1) # 4-byte Folded Spill 469*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 30, 96(1) # 8-byte Folded Spill 470*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 31, 104(1) # 8-byte Folded Spill 471*20957d20SQiu Chaofan; 32BIT-NEXT: fmr 31, 3 472*20957d20SQiu Chaofan; 32BIT-NEXT: fmr 30, 2 473*20957d20SQiu Chaofan; 32BIT-NEXT: mr 31, 10 474*20957d20SQiu Chaofan; 32BIT-NEXT: mr 30, 9 475*20957d20SQiu Chaofan; 32BIT-NEXT: mr 29, 8 476*20957d20SQiu Chaofan; 32BIT-NEXT: mr 28, 7 477*20957d20SQiu Chaofan; 32BIT-NEXT: mr 27, 6 478*20957d20SQiu Chaofan; 32BIT-NEXT: mr 26, 5 479*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 5, 192(1) 480*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 4, 180(1) 481*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 3, 176(1) 482*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 2, 172(1) 483*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 164(1) 484*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 160(1) 485*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 156(1) 486*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 152(1) 487*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 148(1) 488*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 144(1) 489*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f64[PR] 490*20957d20SQiu Chaofan; 32BIT-NEXT: nop 491*20957d20SQiu Chaofan; 32BIT-NEXT: fadds 1, 30, 31 492*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f32[PR] 493*20957d20SQiu Chaofan; 32BIT-NEXT: nop 494*20957d20SQiu Chaofan; 32BIT-NEXT: addc 3, 29, 27 495*20957d20SQiu Chaofan; 32BIT-NEXT: adde 4, 28, 26 496*20957d20SQiu Chaofan; 32BIT-NEXT: srawi 5, 30, 31 497*20957d20SQiu Chaofan; 32BIT-NEXT: addc 3, 3, 30 498*20957d20SQiu Chaofan; 32BIT-NEXT: adde 5, 4, 5 499*20957d20SQiu Chaofan; 32BIT-NEXT: addc 4, 3, 24 500*20957d20SQiu Chaofan; 32BIT-NEXT: adde 3, 5, 31 501*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i64[PR] 502*20957d20SQiu Chaofan; 32BIT-NEXT: nop 503*20957d20SQiu Chaofan; 32BIT-NEXT: add 3, 25, 30 504*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i32[PR] 505*20957d20SQiu Chaofan; 32BIT-NEXT: nop 506*20957d20SQiu Chaofan; 32BIT-NEXT: lfd 31, 104(1) # 8-byte Folded Reload 507*20957d20SQiu Chaofan; 32BIT-NEXT: lfd 30, 96(1) # 8-byte Folded Reload 508*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 31, 92(1) # 4-byte Folded Reload 509*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 30, 88(1) # 4-byte Folded Reload 510*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 29, 84(1) # 4-byte Folded Reload 511*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 28, 80(1) # 4-byte Folded Reload 512*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 27, 76(1) # 4-byte Folded Reload 513*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 26, 72(1) # 4-byte Folded Reload 514*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 25, 68(1) # 4-byte Folded Reload 515*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 24, 64(1) # 4-byte Folded Reload 516*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 112 517*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 518*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 519*20957d20SQiu Chaofan; 32BIT-NEXT: blr 520*20957d20SQiu Chaofan; 521*20957d20SQiu Chaofan; 64BIT-LABEL: mixed_1: 522*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 523*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 524*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -176(1) 525*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 192(1) 526*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 1, 224(1) 527*20957d20SQiu Chaofan; 64BIT-NEXT: xsadddp 1, 1, 5 528*20957d20SQiu Chaofan; 64BIT-NEXT: std 27, 120(1) # 8-byte Folded Spill 529*20957d20SQiu Chaofan; 64BIT-NEXT: lwz 27, 292(1) 530*20957d20SQiu Chaofan; 64BIT-NEXT: std 28, 128(1) # 8-byte Folded Spill 531*20957d20SQiu Chaofan; 64BIT-NEXT: std 29, 136(1) # 8-byte Folded Spill 532*20957d20SQiu Chaofan; 64BIT-NEXT: std 30, 144(1) # 8-byte Folded Spill 533*20957d20SQiu Chaofan; 64BIT-NEXT: std 31, 152(1) # 8-byte Folded Spill 534*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 30, 160(1) # 8-byte Folded Spill 535*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 31, 168(1) # 8-byte Folded Spill 536*20957d20SQiu Chaofan; 64BIT-NEXT: fmr 31, 3 537*20957d20SQiu Chaofan; 64BIT-NEXT: fmr 30, 2 538*20957d20SQiu Chaofan; 64BIT-NEXT: mr 31, 7 539*20957d20SQiu Chaofan; 64BIT-NEXT: mr 30, 6 540*20957d20SQiu Chaofan; 64BIT-NEXT: mr 29, 5 541*20957d20SQiu Chaofan; 64BIT-NEXT: mr 28, 4 542*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 5, 296(1) 543*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 4, 280(1) 544*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 3, 272(1) 545*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 2, 264(1) 546*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 256(1) 547*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 248(1) 548*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 240(1) 549*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 232(1) 550*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f64[PR] 551*20957d20SQiu Chaofan; 64BIT-NEXT: nop 552*20957d20SQiu Chaofan; 64BIT-NEXT: fadds 1, 30, 31 553*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f32[PR] 554*20957d20SQiu Chaofan; 64BIT-NEXT: nop 555*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 29, 28 556*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 3, 30 557*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 3, 31 558*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i64[PR] 559*20957d20SQiu Chaofan; 64BIT-NEXT: nop 560*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 27, 30 561*20957d20SQiu Chaofan; 64BIT-NEXT: extsw 3, 3 562*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i32[PR] 563*20957d20SQiu Chaofan; 64BIT-NEXT: nop 564*20957d20SQiu Chaofan; 64BIT-NEXT: lfd 31, 168(1) # 8-byte Folded Reload 565*20957d20SQiu Chaofan; 64BIT-NEXT: lfd 30, 160(1) # 8-byte Folded Reload 566*20957d20SQiu Chaofan; 64BIT-NEXT: ld 31, 152(1) # 8-byte Folded Reload 567*20957d20SQiu Chaofan; 64BIT-NEXT: ld 30, 144(1) # 8-byte Folded Reload 568*20957d20SQiu Chaofan; 64BIT-NEXT: ld 29, 136(1) # 8-byte Folded Reload 569*20957d20SQiu Chaofan; 64BIT-NEXT: ld 28, 128(1) # 8-byte Folded Reload 570*20957d20SQiu Chaofan; 64BIT-NEXT: ld 27, 120(1) # 8-byte Folded Reload 571*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 176 572*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 573*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 574*20957d20SQiu Chaofan; 64BIT-NEXT: blr 575*20957d20SQiu Chaofanentry: 576*20957d20SQiu Chaofan %add = fadd double %a, %j 577*20957d20SQiu Chaofan tail call void @consume_f64(double %add) 578*20957d20SQiu Chaofan %add1 = fadd float %f, %g 579*20957d20SQiu Chaofan tail call void @consume_f32(float %add1) 580*20957d20SQiu Chaofan %add2 = add nsw i64 %c, %b 581*20957d20SQiu Chaofan %conv = sext i32 %d to i64 582*20957d20SQiu Chaofan %add3 = add nsw i64 %add2, %conv 583*20957d20SQiu Chaofan %add4 = add nsw i64 %add3, %e 584*20957d20SQiu Chaofan tail call void @consume_i64(i64 %add4) 585*20957d20SQiu Chaofan %add5 = add nsw i32 %i, %d 586*20957d20SQiu Chaofan tail call void @consume_i32(i32 signext %add5) 587*20957d20SQiu Chaofan ret void 588*20957d20SQiu Chaofan} 589*20957d20SQiu Chaofan 590*20957d20SQiu Chaofandefine void @mixed_2(<2 x double> %a, <4 x i32> %b, i64 %c) #0 { 591*20957d20SQiu Chaofan; 32BIT-LABEL: mixed_2: 592*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 593*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 594*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -80(1) 595*20957d20SQiu Chaofan; 32BIT-NEXT: li 5, 64 596*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 88(1) 597*20957d20SQiu Chaofan; 32BIT-NEXT: stw 4, 140(1) 598*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 136(1) 599*20957d20SQiu Chaofan; 32BIT-NEXT: stxvd2x 34, 1, 5 # 16-byte Folded Spill 600*20957d20SQiu Chaofan; 32BIT-NEXT: addi 5, 1, 120 601*20957d20SQiu Chaofan; 32BIT-NEXT: stxvw4x 35, 0, 5 602*20957d20SQiu Chaofan; 32BIT-NEXT: addi 5, 1, 104 603*20957d20SQiu Chaofan; 32BIT-NEXT: stxvd2x 34, 0, 5 604*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 5, 120(1) 605*20957d20SQiu Chaofan; 32BIT-NEXT: srawi 6, 5, 31 606*20957d20SQiu Chaofan; 32BIT-NEXT: addc 4, 5, 4 607*20957d20SQiu Chaofan; 32BIT-NEXT: adde 3, 6, 3 608*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i64[PR] 609*20957d20SQiu Chaofan; 32BIT-NEXT: nop 610*20957d20SQiu Chaofan; 32BIT-NEXT: li 3, 64 611*20957d20SQiu Chaofan; 32BIT-NEXT: lxvd2x 1, 1, 3 # 16-byte Folded Reload 612*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f64[PR] 613*20957d20SQiu Chaofan; 32BIT-NEXT: nop 614*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 80 615*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 616*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 617*20957d20SQiu Chaofan; 32BIT-NEXT: blr 618*20957d20SQiu Chaofan; 619*20957d20SQiu Chaofan; 64BIT-LABEL: mixed_2: 620*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 621*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 622*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -144(1) 623*20957d20SQiu Chaofan; 64BIT-NEXT: li 4, 128 624*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 160(1) 625*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 224(1) 626*20957d20SQiu Chaofan; 64BIT-NEXT: stxvd2x 34, 1, 4 # 16-byte Folded Spill 627*20957d20SQiu Chaofan; 64BIT-NEXT: addi 4, 1, 208 628*20957d20SQiu Chaofan; 64BIT-NEXT: stxvw4x 35, 0, 4 629*20957d20SQiu Chaofan; 64BIT-NEXT: addi 4, 1, 192 630*20957d20SQiu Chaofan; 64BIT-NEXT: stxvd2x 34, 0, 4 631*20957d20SQiu Chaofan; 64BIT-NEXT: lwa 4, 208(1) 632*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 4, 3 633*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i64[PR] 634*20957d20SQiu Chaofan; 64BIT-NEXT: nop 635*20957d20SQiu Chaofan; 64BIT-NEXT: li 3, 128 636*20957d20SQiu Chaofan; 64BIT-NEXT: lxvd2x 1, 1, 3 # 16-byte Folded Reload 637*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f64[PR] 638*20957d20SQiu Chaofan; 64BIT-NEXT: nop 639*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 144 640*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 641*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 642*20957d20SQiu Chaofan; 64BIT-NEXT: blr 643*20957d20SQiu Chaofanentry: 644*20957d20SQiu Chaofan %vecext = extractelement <4 x i32> %b, i64 0 645*20957d20SQiu Chaofan %conv = sext i32 %vecext to i64 646*20957d20SQiu Chaofan %add = add nsw i64 %conv, %c 647*20957d20SQiu Chaofan tail call void @consume_i64(i64 %add) 648*20957d20SQiu Chaofan %vecext1 = extractelement <2 x double> %a, i64 0 649*20957d20SQiu Chaofan tail call void @consume_f64(double %vecext1) 650*20957d20SQiu Chaofan ret void 651*20957d20SQiu Chaofan} 652*20957d20SQiu Chaofan 653*20957d20SQiu Chaofan%struct.foo = type <{ [3 x i32], double, [12 x i8], <4 x i32> }> 654*20957d20SQiu Chaofan 655*20957d20SQiu Chaofandefine void @mixed_3(<2 x double> %a, i64 %b, double %c, float %d, i32 signext %e, double %f, ...) #0 { 656*20957d20SQiu Chaofan; 32BIT-LABEL: mixed_3: 657*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 658*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 659*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -80(1) 660*20957d20SQiu Chaofan; 32BIT-NEXT: xsadddp 0, 34, 3 661*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 88(1) 662*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 1, 128(1) 663*20957d20SQiu Chaofan; 32BIT-NEXT: stw 29, 60(1) # 4-byte Folded Spill 664*20957d20SQiu Chaofan; 32BIT-NEXT: addi 3, 1, 104 665*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 29, 148(1) 666*20957d20SQiu Chaofan; 32BIT-NEXT: stw 30, 64(1) # 4-byte Folded Spill 667*20957d20SQiu Chaofan; 32BIT-NEXT: stw 31, 68(1) # 4-byte Folded Spill 668*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 31, 72(1) # 8-byte Folded Spill 669*20957d20SQiu Chaofan; 32BIT-NEXT: fmr 31, 2 670*20957d20SQiu Chaofan; 32BIT-NEXT: mr 31, 10 671*20957d20SQiu Chaofan; 32BIT-NEXT: mr 30, 9 672*20957d20SQiu Chaofan; 32BIT-NEXT: xsadddp 1, 0, 1 673*20957d20SQiu Chaofan; 32BIT-NEXT: stxvd2x 34, 0, 3 674*20957d20SQiu Chaofan; 32BIT-NEXT: stfd 3, 144(1) 675*20957d20SQiu Chaofan; 32BIT-NEXT: stfs 2, 136(1) 676*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 124(1) 677*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 120(1) 678*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f64[PR] 679*20957d20SQiu Chaofan; 32BIT-NEXT: nop 680*20957d20SQiu Chaofan; 32BIT-NEXT: mr 3, 30 681*20957d20SQiu Chaofan; 32BIT-NEXT: mr 4, 31 682*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i64[PR] 683*20957d20SQiu Chaofan; 32BIT-NEXT: nop 684*20957d20SQiu Chaofan; 32BIT-NEXT: fmr 1, 31 685*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f32[PR] 686*20957d20SQiu Chaofan; 32BIT-NEXT: nop 687*20957d20SQiu Chaofan; 32BIT-NEXT: mr 3, 29 688*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i32[PR] 689*20957d20SQiu Chaofan; 32BIT-NEXT: nop 690*20957d20SQiu Chaofan; 32BIT-NEXT: lfd 31, 72(1) # 8-byte Folded Reload 691*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 31, 68(1) # 4-byte Folded Reload 692*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 30, 64(1) # 4-byte Folded Reload 693*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 29, 60(1) # 4-byte Folded Reload 694*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 80 695*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 696*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 697*20957d20SQiu Chaofan; 32BIT-NEXT: blr 698*20957d20SQiu Chaofan; 32BIT: NumOfGPRsSaved = 3 699*20957d20SQiu Chaofan; 700*20957d20SQiu Chaofan; 64BIT-LABEL: mixed_3: 701*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 702*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 703*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -144(1) 704*20957d20SQiu Chaofan; 64BIT-NEXT: xsadddp 0, 34, 3 705*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 160(1) 706*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 1, 216(1) 707*20957d20SQiu Chaofan; 64BIT-NEXT: addi 3, 1, 192 708*20957d20SQiu Chaofan; 64BIT-NEXT: std 30, 120(1) # 8-byte Folded Spill 709*20957d20SQiu Chaofan; 64BIT-NEXT: std 31, 128(1) # 8-byte Folded Spill 710*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 31, 136(1) # 8-byte Folded Spill 711*20957d20SQiu Chaofan; 64BIT-NEXT: mr 31, 8 712*20957d20SQiu Chaofan; 64BIT-NEXT: fmr 31, 2 713*20957d20SQiu Chaofan; 64BIT-NEXT: mr 30, 5 714*20957d20SQiu Chaofan; 64BIT-NEXT: stxvd2x 34, 0, 3 715*20957d20SQiu Chaofan; 64BIT-NEXT: xsadddp 1, 0, 1 716*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 248(1) 717*20957d20SQiu Chaofan; 64BIT-NEXT: stfd 3, 240(1) 718*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 232(1) 719*20957d20SQiu Chaofan; 64BIT-NEXT: stfs 2, 224(1) 720*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 208(1) 721*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f64[PR] 722*20957d20SQiu Chaofan; 64BIT-NEXT: nop 723*20957d20SQiu Chaofan; 64BIT-NEXT: mr 3, 30 724*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i64[PR] 725*20957d20SQiu Chaofan; 64BIT-NEXT: nop 726*20957d20SQiu Chaofan; 64BIT-NEXT: fmr 1, 31 727*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f32[PR] 728*20957d20SQiu Chaofan; 64BIT-NEXT: nop 729*20957d20SQiu Chaofan; 64BIT-NEXT: mr 3, 31 730*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i32[PR] 731*20957d20SQiu Chaofan; 64BIT-NEXT: nop 732*20957d20SQiu Chaofan; 64BIT-NEXT: lfd 31, 136(1) # 8-byte Folded Reload 733*20957d20SQiu Chaofan; 64BIT-NEXT: ld 31, 128(1) # 8-byte Folded Reload 734*20957d20SQiu Chaofan; 64BIT-NEXT: ld 30, 120(1) # 8-byte Folded Reload 735*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 144 736*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 737*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 738*20957d20SQiu Chaofan; 64BIT-NEXT: blr 739*20957d20SQiu Chaofan; 64BIT: NumOfGPRsSaved = 2 740*20957d20SQiu Chaofanentry: 741*20957d20SQiu Chaofan %vecext = extractelement <2 x double> %a, i64 0 742*20957d20SQiu Chaofan %add = fadd double %vecext, %f 743*20957d20SQiu Chaofan %add1 = fadd double %add, %c 744*20957d20SQiu Chaofan tail call void @consume_f64(double %add1) 745*20957d20SQiu Chaofan tail call void @consume_i64(i64 %b) 746*20957d20SQiu Chaofan tail call void @consume_f32(float %d) 747*20957d20SQiu Chaofan tail call void @consume_i32(i32 signext %e) 748*20957d20SQiu Chaofan ret void 749*20957d20SQiu Chaofan} 750*20957d20SQiu Chaofan 751*20957d20SQiu Chaofandefine signext i32 @mixed_4(ptr byval(%struct.foo) align 16 %foo, i32 %sec) #0 { 752*20957d20SQiu Chaofan; 32BIT-LABEL: mixed_4: 753*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 754*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 48(1) 755*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 44(1) 756*20957d20SQiu Chaofan; 32BIT-NEXT: lfd 0, 44(1) 757*20957d20SQiu Chaofan; 32BIT-NEXT: addi 3, 1, -4 758*20957d20SQiu Chaofan; 32BIT-NEXT: xscvdpsxws 0, 0 759*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 32(1) 760*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 36(1) 761*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 40(1) 762*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 52(1) 763*20957d20SQiu Chaofan; 32BIT-NEXT: stfiwx 0, 0, 3 764*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 3, -4(1) 765*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 4, 76(1) 766*20957d20SQiu Chaofan; 32BIT-NEXT: add 3, 5, 3 767*20957d20SQiu Chaofan; 32BIT-NEXT: add 3, 3, 4 768*20957d20SQiu Chaofan; 32BIT-NEXT: blr 769*20957d20SQiu Chaofan; 770*20957d20SQiu Chaofan; 64BIT-LABEL: mixed_4: 771*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 772*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 64(1) 773*20957d20SQiu Chaofan; 64BIT-NEXT: std 4, 56(1) 774*20957d20SQiu Chaofan; 64BIT-NEXT: lfd 0, 60(1) 775*20957d20SQiu Chaofan; 64BIT-NEXT: addi 4, 1, -4 776*20957d20SQiu Chaofan; 64BIT-NEXT: xscvdpsxws 0, 0 777*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 48(1) 778*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 72(1) 779*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 80(1) 780*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 88(1) 781*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 96(1) 782*20957d20SQiu Chaofan; 64BIT-NEXT: rldicl 3, 3, 32, 32 783*20957d20SQiu Chaofan; 64BIT-NEXT: stfiwx 0, 0, 4 784*20957d20SQiu Chaofan; 64BIT-NEXT: lwz 4, -4(1) 785*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 3, 4 786*20957d20SQiu Chaofan; 64BIT-NEXT: add 3, 3, 8 787*20957d20SQiu Chaofan; 64BIT-NEXT: extsw 3, 3 788*20957d20SQiu Chaofan; 64BIT-NEXT: blr 789*20957d20SQiu Chaofanentry: 790*20957d20SQiu Chaofan %0 = load i32, ptr %foo, align 16 791*20957d20SQiu Chaofan %x = getelementptr inbounds i8, ptr %foo, i64 12 792*20957d20SQiu Chaofan %1 = load double, ptr %x, align 4 793*20957d20SQiu Chaofan %conv = fptosi double %1 to i32 794*20957d20SQiu Chaofan %add = add nsw i32 %0, %conv 795*20957d20SQiu Chaofan %2 = getelementptr inbounds i8, ptr %foo, i64 44 796*20957d20SQiu Chaofan %vecext = load i32, ptr %2, align 4 797*20957d20SQiu Chaofan %add1 = add nsw i32 %add, %vecext 798*20957d20SQiu Chaofan ret i32 %add1 799*20957d20SQiu Chaofan} 800*20957d20SQiu Chaofan 801*20957d20SQiu Chaofan%struct.bar = type { i8, i32, <4 x i32>, ptr, i8 } 802*20957d20SQiu Chaofan 803*20957d20SQiu Chaofandefine void @mixed_5(ptr byref(%struct.bar) align 16 %r, ptr byval(%struct.bar) align 16 %x, i32 signext %y, ptr byval(%struct.foo) align 16 %f) #0 { 804*20957d20SQiu Chaofan; 32BIT-LABEL: mixed_5: 805*20957d20SQiu Chaofan; 32BIT: # %bb.0: # %entry 806*20957d20SQiu Chaofan; 32BIT-NEXT: mflr 0 807*20957d20SQiu Chaofan; 32BIT-NEXT: stwu 1, -64(1) 808*20957d20SQiu Chaofan; 32BIT-NEXT: stw 0, 72(1) 809*20957d20SQiu Chaofan; 32BIT-NEXT: stw 5, 96(1) 810*20957d20SQiu Chaofan; 32BIT-NEXT: lfd 1, 172(1) 811*20957d20SQiu Chaofan; 32BIT-NEXT: stw 6, 100(1) 812*20957d20SQiu Chaofan; 32BIT-NEXT: stw 7, 104(1) 813*20957d20SQiu Chaofan; 32BIT-NEXT: stw 8, 108(1) 814*20957d20SQiu Chaofan; 32BIT-NEXT: stw 9, 112(1) 815*20957d20SQiu Chaofan; 32BIT-NEXT: stw 10, 116(1) 816*20957d20SQiu Chaofan; 32BIT-NEXT: stw 3, 88(1) 817*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_f64[PR] 818*20957d20SQiu Chaofan; 32BIT-NEXT: nop 819*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 3, 100(1) 820*20957d20SQiu Chaofan; 32BIT-NEXT: bl .consume_i32[PR] 821*20957d20SQiu Chaofan; 32BIT-NEXT: nop 822*20957d20SQiu Chaofan; 32BIT-NEXT: addi 1, 1, 64 823*20957d20SQiu Chaofan; 32BIT-NEXT: lwz 0, 8(1) 824*20957d20SQiu Chaofan; 32BIT-NEXT: mtlr 0 825*20957d20SQiu Chaofan; 32BIT-NEXT: blr 826*20957d20SQiu Chaofan; 827*20957d20SQiu Chaofan; 64BIT-LABEL: mixed_5: 828*20957d20SQiu Chaofan; 64BIT: # %bb.0: # %entry 829*20957d20SQiu Chaofan; 64BIT-NEXT: mflr 0 830*20957d20SQiu Chaofan; 64BIT-NEXT: stdu 1, -112(1) 831*20957d20SQiu Chaofan; 64BIT-NEXT: std 0, 128(1) 832*20957d20SQiu Chaofan; 64BIT-NEXT: std 5, 176(1) 833*20957d20SQiu Chaofan; 64BIT-NEXT: lfd 1, 252(1) 834*20957d20SQiu Chaofan; 64BIT-NEXT: std 6, 184(1) 835*20957d20SQiu Chaofan; 64BIT-NEXT: std 7, 192(1) 836*20957d20SQiu Chaofan; 64BIT-NEXT: std 8, 200(1) 837*20957d20SQiu Chaofan; 64BIT-NEXT: std 9, 208(1) 838*20957d20SQiu Chaofan; 64BIT-NEXT: std 10, 216(1) 839*20957d20SQiu Chaofan; 64BIT-NEXT: std 3, 160(1) 840*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_f64[PR] 841*20957d20SQiu Chaofan; 64BIT-NEXT: nop 842*20957d20SQiu Chaofan; 64BIT-NEXT: lwa 3, 180(1) 843*20957d20SQiu Chaofan; 64BIT-NEXT: bl .consume_i32[PR] 844*20957d20SQiu Chaofan; 64BIT-NEXT: nop 845*20957d20SQiu Chaofan; 64BIT-NEXT: addi 1, 1, 112 846*20957d20SQiu Chaofan; 64BIT-NEXT: ld 0, 16(1) 847*20957d20SQiu Chaofan; 64BIT-NEXT: mtlr 0 848*20957d20SQiu Chaofan; 64BIT-NEXT: blr 849*20957d20SQiu Chaofanentry: 850*20957d20SQiu Chaofan %d = getelementptr inbounds i8, ptr %f, i64 12 851*20957d20SQiu Chaofan %0 = load double, ptr %d, align 4 852*20957d20SQiu Chaofan tail call void @consume_f64(double %0) 853*20957d20SQiu Chaofan %i = getelementptr inbounds i8, ptr %x, i64 4 854*20957d20SQiu Chaofan %1 = load i32, ptr %i, align 4 855*20957d20SQiu Chaofan tail call void @consume_i32(i32 signext %1) 856*20957d20SQiu Chaofan ret void 857*20957d20SQiu Chaofan} 858*20957d20SQiu Chaofan 859*20957d20SQiu Chaofandeclare void @foo() 860*20957d20SQiu Chaofandeclare void @consume_f64(double) 861*20957d20SQiu Chaofandeclare void @consume_f32(float) 862*20957d20SQiu Chaofandeclare void @consume_i64(i64) 863*20957d20SQiu Chaofandeclare void @consume_i32(i32 signext) 864*20957d20SQiu Chaofan 865*20957d20SQiu Chaofanattributes #0 = { nofree noinline nounwind "save-reg-params" } 866