1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32,MIPS32-EL %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mcpu=mips32 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32,MIPS32-EB %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32,MIPS32-EL %s 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mcpu=mips32r2 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32,MIPS32-EB %s 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r6 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32R6,MIPS32R6-EL %s 6*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mcpu=mips32r6 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS32R6,MIPS32R6-EB %s 7*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips4 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EL %s 8*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64 -mcpu=mips4 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EB %s 9*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips64 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EL %s 10*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64 -mcpu=mips64 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EB %s 11*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips64r2 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EL %s 12*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64 -mcpu=mips64r2 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64,MIPS64-EB %s 13*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips64r6 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64R6,MIPS64R6-EL %s 14*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64 -mcpu=mips64r6 -target-abi=n64 -relocation-model=pic < %s | FileCheck -check-prefixes=ALL,MIPS64R6,MIPS64R6-EB %s 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker%struct.SLL = type { i64 } 17*9880d681SAndroid Build Coastguard Worker%struct.SI = type { i32 } 18*9880d681SAndroid Build Coastguard Worker%struct.SUI = type { i32 } 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker@sll = common global %struct.SLL zeroinitializer, align 1 21*9880d681SAndroid Build Coastguard Worker@si = common global %struct.SI zeroinitializer, align 1 22*9880d681SAndroid Build Coastguard Worker@sui = common global %struct.SUI zeroinitializer, align 1 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerdefine i32 @load_SI() nounwind readonly { 25*9880d681SAndroid Build Coastguard Workerentry: 26*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: load_SI: 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 29*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwr $[[R0]], 0($[[R1]]) 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 32*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwr $[[R0]], 3($[[R1]]) 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(si)( 35*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $2, 0($[[PTR]]) 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: lwl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 38*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: lwr $[[R0]], 0($[[R1]]) 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 41*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwr $[[R0]], 3($[[R1]]) 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(si)( 44*9880d681SAndroid Build Coastguard Worker; MIPS64R6: lw $2, 0($[[PTR]]) 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* getelementptr inbounds (%struct.SI, %struct.SI* @si, i32 0, i32 0), align 1 47*9880d681SAndroid Build Coastguard Worker ret i32 %0 48*9880d681SAndroid Build Coastguard Worker} 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerdefine void @store_SI(i32 signext %a) nounwind { 51*9880d681SAndroid Build Coastguard Workerentry: 52*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: store_SI: 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: swl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 55*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: swr $[[R0]], 0($[[R1]]) 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: swl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 58*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: swr $[[R0]], 3($[[R1]]) 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(si)( 61*9880d681SAndroid Build Coastguard Worker; MIPS32R6: sw $4, 0($[[PTR]]) 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: swl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 64*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: swr $[[R0]], 0($[[R1]]) 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: swl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 67*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: swr $[[R0]], 3($[[R1]]) 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(si)( 70*9880d681SAndroid Build Coastguard Worker; MIPS64R6: sw $4, 0($[[PTR]]) 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Worker store i32 %a, i32* getelementptr inbounds (%struct.SI, %struct.SI* @si, i32 0, i32 0), align 1 73*9880d681SAndroid Build Coastguard Worker ret void 74*9880d681SAndroid Build Coastguard Worker} 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Workerdefine i64 @load_SLL() nounwind readonly { 77*9880d681SAndroid Build Coastguard Workerentry: 78*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: load_SLL: 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwl $2, 3($[[R1:[0-9]+]]) 81*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwr $2, 0($[[R1]]) 82*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwl $3, 7($[[R1:[0-9]+]]) 83*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwr $3, 4($[[R1]]) 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwl $2, 0($[[R1:[0-9]+]]) 86*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwr $2, 3($[[R1]]) 87*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwl $3, 4($[[R1:[0-9]+]]) 88*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwr $3, 7($[[R1]]) 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(sll)( 91*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $2, 0($[[PTR]]) 92*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $3, 4($[[PTR]]) 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ldl $[[R0:[0-9]+]], 7($[[R1:[0-9]+]]) 95*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ldr $[[R0]], 0($[[R1]]) 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ldl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 98*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ldr $[[R0]], 7($[[R1]]) 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(sll)( 101*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $2, 0($[[PTR]]) 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* getelementptr inbounds (%struct.SLL, %struct.SLL* @sll, i64 0, i32 0), align 1 104*9880d681SAndroid Build Coastguard Worker ret i64 %0 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Workerdefine i64 @load_SI_sext_to_i64() nounwind readonly { 108*9880d681SAndroid Build Coastguard Workerentry: 109*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: load_SI_sext_to_i64: 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 112*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lwr $[[R0]], 0($[[R1]]) 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 115*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lwr $[[R0]], 3($[[R1]]) 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(si)( 118*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL: lw $2, 0($[[PTR]]) 119*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL: sra $3, $2, 31 120*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB: lw $3, 0($[[PTR]]) 121*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB: sra $2, $3, 31 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: lwl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 124*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: lwr $[[R0]], 0($[[R1]]) 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 127*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwr $[[R0]], 3($[[R1]]) 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(si)( 130*9880d681SAndroid Build Coastguard Worker; MIPS64R6: lw $2, 0($[[PTR]]) 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* getelementptr inbounds (%struct.SI, %struct.SI* @si, i64 0, i32 0), align 1 133*9880d681SAndroid Build Coastguard Worker %conv = sext i32 %0 to i64 134*9880d681SAndroid Build Coastguard Worker ret i64 %conv 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdefine i64 @load_UI() nounwind readonly { 138*9880d681SAndroid Build Coastguard Workerentry: 139*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: load_UI: 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwl $[[R2:2]], 3($[[R1:[0-9]+]]) 142*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwr $[[R2]], 0($[[R1]]) 143*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: addiu $3, $zero, 0 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwl $[[R2:3]], 0($[[R1:[0-9]+]]) 146*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwr $[[R2]], 3($[[R1]]) 147*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: addiu $2, $zero, 0 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(sui)( 150*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: lw $2, 0($[[PTR]]) 151*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: addiu $3, $zero, 0 152*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: lw $3, 0($[[PTR]]) 153*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: addiu $2, $zero, 0 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 156*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwr $[[R0]], 0($[[R1]]) 157*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: daddiu $[[R2:[0-9]+]], $zero, 1 158*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: dsll $[[R3:[0-9]+]], $[[R2]], 32 159*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: daddiu $[[R4:[0-9]+]], $[[R3]], -1 160*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: and ${{[0-9]+}}, $[[R0]], $[[R4]] 161*9880d681SAndroid Build Coastguard Worker 162*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 163*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: lwr $[[R0]], 3($[[R1]]) 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(sui)( 166*9880d681SAndroid Build Coastguard Worker; MIPS64R6: lwu $2, 0($[[PTR]]) 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* getelementptr inbounds (%struct.SUI, %struct.SUI* @sui, i64 0, i32 0), align 1 169*9880d681SAndroid Build Coastguard Worker %conv = zext i32 %0 to i64 170*9880d681SAndroid Build Coastguard Worker ret i64 %conv 171*9880d681SAndroid Build Coastguard Worker} 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Workerdefine void @store_SLL(i64 %a) nounwind { 174*9880d681SAndroid Build Coastguard Workerentry: 175*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: store_SLL: 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swl $[[A1:4]], 3($[[R1:[0-9]+]]) 178*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swr $[[A1]], 0($[[R1]]) 179*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swl $[[A2:5]], 7($[[R1:[0-9]+]]) 180*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swr $[[A2]], 4($[[R1]]) 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swl $[[A1:4]], 0($[[R1:[0-9]+]]) 183*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swr $[[A1]], 3($[[R1]]) 184*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swl $[[A1:5]], 4($[[R1:[0-9]+]]) 185*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swr $[[A1]], 7($[[R1]]) 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $[[PTR:[0-9]+]], %got(sll)( 188*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sw $4, 0($[[PTR]]) 189*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sw $5, 4($[[PTR]]) 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: sdl $[[R0:[0-9]+]], 7($[[R1:[0-9]+]]) 192*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: sdr $[[R0]], 0($[[R1]]) 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: sdl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 195*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: sdr $[[R0]], 7($[[R1]]) 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(sll)( 198*9880d681SAndroid Build Coastguard Worker; MIPS64R6: sd $4, 0($[[PTR]]) 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker store i64 %a, i64* getelementptr inbounds (%struct.SLL, %struct.SLL* @sll, i64 0, i32 0), align 1 201*9880d681SAndroid Build Coastguard Worker ret void 202*9880d681SAndroid Build Coastguard Worker} 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workerdefine void @store_SI_trunc_from_i64(i32 signext %a) nounwind { 205*9880d681SAndroid Build Coastguard Workerentry: 206*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: store_SI_trunc_from_i64: 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: swl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 209*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: swr $[[R0]], 0($[[R1]]) 210*9880d681SAndroid Build Coastguard Worker 211*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: swl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 212*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: swr $[[R0]], 3($[[R1]]) 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(si)( 215*9880d681SAndroid Build Coastguard Worker; MIPS32R6: sw $4, 0($[[PTR]]) 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: swl $[[R0:[0-9]+]], 3($[[R1:[0-9]+]]) 218*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: swr $[[R0]], 0($[[R1]]) 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: swl $[[R0:[0-9]+]], 0($[[R1:[0-9]+]]) 221*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: swr $[[R0]], 3($[[R1]]) 222*9880d681SAndroid Build Coastguard Worker 223*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(si)( 224*9880d681SAndroid Build Coastguard Worker; MIPS64R6: sw $4, 0($[[PTR]]) 225*9880d681SAndroid Build Coastguard Worker 226*9880d681SAndroid Build Coastguard Worker store i32 %a, i32* getelementptr inbounds (%struct.SI, %struct.SI* @si, i64 0, i32 0), align 1 227*9880d681SAndroid Build Coastguard Worker ret void 228*9880d681SAndroid Build Coastguard Worker} 229*9880d681SAndroid Build Coastguard Worker 230*9880d681SAndroid Build Coastguard Worker; 231*9880d681SAndroid Build Coastguard Worker; Structures are simply concatenations of the members. They are unaffected by 232*9880d681SAndroid Build Coastguard Worker; endianness 233*9880d681SAndroid Build Coastguard Worker; 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Worker%struct.S0 = type { i8, i8 } 236*9880d681SAndroid Build Coastguard Worker@struct_s0 = common global %struct.S0 zeroinitializer, align 1 237*9880d681SAndroid Build Coastguard Worker%struct.S1 = type { i16, i16 } 238*9880d681SAndroid Build Coastguard Worker@struct_s1 = common global %struct.S1 zeroinitializer, align 1 239*9880d681SAndroid Build Coastguard Worker%struct.S2 = type { i32, i32 } 240*9880d681SAndroid Build Coastguard Worker@struct_s2 = common global %struct.S2 zeroinitializer, align 1 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Workerdefine void @copy_struct_S0() nounwind { 243*9880d681SAndroid Build Coastguard Workerentry: 244*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: copy_struct_S0: 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lw $[[PTR:[0-9]+]], %got(struct_s0)( 247*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lw $[[PTR:[0-9]+]], %got(struct_s0)( 248*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(struct_s0)( 249*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ld $[[PTR:[0-9]+]], %got_disp(struct_s0)( 250*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ld $[[PTR:[0-9]+]], %got_disp(struct_s0)( 251*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(struct_s0)( 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Worker; FIXME: We should be able to do better than this on MIPS32r6/MIPS64r6 since 254*9880d681SAndroid Build Coastguard Worker; we have unaligned halfword load/store available 255*9880d681SAndroid Build Coastguard Worker; ALL-DAG: lbu $[[R1:[0-9]+]], 0($[[PTR]]) 256*9880d681SAndroid Build Coastguard Worker; ALL-DAG: sb $[[R1]], 2($[[PTR]]) 257*9880d681SAndroid Build Coastguard Worker; ALL-DAG: lbu $[[R1:[0-9]+]], 1($[[PTR]]) 258*9880d681SAndroid Build Coastguard Worker; ALL-DAG: sb $[[R1]], 3($[[PTR]]) 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Worker %0 = load %struct.S0, %struct.S0* getelementptr inbounds (%struct.S0, %struct.S0* @struct_s0, i32 0), align 1 261*9880d681SAndroid Build Coastguard Worker store %struct.S0 %0, %struct.S0* getelementptr inbounds (%struct.S0, %struct.S0* @struct_s0, i32 1), align 1 262*9880d681SAndroid Build Coastguard Worker ret void 263*9880d681SAndroid Build Coastguard Worker} 264*9880d681SAndroid Build Coastguard Worker 265*9880d681SAndroid Build Coastguard Workerdefine void @copy_struct_S1() nounwind { 266*9880d681SAndroid Build Coastguard Workerentry: 267*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: copy_struct_S1: 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lw $[[PTR:[0-9]+]], %got(struct_s1)( 270*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lw $[[PTR:[0-9]+]], %got(struct_s1)( 271*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: lbu $[[R1:[0-9]+]], 0($[[PTR]]) 272*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: sb $[[R1]], 4($[[PTR]]) 273*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: lbu $[[R1:[0-9]+]], 1($[[PTR]]) 274*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: sb $[[R1]], 5($[[PTR]]) 275*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: lbu $[[R1:[0-9]+]], 2($[[PTR]]) 276*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: sb $[[R1]], 6($[[PTR]]) 277*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: lbu $[[R1:[0-9]+]], 3($[[PTR]]) 278*9880d681SAndroid Build Coastguard Worker; MIPS32-DAG: sb $[[R1]], 7($[[PTR]]) 279*9880d681SAndroid Build Coastguard Worker 280*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(struct_s1)( 281*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lhu $[[R1:[0-9]+]], 0($[[PTR]]) 282*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sh $[[R1]], 4($[[PTR]]) 283*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lhu $[[R1:[0-9]+]], 2($[[PTR]]) 284*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sh $[[R1]], 6($[[PTR]]) 285*9880d681SAndroid Build Coastguard Worker 286*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ld $[[PTR:[0-9]+]], %got_disp(struct_s1)( 287*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ld $[[PTR:[0-9]+]], %got_disp(struct_s1)( 288*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: lbu $[[R1:[0-9]+]], 0($[[PTR]]) 289*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: sb $[[R1]], 4($[[PTR]]) 290*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: lbu $[[R1:[0-9]+]], 1($[[PTR]]) 291*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: sb $[[R1]], 5($[[PTR]]) 292*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: lbu $[[R1:[0-9]+]], 2($[[PTR]]) 293*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: sb $[[R1]], 6($[[PTR]]) 294*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: lbu $[[R1:[0-9]+]], 3($[[PTR]]) 295*9880d681SAndroid Build Coastguard Worker; MIPS64-DAG: sb $[[R1]], 7($[[PTR]]) 296*9880d681SAndroid Build Coastguard Worker 297*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(struct_s1)( 298*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: lhu $[[R1:[0-9]+]], 0($[[PTR]]) 299*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: sh $[[R1]], 4($[[PTR]]) 300*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: lhu $[[R1:[0-9]+]], 2($[[PTR]]) 301*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: sh $[[R1]], 6($[[PTR]]) 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Worker %0 = load %struct.S1, %struct.S1* getelementptr inbounds (%struct.S1, %struct.S1* @struct_s1, i32 0), align 1 304*9880d681SAndroid Build Coastguard Worker store %struct.S1 %0, %struct.S1* getelementptr inbounds (%struct.S1, %struct.S1* @struct_s1, i32 1), align 1 305*9880d681SAndroid Build Coastguard Worker ret void 306*9880d681SAndroid Build Coastguard Worker} 307*9880d681SAndroid Build Coastguard Worker 308*9880d681SAndroid Build Coastguard Workerdefine void @copy_struct_S2() nounwind { 309*9880d681SAndroid Build Coastguard Workerentry: 310*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: copy_struct_S2: 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lw $[[PTR:[0-9]+]], %got(struct_s2)( 313*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwl $[[R1:[0-9]+]], 3($[[PTR]]) 314*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwr $[[R1]], 0($[[PTR]]) 315*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swl $[[R1]], 11($[[PTR]]) 316*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swr $[[R1]], 8($[[PTR]]) 317*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwl $[[R1:[0-9]+]], 7($[[PTR]]) 318*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwr $[[R1]], 4($[[PTR]]) 319*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swl $[[R1]], 15($[[PTR]]) 320*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: swr $[[R1]], 12($[[PTR]]) 321*9880d681SAndroid Build Coastguard Worker 322*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lw $[[PTR:[0-9]+]], %got(struct_s2)( 323*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwl $[[R1:[0-9]+]], 0($[[PTR]]) 324*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwr $[[R1]], 3($[[PTR]]) 325*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swl $[[R1]], 8($[[PTR]]) 326*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swr $[[R1]], 11($[[PTR]]) 327*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwl $[[R1:[0-9]+]], 4($[[PTR]]) 328*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwr $[[R1]], 7($[[PTR]]) 329*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swl $[[R1]], 12($[[PTR]]) 330*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: swr $[[R1]], 15($[[PTR]]) 331*9880d681SAndroid Build Coastguard Worker 332*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[PTR:[0-9]+]], %got(struct_s2)( 333*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $[[R1:[0-9]+]], 0($[[PTR]]) 334*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sw $[[R1]], 8($[[PTR]]) 335*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $[[R1:[0-9]+]], 4($[[PTR]]) 336*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: sw $[[R1]], 12($[[PTR]]) 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ld $[[PTR:[0-9]+]], %got_disp(struct_s2)( 339*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwl $[[R1:[0-9]+]], 3($[[PTR]]) 340*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwr $[[R1]], 0($[[PTR]]) 341*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: swl $[[R1]], 11($[[PTR]]) 342*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: swr $[[R1]], 8($[[PTR]]) 343*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwl $[[R1:[0-9]+]], 7($[[PTR]]) 344*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwr $[[R1]], 4($[[PTR]]) 345*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: swl $[[R1]], 15($[[PTR]]) 346*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: swr $[[R1]], 12($[[PTR]]) 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ld $[[PTR:[0-9]+]], %got_disp(struct_s2)( 349*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwl $[[R1:[0-9]+]], 0($[[PTR]]) 350*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwr $[[R1]], 3($[[PTR]]) 351*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: swl $[[R1]], 8($[[PTR]]) 352*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: swr $[[R1]], 11($[[PTR]]) 353*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwl $[[R1:[0-9]+]], 4($[[PTR]]) 354*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwr $[[R1]], 7($[[PTR]]) 355*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: swl $[[R1]], 12($[[PTR]]) 356*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: swr $[[R1]], 15($[[PTR]]) 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[PTR:[0-9]+]], %got_disp(struct_s2)( 359*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: lw $[[R1:[0-9]+]], 0($[[PTR]]) 360*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: sw $[[R1]], 8($[[PTR]]) 361*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: lw $[[R1:[0-9]+]], 4($[[PTR]]) 362*9880d681SAndroid Build Coastguard Worker; MIPS64R6-DAG: sw $[[R1]], 12($[[PTR]]) 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Worker %0 = load %struct.S2, %struct.S2* getelementptr inbounds (%struct.S2, %struct.S2* @struct_s2, i32 0), align 1 365*9880d681SAndroid Build Coastguard Worker store %struct.S2 %0, %struct.S2* getelementptr inbounds (%struct.S2, %struct.S2* @struct_s2, i32 1), align 1 366*9880d681SAndroid Build Coastguard Worker ret void 367*9880d681SAndroid Build Coastguard Worker} 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Worker; 370*9880d681SAndroid Build Coastguard Worker; Arrays are simply concatenations of the members. They are unaffected by 371*9880d681SAndroid Build Coastguard Worker; endianness 372*9880d681SAndroid Build Coastguard Worker; 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Worker@arr = common global [7 x i8] zeroinitializer, align 1 375*9880d681SAndroid Build Coastguard Worker 376*9880d681SAndroid Build Coastguard Workerdefine void @pass_array_byval() nounwind { 377*9880d681SAndroid Build Coastguard Workerentry: 378*9880d681SAndroid Build Coastguard Worker; ALL-LABEL: pass_array_byval: 379*9880d681SAndroid Build Coastguard Worker 380*9880d681SAndroid Build Coastguard Worker; MIPS32-EL: lw $[[SPTR:[0-9]+]], %got(arr)( 381*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwl $[[R1:4]], 3($[[PTR]]) 382*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lwr $[[R1]], 0($[[PTR]]) 383*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lbu $[[R2:[0-9]+]], 4($[[PTR]]) 384*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lbu $[[R3:[0-9]+]], 5($[[PTR]]) 385*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: sll $[[T0:[0-9]+]], $[[R3]], 8 386*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: or $[[T1:[0-9]+]], $[[T0]], $[[R2]] 387*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: lbu $[[R4:[0-9]+]], 6($[[PTR]]) 388*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: sll $[[T2:[0-9]+]], $[[R4]], 16 389*9880d681SAndroid Build Coastguard Worker; MIPS32-EL-DAG: or $5, $[[T1]], $[[T2]] 390*9880d681SAndroid Build Coastguard Worker 391*9880d681SAndroid Build Coastguard Worker; MIPS32-EB: lw $[[SPTR:[0-9]+]], %got(arr)( 392*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwl $[[R1:4]], 0($[[PTR]]) 393*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lwr $[[R1]], 3($[[PTR]]) 394*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lbu $[[R2:[0-9]+]], 5($[[PTR]]) 395*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lbu $[[R3:[0-9]+]], 4($[[PTR]]) 396*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: sll $[[T0:[0-9]+]], $[[R3]], 8 397*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: or $[[T1:[0-9]+]], $[[T0]], $[[R2]] 398*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: sll $[[T1]], $[[T1]], 16 399*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: lbu $[[R4:[0-9]+]], 6($[[PTR]]) 400*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: sll $[[T2:[0-9]+]], $[[R4]], 8 401*9880d681SAndroid Build Coastguard Worker; MIPS32-EB-DAG: or $5, $[[T1]], $[[T2]] 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Worker; MIPS32R6: lw $[[SPTR:[0-9]+]], %got(arr)( 404*9880d681SAndroid Build Coastguard Worker; MIPS32R6-DAG: lw $4, 0($[[PTR]]) 405*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: lhu $[[R2:[0-9]+]], 4($[[PTR]]) 406*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: lbu $[[R3:[0-9]+]], 6($[[PTR]]) 407*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: sll $[[T0:[0-9]+]], $[[R3]], 16 408*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EL-DAG: or $5, $[[R2]], $[[T0]] 409*9880d681SAndroid Build Coastguard Worker 410*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: lhu $[[R2:[0-9]+]], 4($[[PTR]]) 411*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: lbu $[[R3:[0-9]+]], 6($[[PTR]]) 412*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: sll $[[T0:[0-9]+]], $[[R2]], 16 413*9880d681SAndroid Build Coastguard Worker; MIPS32R6-EB-DAG: or $5, $[[T0]], $[[R3]] 414*9880d681SAndroid Build Coastguard Worker 415*9880d681SAndroid Build Coastguard Worker; MIPS64-EL: ld $[[SPTR:[0-9]+]], %got_disp(arr)( 416*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwl $[[R1:[0-9]+]], 3($[[PTR]]) 417*9880d681SAndroid Build Coastguard Worker; MIPS64-EL-DAG: lwr $[[R1]], 0($[[PTR]]) 418*9880d681SAndroid Build Coastguard Worker 419*9880d681SAndroid Build Coastguard Worker; MIPS64-EB: ld $[[SPTR:[0-9]+]], %got_disp(arr)( 420*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwl $[[R1:[0-9]+]], 0($[[PTR]]) 421*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lwr $[[R1]], 3($[[PTR]]) 422*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: dsll $[[R1]], $[[R1]], 32 423*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lbu $[[R2:[0-9]+]], 5($[[PTR]]) 424*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lbu $[[R3:[0-9]+]], 4($[[PTR]]) 425*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: dsll $[[T0:[0-9]+]], $[[R3]], 8 426*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: or $[[T1:[0-9]+]], $[[T0]], $[[R2]] 427*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: dsll $[[T1]], $[[T1]], 16 428*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: or $[[T3:[0-9]+]], $[[R1]], $[[T1]] 429*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: lbu $[[R4:[0-9]+]], 6($[[PTR]]) 430*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: dsll $[[T4:[0-9]+]], $[[R4]], 8 431*9880d681SAndroid Build Coastguard Worker; MIPS64-EB-DAG: or $4, $[[T3]], $[[T4]] 432*9880d681SAndroid Build Coastguard Worker 433*9880d681SAndroid Build Coastguard Worker; MIPS64R6: ld $[[SPTR:[0-9]+]], %got_disp(arr)( 434*9880d681SAndroid Build Coastguard Worker 435*9880d681SAndroid Build Coastguard Worker tail call void @extern_func([7 x i8]* byval @arr) nounwind 436*9880d681SAndroid Build Coastguard Worker ret void 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Workerdeclare void @extern_func([7 x i8]* byval) 440