1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips2 -relocation-model=pic | \ 2*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,M2,GP32 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32 -relocation-model=pic | \ 4*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,32R1-R5,GP32 5*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r2 -relocation-model=pic | \ 6*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,32R1-R5,32R2-R5,GP32 7*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r3 -relocation-model=pic | \ 8*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,32R1-R5,32R2-R5,GP32 9*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r5 -relocation-model=pic | \ 10*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,32R1-R5,32R2-R5,GP32 11*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r6 -relocation-model=pic | \ 12*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,32R6,GP32 13*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips4 -relocation-model=pic | \ 14*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,M4,GP64-NOT-R6 15*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips64 -relocation-model=pic | \ 16*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,64R1-R5,GP64-NOT-R6 17*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips64r2 -relocation-model=pic | \ 18*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,64R1-R5,GP64,GP64-NOT-R6 19*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips64r3 -relocation-model=pic | \ 20*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,64R1-R5,GP64,GP64-NOT-R6 21*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips64r5 -relocation-model=pic | \ 22*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,64R1-R5,GP64,GP64-NOT-R6 23*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips64 -mcpu=mips64r6 -relocation-model=pic | \ 24*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=ALL,64R6 25*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r3 -mattr=+micromips -relocation-model=pic | \ 26*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=MM32,MM32R3 27*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips32r6 -mattr=+micromips -relocation-model=pic | \ 28*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefixes=MM32,MM32R6 29*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=mips -mcpu=mips64r6 -mattr=+micromips -target-abi n64 -relocation-model=pic | \ 30*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s -check-prefix=64R6 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerdefine signext i1 @mul_i1(i1 signext %a, i1 signext %b) { 33*9880d681SAndroid Build Coastguard Workerentry: 34*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i1: 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker ; M2: mult $4, $5 37*9880d681SAndroid Build Coastguard Worker ; M2: mflo $[[T0:[0-9]+]] 38*9880d681SAndroid Build Coastguard Worker ; M2: sll $[[T0]], $[[T0]], 31 39*9880d681SAndroid Build Coastguard Worker ; M2: sra $2, $[[T0]], 31 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mul $[[T0:[0-9]+]], $4, $5 42*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: sll $[[T0]], $[[T0]], 31 43*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: sra $2, $[[T0]], 31 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker ; 32R6: mul $[[T0:[0-9]+]], $4, $5 46*9880d681SAndroid Build Coastguard Worker ; 32R6: sll $[[T0]], $[[T0]], 31 47*9880d681SAndroid Build Coastguard Worker ; 32R6: sra $2, $[[T0]], 31 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker ; M4: mult $4, $5 50*9880d681SAndroid Build Coastguard Worker ; M4: mflo $[[T0:[0-9]+]] 51*9880d681SAndroid Build Coastguard Worker ; M4: sll $[[T0]], $[[T0]], 31 52*9880d681SAndroid Build Coastguard Worker ; M4: sra $2, $[[T0]], 31 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: mul $[[T0:[0-9]+]], $4, $5 55*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: sll $[[T0]], $[[T0]], 31 56*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: sra $2, $[[T0]], 31 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker ; 64R6: mul $[[T0:[0-9]+]], $4, $5 59*9880d681SAndroid Build Coastguard Worker ; 64R6: sll $[[T0]], $[[T0]], 31 60*9880d681SAndroid Build Coastguard Worker ; 64R6: sra $2, $[[T0]], 31 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker ; MM32: mul $[[T0:[0-9]+]], $4, $5 63*9880d681SAndroid Build Coastguard Worker ; MM32: sll $[[T0]], $[[T0]], 31 64*9880d681SAndroid Build Coastguard Worker ; MM32: sra $2, $[[T0]], 31 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker %r = mul i1 %a, %b 67*9880d681SAndroid Build Coastguard Worker ret i1 %r 68*9880d681SAndroid Build Coastguard Worker} 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerdefine signext i8 @mul_i8(i8 signext %a, i8 signext %b) { 71*9880d681SAndroid Build Coastguard Workerentry: 72*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i8: 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker ; M2: mult $4, $5 75*9880d681SAndroid Build Coastguard Worker ; M2: mflo $[[T0:[0-9]+]] 76*9880d681SAndroid Build Coastguard Worker ; M2: sll $[[T0]], $[[T0]], 24 77*9880d681SAndroid Build Coastguard Worker ; M2: sra $2, $[[T0]], 24 78*9880d681SAndroid Build Coastguard Worker 79*9880d681SAndroid Build Coastguard Worker ; 32R1: mul $[[T0:[0-9]+]], $4, $5 80*9880d681SAndroid Build Coastguard Worker ; 32R1: sll $[[T0]], $[[T0]], 24 81*9880d681SAndroid Build Coastguard Worker ; 32R1: sra $2, $[[T0]], 24 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker ; 32R2-R5: mul $[[T0:[0-9]+]], $4, $5 84*9880d681SAndroid Build Coastguard Worker ; 32R2-R5: seb $2, $[[T0]] 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker ; 32R6: mul $[[T0:[0-9]+]], $4, $5 87*9880d681SAndroid Build Coastguard Worker ; 32R6: seb $2, $[[T0]] 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Worker ; M4: mult $4, $5 90*9880d681SAndroid Build Coastguard Worker ; M4: mflo $[[T0:[0-9]+]] 91*9880d681SAndroid Build Coastguard Worker ; M4: sll $[[T0]], $[[T0]], 24 92*9880d681SAndroid Build Coastguard Worker ; M4: sra $2, $[[T0]], 24 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Worker ; 64R1: mul $[[T0:[0-9]+]], $4, $5 95*9880d681SAndroid Build Coastguard Worker ; 64R1: sll $[[T0]], $[[T0]], 24 96*9880d681SAndroid Build Coastguard Worker ; 64R1: sra $2, $[[T0]], 24 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker ; 64R2: mul $[[T0:[0-9]+]], $4, $5 99*9880d681SAndroid Build Coastguard Worker ; 64R2: seb $2, $[[T0]] 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker ; 64R6: mul $[[T0:[0-9]+]], $4, $5 102*9880d681SAndroid Build Coastguard Worker ; 64R6: seb $2, $[[T0]] 103*9880d681SAndroid Build Coastguard Worker 104*9880d681SAndroid Build Coastguard Worker ; MM32: mul $[[T0:[0-9]+]], $4, $5 105*9880d681SAndroid Build Coastguard Worker ; MM32: seb $2, $[[T0]] 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Worker %r = mul i8 %a, %b 108*9880d681SAndroid Build Coastguard Worker ret i8 %r 109*9880d681SAndroid Build Coastguard Worker} 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Workerdefine signext i16 @mul_i16(i16 signext %a, i16 signext %b) { 112*9880d681SAndroid Build Coastguard Workerentry: 113*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i16: 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Worker ; M2: mult $4, $5 116*9880d681SAndroid Build Coastguard Worker ; M2: mflo $[[T0:[0-9]+]] 117*9880d681SAndroid Build Coastguard Worker ; M2: sll $[[T0]], $[[T0]], 16 118*9880d681SAndroid Build Coastguard Worker ; M2: sra $2, $[[T0]], 16 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Worker ; 32R1: mul $[[T0:[0-9]+]], $4, $5 121*9880d681SAndroid Build Coastguard Worker ; 32R1: sll $[[T0]], $[[T0]], 16 122*9880d681SAndroid Build Coastguard Worker ; 32R1: sra $2, $[[T0]], 16 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Worker ; 32R2-R5: mul $[[T0:[0-9]+]], $4, $5 125*9880d681SAndroid Build Coastguard Worker ; 32R2-R5: seh $2, $[[T0]] 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker ; 32R6: mul $[[T0:[0-9]+]], $4, $5 128*9880d681SAndroid Build Coastguard Worker ; 32R6: seh $2, $[[T0]] 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Worker ; M4: mult $4, $5 131*9880d681SAndroid Build Coastguard Worker ; M4: mflo $[[T0:[0-9]+]] 132*9880d681SAndroid Build Coastguard Worker ; M4: sll $[[T0]], $[[T0]], 16 133*9880d681SAndroid Build Coastguard Worker ; M4: sra $2, $[[T0]], 16 134*9880d681SAndroid Build Coastguard Worker 135*9880d681SAndroid Build Coastguard Worker ; 64R1: mul $[[T0:[0-9]+]], $4, $5 136*9880d681SAndroid Build Coastguard Worker ; 64R1: sll $[[T0]], $[[T0]], 16 137*9880d681SAndroid Build Coastguard Worker ; 64R1: sra $2, $[[T0]], 16 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Worker ; 64R2: mul $[[T0:[0-9]+]], $4, $5 140*9880d681SAndroid Build Coastguard Worker ; 64R2: seh $2, $[[T0]] 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Worker ; 64R6: mul $[[T0:[0-9]+]], $4, $5 143*9880d681SAndroid Build Coastguard Worker ; 64R6: seh $2, $[[T0]] 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker ; MM32: mul $[[T0:[0-9]+]], $4, $5 146*9880d681SAndroid Build Coastguard Worker ; MM32: seh $2, $[[T0]] 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Worker %r = mul i16 %a, %b 149*9880d681SAndroid Build Coastguard Worker ret i16 %r 150*9880d681SAndroid Build Coastguard Worker} 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workerdefine signext i32 @mul_i32(i32 signext %a, i32 signext %b) { 153*9880d681SAndroid Build Coastguard Workerentry: 154*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i32: 155*9880d681SAndroid Build Coastguard Worker 156*9880d681SAndroid Build Coastguard Worker ; M2: mult $4, $5 157*9880d681SAndroid Build Coastguard Worker ; M2: mflo $2 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mul $2, $4, $5 160*9880d681SAndroid Build Coastguard Worker ; 32R6: mul $2, $4, $5 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: mul $2, $4, $5 163*9880d681SAndroid Build Coastguard Worker ; 64R6: mul $2, $4, $5 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Worker ; MM32: mul $2, $4, $5 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Worker %r = mul i32 %a, %b 168*9880d681SAndroid Build Coastguard Worker ret i32 %r 169*9880d681SAndroid Build Coastguard Worker} 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Workerdefine signext i64 @mul_i64(i64 signext %a, i64 signext %b) { 172*9880d681SAndroid Build Coastguard Workerentry: 173*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i64: 174*9880d681SAndroid Build Coastguard Worker 175*9880d681SAndroid Build Coastguard Worker ; M2: mult $4, $7 176*9880d681SAndroid Build Coastguard Worker ; M2: mflo $[[T0:[0-9]+]] 177*9880d681SAndroid Build Coastguard Worker ; M2: mult $5, $6 178*9880d681SAndroid Build Coastguard Worker ; M2: mflo $[[T1:[0-9]+]] 179*9880d681SAndroid Build Coastguard Worker ; M2: multu $5, $7 180*9880d681SAndroid Build Coastguard Worker ; M2: mflo $3 181*9880d681SAndroid Build Coastguard Worker ; M2: mfhi $4 182*9880d681SAndroid Build Coastguard Worker ; M2: addu $[[T2:[0-9]+]], $4, $[[T1]] 183*9880d681SAndroid Build Coastguard Worker ; M2: addu $2, $[[T2]], $[[T0]] 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: multu $5, $7 186*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mflo $3 187*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mfhi $[[T0:[0-9]+]] 188*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mul $[[T1:[0-9]+]], $4, $7 189*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: mul $[[T2:[0-9]+]], $5, $6 190*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: addu $[[T0]], $[[T0]], $[[T2:[0-9]+]] 191*9880d681SAndroid Build Coastguard Worker ; 32R1-R5: addu $2, $[[T0]], $[[T1]] 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker ; 32R6-DAG: mul $3, $5, $7 194*9880d681SAndroid Build Coastguard Worker ; 32R6-DAG: mul $[[T0:[0-9]+]], $4, $7 195*9880d681SAndroid Build Coastguard Worker ; 32R6-DAG: mul $[[T1:[0-9]+]], $5, $6 196*9880d681SAndroid Build Coastguard Worker ; 32R6: muhu $[[T2:[0-9]+]], $5, $7 197*9880d681SAndroid Build Coastguard Worker ; 32R6: addu $[[T1]], $[[T2]], $[[T1]] 198*9880d681SAndroid Build Coastguard Worker ; 32R6: addu $2, $[[T1]], $[[T0]] 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker ; M4: dmult $4, $5 201*9880d681SAndroid Build Coastguard Worker ; M4: mflo $2 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: dmult $4, $5 204*9880d681SAndroid Build Coastguard Worker ; 64R1-R5: mflo $2 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Worker ; 64R6: dmul $2, $4, $5 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Worker ; MM32R3: multu $[[T0:[0-9]+]], $7 209*9880d681SAndroid Build Coastguard Worker ; MM32R3: mflo $[[T1:[0-9]+]] 210*9880d681SAndroid Build Coastguard Worker ; MM32R3: mfhi $[[T2:[0-9]+]] 211*9880d681SAndroid Build Coastguard Worker ; MM32R3: mul $[[T3:[0-9]+]], $4, $7 212*9880d681SAndroid Build Coastguard Worker ; MM32R3: mul $[[T0]], $[[T0]], $6 213*9880d681SAndroid Build Coastguard Worker ; MM32R3: addu16 $[[T2]], $[[T2]], $[[T0]] 214*9880d681SAndroid Build Coastguard Worker ; MM32R3: addu16 $2, $[[T2]], $[[T3]] 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Worker ; MM32R6: mul $[[T0:[0-9]+]], $5, $7 217*9880d681SAndroid Build Coastguard Worker ; MM32R6: mul $[[T1:[0-9]+]], $4, $7 218*9880d681SAndroid Build Coastguard Worker ; MM32R6: mul $[[T2:[0-9]+]], $5, $6 219*9880d681SAndroid Build Coastguard Worker ; MM32R6: muhu $[[T3:[0-9]+]], $5, $7 220*9880d681SAndroid Build Coastguard Worker ; MM32R6: addu16 $[[T2]], $[[T3]], $[[T2]] 221*9880d681SAndroid Build Coastguard Worker ; MM32R6: addu16 $2, $[[T2]], $[[T1]] 222*9880d681SAndroid Build Coastguard Worker 223*9880d681SAndroid Build Coastguard Worker %r = mul i64 %a, %b 224*9880d681SAndroid Build Coastguard Worker ret i64 %r 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerdefine signext i128 @mul_i128(i128 signext %a, i128 signext %b) { 228*9880d681SAndroid Build Coastguard Workerentry: 229*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: mul_i128: 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Worker ; GP32: lw $25, %call16(__multi3)($gp) 232*9880d681SAndroid Build Coastguard Worker 233*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: dmult $4, $7 234*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: mflo $[[T0:[0-9]+]] 235*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: dmult $5, $6 236*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: mflo $[[T1:[0-9]+]] 237*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: dmultu $5, $7 238*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: mflo $3 239*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: mfhi $[[T2:[0-9]+]] 240*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: daddu $[[T3:[0-9]+]], $[[T2]], $[[T1]] 241*9880d681SAndroid Build Coastguard Worker ; GP64-NOT-R6: daddu $2, $[[T3:[0-9]+]], $[[T0]] 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker ; 64R6-DAG: dmul $3, $5, $7 244*9880d681SAndroid Build Coastguard Worker ; 64R6-DAG: dmul $[[T0:[0-9]+]], $4, $7 245*9880d681SAndroid Build Coastguard Worker ; 64R6-DAG: dmul $[[T1:[0-9]+]], $5, $6 246*9880d681SAndroid Build Coastguard Worker ; 64R6: dmuhu $[[T2:[0-9]+]], $5, $7 247*9880d681SAndroid Build Coastguard Worker ; 64R6: daddu $[[T3:[0-9]+]], $[[T2]], $[[T1]] 248*9880d681SAndroid Build Coastguard Worker ; 64R6: daddu $2, $[[T1]], $[[T0]] 249*9880d681SAndroid Build Coastguard Worker 250*9880d681SAndroid Build Coastguard Worker ; MM32: lw $25, %call16(__multi3)($2) 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Worker %r = mul i128 %a, %b 253*9880d681SAndroid Build Coastguard Worker ret i128 %r 254*9880d681SAndroid Build Coastguard Worker} 255