1*9880d681SAndroid Build Coastguard Worker; Test that the correct instruction is chosen for spill and reload by trying 2*9880d681SAndroid Build Coastguard Worker; to have 33 live MSA registers simultaneously 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 < %s | FileCheck %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine i32 @test_i8(<16 x i8>* %p0, <16 x i8>* %q1) nounwind { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %p1 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 1 10*9880d681SAndroid Build Coastguard Worker %p2 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 2 11*9880d681SAndroid Build Coastguard Worker %p3 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 3 12*9880d681SAndroid Build Coastguard Worker %p4 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 4 13*9880d681SAndroid Build Coastguard Worker %p5 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 5 14*9880d681SAndroid Build Coastguard Worker %p6 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 6 15*9880d681SAndroid Build Coastguard Worker %p7 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 7 16*9880d681SAndroid Build Coastguard Worker %p8 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 8 17*9880d681SAndroid Build Coastguard Worker %p9 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 9 18*9880d681SAndroid Build Coastguard Worker %p10 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 10 19*9880d681SAndroid Build Coastguard Worker %p11 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 11 20*9880d681SAndroid Build Coastguard Worker %p12 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 12 21*9880d681SAndroid Build Coastguard Worker %p13 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 13 22*9880d681SAndroid Build Coastguard Worker %p14 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 14 23*9880d681SAndroid Build Coastguard Worker %p15 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 15 24*9880d681SAndroid Build Coastguard Worker %p16 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 16 25*9880d681SAndroid Build Coastguard Worker %p17 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 17 26*9880d681SAndroid Build Coastguard Worker %p18 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 18 27*9880d681SAndroid Build Coastguard Worker %p19 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 19 28*9880d681SAndroid Build Coastguard Worker %p20 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 20 29*9880d681SAndroid Build Coastguard Worker %p21 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 21 30*9880d681SAndroid Build Coastguard Worker %p22 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 22 31*9880d681SAndroid Build Coastguard Worker %p23 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 23 32*9880d681SAndroid Build Coastguard Worker %p24 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 24 33*9880d681SAndroid Build Coastguard Worker %p25 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 25 34*9880d681SAndroid Build Coastguard Worker %p26 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 26 35*9880d681SAndroid Build Coastguard Worker %p27 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 27 36*9880d681SAndroid Build Coastguard Worker %p28 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 28 37*9880d681SAndroid Build Coastguard Worker %p29 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 29 38*9880d681SAndroid Build Coastguard Worker %p30 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 30 39*9880d681SAndroid Build Coastguard Worker %p31 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 31 40*9880d681SAndroid Build Coastguard Worker %p32 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 32 41*9880d681SAndroid Build Coastguard Worker %p33 = getelementptr <16 x i8>, <16 x i8>* %p0, i32 33 42*9880d681SAndroid Build Coastguard Worker %0 = load <16 x i8>, <16 x i8>* %p0, align 16 43*9880d681SAndroid Build Coastguard Worker %1 = load <16 x i8>, <16 x i8>* %p1, align 16 44*9880d681SAndroid Build Coastguard Worker %2 = load <16 x i8>, <16 x i8>* %p2, align 16 45*9880d681SAndroid Build Coastguard Worker %3 = load <16 x i8>, <16 x i8>* %p3, align 16 46*9880d681SAndroid Build Coastguard Worker %4 = load <16 x i8>, <16 x i8>* %p4, align 16 47*9880d681SAndroid Build Coastguard Worker %5 = load <16 x i8>, <16 x i8>* %p5, align 16 48*9880d681SAndroid Build Coastguard Worker %6 = load <16 x i8>, <16 x i8>* %p6, align 16 49*9880d681SAndroid Build Coastguard Worker %7 = load <16 x i8>, <16 x i8>* %p7, align 16 50*9880d681SAndroid Build Coastguard Worker %8 = load <16 x i8>, <16 x i8>* %p8, align 16 51*9880d681SAndroid Build Coastguard Worker %9 = load <16 x i8>, <16 x i8>* %p9, align 16 52*9880d681SAndroid Build Coastguard Worker %10 = load <16 x i8>, <16 x i8>* %p10, align 16 53*9880d681SAndroid Build Coastguard Worker %11 = load <16 x i8>, <16 x i8>* %p11, align 16 54*9880d681SAndroid Build Coastguard Worker %12 = load <16 x i8>, <16 x i8>* %p12, align 16 55*9880d681SAndroid Build Coastguard Worker %13 = load <16 x i8>, <16 x i8>* %p13, align 16 56*9880d681SAndroid Build Coastguard Worker %14 = load <16 x i8>, <16 x i8>* %p14, align 16 57*9880d681SAndroid Build Coastguard Worker %15 = load <16 x i8>, <16 x i8>* %p15, align 16 58*9880d681SAndroid Build Coastguard Worker %16 = load <16 x i8>, <16 x i8>* %p16, align 16 59*9880d681SAndroid Build Coastguard Worker %17 = load <16 x i8>, <16 x i8>* %p17, align 16 60*9880d681SAndroid Build Coastguard Worker %18 = load <16 x i8>, <16 x i8>* %p18, align 16 61*9880d681SAndroid Build Coastguard Worker %19 = load <16 x i8>, <16 x i8>* %p19, align 16 62*9880d681SAndroid Build Coastguard Worker %20 = load <16 x i8>, <16 x i8>* %p20, align 16 63*9880d681SAndroid Build Coastguard Worker %21 = load <16 x i8>, <16 x i8>* %p21, align 16 64*9880d681SAndroid Build Coastguard Worker %22 = load <16 x i8>, <16 x i8>* %p22, align 16 65*9880d681SAndroid Build Coastguard Worker %23 = load <16 x i8>, <16 x i8>* %p23, align 16 66*9880d681SAndroid Build Coastguard Worker %24 = load <16 x i8>, <16 x i8>* %p24, align 16 67*9880d681SAndroid Build Coastguard Worker %25 = load <16 x i8>, <16 x i8>* %p25, align 16 68*9880d681SAndroid Build Coastguard Worker %26 = load <16 x i8>, <16 x i8>* %p26, align 16 69*9880d681SAndroid Build Coastguard Worker %27 = load <16 x i8>, <16 x i8>* %p27, align 16 70*9880d681SAndroid Build Coastguard Worker %28 = load <16 x i8>, <16 x i8>* %p28, align 16 71*9880d681SAndroid Build Coastguard Worker %29 = load <16 x i8>, <16 x i8>* %p29, align 16 72*9880d681SAndroid Build Coastguard Worker %30 = load <16 x i8>, <16 x i8>* %p30, align 16 73*9880d681SAndroid Build Coastguard Worker %31 = load <16 x i8>, <16 x i8>* %p31, align 16 74*9880d681SAndroid Build Coastguard Worker %32 = load <16 x i8>, <16 x i8>* %p32, align 16 75*9880d681SAndroid Build Coastguard Worker %33 = load <16 x i8>, <16 x i8>* %p33, align 16 76*9880d681SAndroid Build Coastguard Worker %r1 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %0, <16 x i8> %1) 77*9880d681SAndroid Build Coastguard Worker %r2 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r1, <16 x i8> %2) 78*9880d681SAndroid Build Coastguard Worker %r3 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r2, <16 x i8> %3) 79*9880d681SAndroid Build Coastguard Worker %r4 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r3, <16 x i8> %4) 80*9880d681SAndroid Build Coastguard Worker %r5 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r4, <16 x i8> %5) 81*9880d681SAndroid Build Coastguard Worker %r6 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r5, <16 x i8> %6) 82*9880d681SAndroid Build Coastguard Worker %r7 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r6, <16 x i8> %7) 83*9880d681SAndroid Build Coastguard Worker %r8 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r7, <16 x i8> %8) 84*9880d681SAndroid Build Coastguard Worker %r9 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r8, <16 x i8> %9) 85*9880d681SAndroid Build Coastguard Worker %r10 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r9, <16 x i8> %10) 86*9880d681SAndroid Build Coastguard Worker %r11 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r10, <16 x i8> %11) 87*9880d681SAndroid Build Coastguard Worker %r12 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r11, <16 x i8> %12) 88*9880d681SAndroid Build Coastguard Worker %r13 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r12, <16 x i8> %13) 89*9880d681SAndroid Build Coastguard Worker %r14 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r13, <16 x i8> %14) 90*9880d681SAndroid Build Coastguard Worker %r15 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r14, <16 x i8> %15) 91*9880d681SAndroid Build Coastguard Worker %r16 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r15, <16 x i8> %16) 92*9880d681SAndroid Build Coastguard Worker %r17 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r16, <16 x i8> %17) 93*9880d681SAndroid Build Coastguard Worker %r18 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r17, <16 x i8> %18) 94*9880d681SAndroid Build Coastguard Worker %r19 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r18, <16 x i8> %19) 95*9880d681SAndroid Build Coastguard Worker %r20 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r19, <16 x i8> %20) 96*9880d681SAndroid Build Coastguard Worker %r21 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r20, <16 x i8> %21) 97*9880d681SAndroid Build Coastguard Worker %r22 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r21, <16 x i8> %22) 98*9880d681SAndroid Build Coastguard Worker %r23 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r22, <16 x i8> %23) 99*9880d681SAndroid Build Coastguard Worker %r24 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r23, <16 x i8> %24) 100*9880d681SAndroid Build Coastguard Worker %r25 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r24, <16 x i8> %25) 101*9880d681SAndroid Build Coastguard Worker %r26 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r25, <16 x i8> %26) 102*9880d681SAndroid Build Coastguard Worker %r27 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r26, <16 x i8> %27) 103*9880d681SAndroid Build Coastguard Worker %r28 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r27, <16 x i8> %28) 104*9880d681SAndroid Build Coastguard Worker %r29 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r28, <16 x i8> %29) 105*9880d681SAndroid Build Coastguard Worker %r30 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r29, <16 x i8> %30) 106*9880d681SAndroid Build Coastguard Worker %r31 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r30, <16 x i8> %31) 107*9880d681SAndroid Build Coastguard Worker %r32 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r31, <16 x i8> %32) 108*9880d681SAndroid Build Coastguard Worker %r33 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r32, <16 x i8> %33) 109*9880d681SAndroid Build Coastguard Worker %rx1 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %r33, <16 x i8> %1) 110*9880d681SAndroid Build Coastguard Worker %rx2 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx1, <16 x i8> %2) 111*9880d681SAndroid Build Coastguard Worker %rx3 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx2, <16 x i8> %3) 112*9880d681SAndroid Build Coastguard Worker %rx4 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx3, <16 x i8> %4) 113*9880d681SAndroid Build Coastguard Worker %rx5 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx4, <16 x i8> %5) 114*9880d681SAndroid Build Coastguard Worker %rx6 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx5, <16 x i8> %6) 115*9880d681SAndroid Build Coastguard Worker %rx7 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx6, <16 x i8> %7) 116*9880d681SAndroid Build Coastguard Worker %rx8 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx7, <16 x i8> %8) 117*9880d681SAndroid Build Coastguard Worker %rx9 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx8, <16 x i8> %9) 118*9880d681SAndroid Build Coastguard Worker %rx10 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx9, <16 x i8> %10) 119*9880d681SAndroid Build Coastguard Worker %rx11 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx10, <16 x i8> %11) 120*9880d681SAndroid Build Coastguard Worker %rx12 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx11, <16 x i8> %12) 121*9880d681SAndroid Build Coastguard Worker %rx13 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx12, <16 x i8> %13) 122*9880d681SAndroid Build Coastguard Worker %rx14 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx13, <16 x i8> %14) 123*9880d681SAndroid Build Coastguard Worker %rx15 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx14, <16 x i8> %15) 124*9880d681SAndroid Build Coastguard Worker %rx16 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx15, <16 x i8> %16) 125*9880d681SAndroid Build Coastguard Worker %rx17 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx16, <16 x i8> %17) 126*9880d681SAndroid Build Coastguard Worker %rx18 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx17, <16 x i8> %18) 127*9880d681SAndroid Build Coastguard Worker %rx19 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx18, <16 x i8> %19) 128*9880d681SAndroid Build Coastguard Worker %rx20 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx19, <16 x i8> %20) 129*9880d681SAndroid Build Coastguard Worker %rx21 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx20, <16 x i8> %21) 130*9880d681SAndroid Build Coastguard Worker %rx22 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx21, <16 x i8> %22) 131*9880d681SAndroid Build Coastguard Worker %rx23 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx22, <16 x i8> %23) 132*9880d681SAndroid Build Coastguard Worker %rx24 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx23, <16 x i8> %24) 133*9880d681SAndroid Build Coastguard Worker %rx25 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx24, <16 x i8> %25) 134*9880d681SAndroid Build Coastguard Worker %rx26 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx25, <16 x i8> %26) 135*9880d681SAndroid Build Coastguard Worker %rx27 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx26, <16 x i8> %27) 136*9880d681SAndroid Build Coastguard Worker %rx28 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx27, <16 x i8> %28) 137*9880d681SAndroid Build Coastguard Worker %rx29 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx28, <16 x i8> %29) 138*9880d681SAndroid Build Coastguard Worker %rx30 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx29, <16 x i8> %30) 139*9880d681SAndroid Build Coastguard Worker %rx31 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx30, <16 x i8> %31) 140*9880d681SAndroid Build Coastguard Worker %rx32 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx31, <16 x i8> %32) 141*9880d681SAndroid Build Coastguard Worker %rx33 = call <16 x i8> @llvm.mips.addv.b(<16 x i8> %rx32, <16 x i8> %33) 142*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.mips.copy.s.b(<16 x i8> %rx33, i32 0) 143*9880d681SAndroid Build Coastguard Worker ret i32 %res 144*9880d681SAndroid Build Coastguard Worker} 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.mips.addv.b(<16 x i8>, <16 x i8>) nounwind 147*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.copy.s.b(<16 x i8>, i32) nounwind 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Worker; CHECK: test_i8: 150*9880d681SAndroid Build Coastguard Worker; CHECK: st.b {{.*}} Spill 151*9880d681SAndroid Build Coastguard Worker; CHECK: st.b {{.*}} Spill 152*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b {{.*}} Reload 153*9880d681SAndroid Build Coastguard Worker; CHECK: ld.b {{.*}} Reload 154*9880d681SAndroid Build Coastguard Worker; CHECK: .size 155*9880d681SAndroid Build Coastguard Worker 156*9880d681SAndroid Build Coastguard Workerdefine i32 @test_i16(<8 x i16>* %p0, <8 x i16>* %q1) nounwind { 157*9880d681SAndroid Build Coastguard Workerentry: 158*9880d681SAndroid Build Coastguard Worker %p1 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 1 159*9880d681SAndroid Build Coastguard Worker %p2 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 2 160*9880d681SAndroid Build Coastguard Worker %p3 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 3 161*9880d681SAndroid Build Coastguard Worker %p4 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 4 162*9880d681SAndroid Build Coastguard Worker %p5 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 5 163*9880d681SAndroid Build Coastguard Worker %p6 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 6 164*9880d681SAndroid Build Coastguard Worker %p7 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 7 165*9880d681SAndroid Build Coastguard Worker %p8 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 8 166*9880d681SAndroid Build Coastguard Worker %p9 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 9 167*9880d681SAndroid Build Coastguard Worker %p10 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 10 168*9880d681SAndroid Build Coastguard Worker %p11 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 11 169*9880d681SAndroid Build Coastguard Worker %p12 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 12 170*9880d681SAndroid Build Coastguard Worker %p13 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 13 171*9880d681SAndroid Build Coastguard Worker %p14 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 14 172*9880d681SAndroid Build Coastguard Worker %p15 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 15 173*9880d681SAndroid Build Coastguard Worker %p16 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 16 174*9880d681SAndroid Build Coastguard Worker %p17 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 17 175*9880d681SAndroid Build Coastguard Worker %p18 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 18 176*9880d681SAndroid Build Coastguard Worker %p19 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 19 177*9880d681SAndroid Build Coastguard Worker %p20 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 20 178*9880d681SAndroid Build Coastguard Worker %p21 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 21 179*9880d681SAndroid Build Coastguard Worker %p22 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 22 180*9880d681SAndroid Build Coastguard Worker %p23 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 23 181*9880d681SAndroid Build Coastguard Worker %p24 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 24 182*9880d681SAndroid Build Coastguard Worker %p25 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 25 183*9880d681SAndroid Build Coastguard Worker %p26 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 26 184*9880d681SAndroid Build Coastguard Worker %p27 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 27 185*9880d681SAndroid Build Coastguard Worker %p28 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 28 186*9880d681SAndroid Build Coastguard Worker %p29 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 29 187*9880d681SAndroid Build Coastguard Worker %p30 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 30 188*9880d681SAndroid Build Coastguard Worker %p31 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 31 189*9880d681SAndroid Build Coastguard Worker %p32 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 32 190*9880d681SAndroid Build Coastguard Worker %p33 = getelementptr <8 x i16>, <8 x i16>* %p0, i32 33 191*9880d681SAndroid Build Coastguard Worker %0 = load <8 x i16>, <8 x i16>* %p0, align 16 192*9880d681SAndroid Build Coastguard Worker %1 = load <8 x i16>, <8 x i16>* %p1, align 16 193*9880d681SAndroid Build Coastguard Worker %2 = load <8 x i16>, <8 x i16>* %p2, align 16 194*9880d681SAndroid Build Coastguard Worker %3 = load <8 x i16>, <8 x i16>* %p3, align 16 195*9880d681SAndroid Build Coastguard Worker %4 = load <8 x i16>, <8 x i16>* %p4, align 16 196*9880d681SAndroid Build Coastguard Worker %5 = load <8 x i16>, <8 x i16>* %p5, align 16 197*9880d681SAndroid Build Coastguard Worker %6 = load <8 x i16>, <8 x i16>* %p6, align 16 198*9880d681SAndroid Build Coastguard Worker %7 = load <8 x i16>, <8 x i16>* %p7, align 16 199*9880d681SAndroid Build Coastguard Worker %8 = load <8 x i16>, <8 x i16>* %p8, align 16 200*9880d681SAndroid Build Coastguard Worker %9 = load <8 x i16>, <8 x i16>* %p9, align 16 201*9880d681SAndroid Build Coastguard Worker %10 = load <8 x i16>, <8 x i16>* %p10, align 16 202*9880d681SAndroid Build Coastguard Worker %11 = load <8 x i16>, <8 x i16>* %p11, align 16 203*9880d681SAndroid Build Coastguard Worker %12 = load <8 x i16>, <8 x i16>* %p12, align 16 204*9880d681SAndroid Build Coastguard Worker %13 = load <8 x i16>, <8 x i16>* %p13, align 16 205*9880d681SAndroid Build Coastguard Worker %14 = load <8 x i16>, <8 x i16>* %p14, align 16 206*9880d681SAndroid Build Coastguard Worker %15 = load <8 x i16>, <8 x i16>* %p15, align 16 207*9880d681SAndroid Build Coastguard Worker %16 = load <8 x i16>, <8 x i16>* %p16, align 16 208*9880d681SAndroid Build Coastguard Worker %17 = load <8 x i16>, <8 x i16>* %p17, align 16 209*9880d681SAndroid Build Coastguard Worker %18 = load <8 x i16>, <8 x i16>* %p18, align 16 210*9880d681SAndroid Build Coastguard Worker %19 = load <8 x i16>, <8 x i16>* %p19, align 16 211*9880d681SAndroid Build Coastguard Worker %20 = load <8 x i16>, <8 x i16>* %p20, align 16 212*9880d681SAndroid Build Coastguard Worker %21 = load <8 x i16>, <8 x i16>* %p21, align 16 213*9880d681SAndroid Build Coastguard Worker %22 = load <8 x i16>, <8 x i16>* %p22, align 16 214*9880d681SAndroid Build Coastguard Worker %23 = load <8 x i16>, <8 x i16>* %p23, align 16 215*9880d681SAndroid Build Coastguard Worker %24 = load <8 x i16>, <8 x i16>* %p24, align 16 216*9880d681SAndroid Build Coastguard Worker %25 = load <8 x i16>, <8 x i16>* %p25, align 16 217*9880d681SAndroid Build Coastguard Worker %26 = load <8 x i16>, <8 x i16>* %p26, align 16 218*9880d681SAndroid Build Coastguard Worker %27 = load <8 x i16>, <8 x i16>* %p27, align 16 219*9880d681SAndroid Build Coastguard Worker %28 = load <8 x i16>, <8 x i16>* %p28, align 16 220*9880d681SAndroid Build Coastguard Worker %29 = load <8 x i16>, <8 x i16>* %p29, align 16 221*9880d681SAndroid Build Coastguard Worker %30 = load <8 x i16>, <8 x i16>* %p30, align 16 222*9880d681SAndroid Build Coastguard Worker %31 = load <8 x i16>, <8 x i16>* %p31, align 16 223*9880d681SAndroid Build Coastguard Worker %32 = load <8 x i16>, <8 x i16>* %p32, align 16 224*9880d681SAndroid Build Coastguard Worker %33 = load <8 x i16>, <8 x i16>* %p33, align 16 225*9880d681SAndroid Build Coastguard Worker %r1 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %0, <8 x i16> %1) 226*9880d681SAndroid Build Coastguard Worker %r2 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r1, <8 x i16> %2) 227*9880d681SAndroid Build Coastguard Worker %r3 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r2, <8 x i16> %3) 228*9880d681SAndroid Build Coastguard Worker %r4 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r3, <8 x i16> %4) 229*9880d681SAndroid Build Coastguard Worker %r5 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r4, <8 x i16> %5) 230*9880d681SAndroid Build Coastguard Worker %r6 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r5, <8 x i16> %6) 231*9880d681SAndroid Build Coastguard Worker %r7 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r6, <8 x i16> %7) 232*9880d681SAndroid Build Coastguard Worker %r8 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r7, <8 x i16> %8) 233*9880d681SAndroid Build Coastguard Worker %r9 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r8, <8 x i16> %9) 234*9880d681SAndroid Build Coastguard Worker %r10 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r9, <8 x i16> %10) 235*9880d681SAndroid Build Coastguard Worker %r11 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r10, <8 x i16> %11) 236*9880d681SAndroid Build Coastguard Worker %r12 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r11, <8 x i16> %12) 237*9880d681SAndroid Build Coastguard Worker %r13 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r12, <8 x i16> %13) 238*9880d681SAndroid Build Coastguard Worker %r14 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r13, <8 x i16> %14) 239*9880d681SAndroid Build Coastguard Worker %r15 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r14, <8 x i16> %15) 240*9880d681SAndroid Build Coastguard Worker %r16 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r15, <8 x i16> %16) 241*9880d681SAndroid Build Coastguard Worker %r17 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r16, <8 x i16> %17) 242*9880d681SAndroid Build Coastguard Worker %r18 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r17, <8 x i16> %18) 243*9880d681SAndroid Build Coastguard Worker %r19 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r18, <8 x i16> %19) 244*9880d681SAndroid Build Coastguard Worker %r20 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r19, <8 x i16> %20) 245*9880d681SAndroid Build Coastguard Worker %r21 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r20, <8 x i16> %21) 246*9880d681SAndroid Build Coastguard Worker %r22 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r21, <8 x i16> %22) 247*9880d681SAndroid Build Coastguard Worker %r23 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r22, <8 x i16> %23) 248*9880d681SAndroid Build Coastguard Worker %r24 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r23, <8 x i16> %24) 249*9880d681SAndroid Build Coastguard Worker %r25 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r24, <8 x i16> %25) 250*9880d681SAndroid Build Coastguard Worker %r26 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r25, <8 x i16> %26) 251*9880d681SAndroid Build Coastguard Worker %r27 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r26, <8 x i16> %27) 252*9880d681SAndroid Build Coastguard Worker %r28 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r27, <8 x i16> %28) 253*9880d681SAndroid Build Coastguard Worker %r29 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r28, <8 x i16> %29) 254*9880d681SAndroid Build Coastguard Worker %r30 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r29, <8 x i16> %30) 255*9880d681SAndroid Build Coastguard Worker %r31 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r30, <8 x i16> %31) 256*9880d681SAndroid Build Coastguard Worker %r32 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r31, <8 x i16> %32) 257*9880d681SAndroid Build Coastguard Worker %r33 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r32, <8 x i16> %33) 258*9880d681SAndroid Build Coastguard Worker %rx1 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %r33, <8 x i16> %1) 259*9880d681SAndroid Build Coastguard Worker %rx2 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx1, <8 x i16> %2) 260*9880d681SAndroid Build Coastguard Worker %rx3 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx2, <8 x i16> %3) 261*9880d681SAndroid Build Coastguard Worker %rx4 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx3, <8 x i16> %4) 262*9880d681SAndroid Build Coastguard Worker %rx5 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx4, <8 x i16> %5) 263*9880d681SAndroid Build Coastguard Worker %rx6 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx5, <8 x i16> %6) 264*9880d681SAndroid Build Coastguard Worker %rx7 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx6, <8 x i16> %7) 265*9880d681SAndroid Build Coastguard Worker %rx8 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx7, <8 x i16> %8) 266*9880d681SAndroid Build Coastguard Worker %rx9 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx8, <8 x i16> %9) 267*9880d681SAndroid Build Coastguard Worker %rx10 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx9, <8 x i16> %10) 268*9880d681SAndroid Build Coastguard Worker %rx11 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx10, <8 x i16> %11) 269*9880d681SAndroid Build Coastguard Worker %rx12 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx11, <8 x i16> %12) 270*9880d681SAndroid Build Coastguard Worker %rx13 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx12, <8 x i16> %13) 271*9880d681SAndroid Build Coastguard Worker %rx14 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx13, <8 x i16> %14) 272*9880d681SAndroid Build Coastguard Worker %rx15 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx14, <8 x i16> %15) 273*9880d681SAndroid Build Coastguard Worker %rx16 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx15, <8 x i16> %16) 274*9880d681SAndroid Build Coastguard Worker %rx17 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx16, <8 x i16> %17) 275*9880d681SAndroid Build Coastguard Worker %rx18 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx17, <8 x i16> %18) 276*9880d681SAndroid Build Coastguard Worker %rx19 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx18, <8 x i16> %19) 277*9880d681SAndroid Build Coastguard Worker %rx20 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx19, <8 x i16> %20) 278*9880d681SAndroid Build Coastguard Worker %rx21 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx20, <8 x i16> %21) 279*9880d681SAndroid Build Coastguard Worker %rx22 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx21, <8 x i16> %22) 280*9880d681SAndroid Build Coastguard Worker %rx23 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx22, <8 x i16> %23) 281*9880d681SAndroid Build Coastguard Worker %rx24 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx23, <8 x i16> %24) 282*9880d681SAndroid Build Coastguard Worker %rx25 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx24, <8 x i16> %25) 283*9880d681SAndroid Build Coastguard Worker %rx26 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx25, <8 x i16> %26) 284*9880d681SAndroid Build Coastguard Worker %rx27 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx26, <8 x i16> %27) 285*9880d681SAndroid Build Coastguard Worker %rx28 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx27, <8 x i16> %28) 286*9880d681SAndroid Build Coastguard Worker %rx29 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx28, <8 x i16> %29) 287*9880d681SAndroid Build Coastguard Worker %rx30 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx29, <8 x i16> %30) 288*9880d681SAndroid Build Coastguard Worker %rx31 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx30, <8 x i16> %31) 289*9880d681SAndroid Build Coastguard Worker %rx32 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx31, <8 x i16> %32) 290*9880d681SAndroid Build Coastguard Worker %rx33 = call <8 x i16> @llvm.mips.addv.h(<8 x i16> %rx32, <8 x i16> %33) 291*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.mips.copy.s.h(<8 x i16> %rx33, i32 0) 292*9880d681SAndroid Build Coastguard Worker ret i32 %res 293*9880d681SAndroid Build Coastguard Worker} 294*9880d681SAndroid Build Coastguard Worker 295*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.mips.addv.h(<8 x i16>, <8 x i16>) nounwind 296*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.copy.s.h(<8 x i16>, i32) nounwind 297*9880d681SAndroid Build Coastguard Worker 298*9880d681SAndroid Build Coastguard Worker; CHECK: test_i16: 299*9880d681SAndroid Build Coastguard Worker; CHECK: st.h {{.*}} Spill 300*9880d681SAndroid Build Coastguard Worker; CHECK: st.h {{.*}} Spill 301*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h {{.*}} Reload 302*9880d681SAndroid Build Coastguard Worker; CHECK: ld.h {{.*}} Reload 303*9880d681SAndroid Build Coastguard Worker; CHECK: .size 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Workerdefine i32 @test_i32(<4 x i32>* %p0, <4 x i32>* %q1) nounwind { 306*9880d681SAndroid Build Coastguard Workerentry: 307*9880d681SAndroid Build Coastguard Worker %p1 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 1 308*9880d681SAndroid Build Coastguard Worker %p2 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 2 309*9880d681SAndroid Build Coastguard Worker %p3 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 3 310*9880d681SAndroid Build Coastguard Worker %p4 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 4 311*9880d681SAndroid Build Coastguard Worker %p5 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 5 312*9880d681SAndroid Build Coastguard Worker %p6 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 6 313*9880d681SAndroid Build Coastguard Worker %p7 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 7 314*9880d681SAndroid Build Coastguard Worker %p8 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 8 315*9880d681SAndroid Build Coastguard Worker %p9 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 9 316*9880d681SAndroid Build Coastguard Worker %p10 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 10 317*9880d681SAndroid Build Coastguard Worker %p11 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 11 318*9880d681SAndroid Build Coastguard Worker %p12 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 12 319*9880d681SAndroid Build Coastguard Worker %p13 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 13 320*9880d681SAndroid Build Coastguard Worker %p14 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 14 321*9880d681SAndroid Build Coastguard Worker %p15 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 15 322*9880d681SAndroid Build Coastguard Worker %p16 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 16 323*9880d681SAndroid Build Coastguard Worker %p17 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 17 324*9880d681SAndroid Build Coastguard Worker %p18 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 18 325*9880d681SAndroid Build Coastguard Worker %p19 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 19 326*9880d681SAndroid Build Coastguard Worker %p20 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 20 327*9880d681SAndroid Build Coastguard Worker %p21 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 21 328*9880d681SAndroid Build Coastguard Worker %p22 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 22 329*9880d681SAndroid Build Coastguard Worker %p23 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 23 330*9880d681SAndroid Build Coastguard Worker %p24 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 24 331*9880d681SAndroid Build Coastguard Worker %p25 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 25 332*9880d681SAndroid Build Coastguard Worker %p26 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 26 333*9880d681SAndroid Build Coastguard Worker %p27 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 27 334*9880d681SAndroid Build Coastguard Worker %p28 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 28 335*9880d681SAndroid Build Coastguard Worker %p29 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 29 336*9880d681SAndroid Build Coastguard Worker %p30 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 30 337*9880d681SAndroid Build Coastguard Worker %p31 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 31 338*9880d681SAndroid Build Coastguard Worker %p32 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 32 339*9880d681SAndroid Build Coastguard Worker %p33 = getelementptr <4 x i32>, <4 x i32>* %p0, i32 33 340*9880d681SAndroid Build Coastguard Worker %0 = load <4 x i32>, <4 x i32>* %p0, align 16 341*9880d681SAndroid Build Coastguard Worker %1 = load <4 x i32>, <4 x i32>* %p1, align 16 342*9880d681SAndroid Build Coastguard Worker %2 = load <4 x i32>, <4 x i32>* %p2, align 16 343*9880d681SAndroid Build Coastguard Worker %3 = load <4 x i32>, <4 x i32>* %p3, align 16 344*9880d681SAndroid Build Coastguard Worker %4 = load <4 x i32>, <4 x i32>* %p4, align 16 345*9880d681SAndroid Build Coastguard Worker %5 = load <4 x i32>, <4 x i32>* %p5, align 16 346*9880d681SAndroid Build Coastguard Worker %6 = load <4 x i32>, <4 x i32>* %p6, align 16 347*9880d681SAndroid Build Coastguard Worker %7 = load <4 x i32>, <4 x i32>* %p7, align 16 348*9880d681SAndroid Build Coastguard Worker %8 = load <4 x i32>, <4 x i32>* %p8, align 16 349*9880d681SAndroid Build Coastguard Worker %9 = load <4 x i32>, <4 x i32>* %p9, align 16 350*9880d681SAndroid Build Coastguard Worker %10 = load <4 x i32>, <4 x i32>* %p10, align 16 351*9880d681SAndroid Build Coastguard Worker %11 = load <4 x i32>, <4 x i32>* %p11, align 16 352*9880d681SAndroid Build Coastguard Worker %12 = load <4 x i32>, <4 x i32>* %p12, align 16 353*9880d681SAndroid Build Coastguard Worker %13 = load <4 x i32>, <4 x i32>* %p13, align 16 354*9880d681SAndroid Build Coastguard Worker %14 = load <4 x i32>, <4 x i32>* %p14, align 16 355*9880d681SAndroid Build Coastguard Worker %15 = load <4 x i32>, <4 x i32>* %p15, align 16 356*9880d681SAndroid Build Coastguard Worker %16 = load <4 x i32>, <4 x i32>* %p16, align 16 357*9880d681SAndroid Build Coastguard Worker %17 = load <4 x i32>, <4 x i32>* %p17, align 16 358*9880d681SAndroid Build Coastguard Worker %18 = load <4 x i32>, <4 x i32>* %p18, align 16 359*9880d681SAndroid Build Coastguard Worker %19 = load <4 x i32>, <4 x i32>* %p19, align 16 360*9880d681SAndroid Build Coastguard Worker %20 = load <4 x i32>, <4 x i32>* %p20, align 16 361*9880d681SAndroid Build Coastguard Worker %21 = load <4 x i32>, <4 x i32>* %p21, align 16 362*9880d681SAndroid Build Coastguard Worker %22 = load <4 x i32>, <4 x i32>* %p22, align 16 363*9880d681SAndroid Build Coastguard Worker %23 = load <4 x i32>, <4 x i32>* %p23, align 16 364*9880d681SAndroid Build Coastguard Worker %24 = load <4 x i32>, <4 x i32>* %p24, align 16 365*9880d681SAndroid Build Coastguard Worker %25 = load <4 x i32>, <4 x i32>* %p25, align 16 366*9880d681SAndroid Build Coastguard Worker %26 = load <4 x i32>, <4 x i32>* %p26, align 16 367*9880d681SAndroid Build Coastguard Worker %27 = load <4 x i32>, <4 x i32>* %p27, align 16 368*9880d681SAndroid Build Coastguard Worker %28 = load <4 x i32>, <4 x i32>* %p28, align 16 369*9880d681SAndroid Build Coastguard Worker %29 = load <4 x i32>, <4 x i32>* %p29, align 16 370*9880d681SAndroid Build Coastguard Worker %30 = load <4 x i32>, <4 x i32>* %p30, align 16 371*9880d681SAndroid Build Coastguard Worker %31 = load <4 x i32>, <4 x i32>* %p31, align 16 372*9880d681SAndroid Build Coastguard Worker %32 = load <4 x i32>, <4 x i32>* %p32, align 16 373*9880d681SAndroid Build Coastguard Worker %33 = load <4 x i32>, <4 x i32>* %p33, align 16 374*9880d681SAndroid Build Coastguard Worker %r1 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %0, <4 x i32> %1) 375*9880d681SAndroid Build Coastguard Worker %r2 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r1, <4 x i32> %2) 376*9880d681SAndroid Build Coastguard Worker %r3 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r2, <4 x i32> %3) 377*9880d681SAndroid Build Coastguard Worker %r4 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r3, <4 x i32> %4) 378*9880d681SAndroid Build Coastguard Worker %r5 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r4, <4 x i32> %5) 379*9880d681SAndroid Build Coastguard Worker %r6 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r5, <4 x i32> %6) 380*9880d681SAndroid Build Coastguard Worker %r7 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r6, <4 x i32> %7) 381*9880d681SAndroid Build Coastguard Worker %r8 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r7, <4 x i32> %8) 382*9880d681SAndroid Build Coastguard Worker %r9 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r8, <4 x i32> %9) 383*9880d681SAndroid Build Coastguard Worker %r10 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r9, <4 x i32> %10) 384*9880d681SAndroid Build Coastguard Worker %r11 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r10, <4 x i32> %11) 385*9880d681SAndroid Build Coastguard Worker %r12 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r11, <4 x i32> %12) 386*9880d681SAndroid Build Coastguard Worker %r13 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r12, <4 x i32> %13) 387*9880d681SAndroid Build Coastguard Worker %r14 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r13, <4 x i32> %14) 388*9880d681SAndroid Build Coastguard Worker %r15 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r14, <4 x i32> %15) 389*9880d681SAndroid Build Coastguard Worker %r16 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r15, <4 x i32> %16) 390*9880d681SAndroid Build Coastguard Worker %r17 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r16, <4 x i32> %17) 391*9880d681SAndroid Build Coastguard Worker %r18 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r17, <4 x i32> %18) 392*9880d681SAndroid Build Coastguard Worker %r19 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r18, <4 x i32> %19) 393*9880d681SAndroid Build Coastguard Worker %r20 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r19, <4 x i32> %20) 394*9880d681SAndroid Build Coastguard Worker %r21 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r20, <4 x i32> %21) 395*9880d681SAndroid Build Coastguard Worker %r22 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r21, <4 x i32> %22) 396*9880d681SAndroid Build Coastguard Worker %r23 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r22, <4 x i32> %23) 397*9880d681SAndroid Build Coastguard Worker %r24 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r23, <4 x i32> %24) 398*9880d681SAndroid Build Coastguard Worker %r25 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r24, <4 x i32> %25) 399*9880d681SAndroid Build Coastguard Worker %r26 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r25, <4 x i32> %26) 400*9880d681SAndroid Build Coastguard Worker %r27 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r26, <4 x i32> %27) 401*9880d681SAndroid Build Coastguard Worker %r28 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r27, <4 x i32> %28) 402*9880d681SAndroid Build Coastguard Worker %r29 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r28, <4 x i32> %29) 403*9880d681SAndroid Build Coastguard Worker %r30 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r29, <4 x i32> %30) 404*9880d681SAndroid Build Coastguard Worker %r31 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r30, <4 x i32> %31) 405*9880d681SAndroid Build Coastguard Worker %r32 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r31, <4 x i32> %32) 406*9880d681SAndroid Build Coastguard Worker %r33 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r32, <4 x i32> %33) 407*9880d681SAndroid Build Coastguard Worker %rx1 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %r33, <4 x i32> %1) 408*9880d681SAndroid Build Coastguard Worker %rx2 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx1, <4 x i32> %2) 409*9880d681SAndroid Build Coastguard Worker %rx3 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx2, <4 x i32> %3) 410*9880d681SAndroid Build Coastguard Worker %rx4 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx3, <4 x i32> %4) 411*9880d681SAndroid Build Coastguard Worker %rx5 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx4, <4 x i32> %5) 412*9880d681SAndroid Build Coastguard Worker %rx6 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx5, <4 x i32> %6) 413*9880d681SAndroid Build Coastguard Worker %rx7 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx6, <4 x i32> %7) 414*9880d681SAndroid Build Coastguard Worker %rx8 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx7, <4 x i32> %8) 415*9880d681SAndroid Build Coastguard Worker %rx9 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx8, <4 x i32> %9) 416*9880d681SAndroid Build Coastguard Worker %rx10 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx9, <4 x i32> %10) 417*9880d681SAndroid Build Coastguard Worker %rx11 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx10, <4 x i32> %11) 418*9880d681SAndroid Build Coastguard Worker %rx12 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx11, <4 x i32> %12) 419*9880d681SAndroid Build Coastguard Worker %rx13 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx12, <4 x i32> %13) 420*9880d681SAndroid Build Coastguard Worker %rx14 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx13, <4 x i32> %14) 421*9880d681SAndroid Build Coastguard Worker %rx15 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx14, <4 x i32> %15) 422*9880d681SAndroid Build Coastguard Worker %rx16 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx15, <4 x i32> %16) 423*9880d681SAndroid Build Coastguard Worker %rx17 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx16, <4 x i32> %17) 424*9880d681SAndroid Build Coastguard Worker %rx18 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx17, <4 x i32> %18) 425*9880d681SAndroid Build Coastguard Worker %rx19 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx18, <4 x i32> %19) 426*9880d681SAndroid Build Coastguard Worker %rx20 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx19, <4 x i32> %20) 427*9880d681SAndroid Build Coastguard Worker %rx21 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx20, <4 x i32> %21) 428*9880d681SAndroid Build Coastguard Worker %rx22 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx21, <4 x i32> %22) 429*9880d681SAndroid Build Coastguard Worker %rx23 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx22, <4 x i32> %23) 430*9880d681SAndroid Build Coastguard Worker %rx24 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx23, <4 x i32> %24) 431*9880d681SAndroid Build Coastguard Worker %rx25 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx24, <4 x i32> %25) 432*9880d681SAndroid Build Coastguard Worker %rx26 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx25, <4 x i32> %26) 433*9880d681SAndroid Build Coastguard Worker %rx27 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx26, <4 x i32> %27) 434*9880d681SAndroid Build Coastguard Worker %rx28 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx27, <4 x i32> %28) 435*9880d681SAndroid Build Coastguard Worker %rx29 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx28, <4 x i32> %29) 436*9880d681SAndroid Build Coastguard Worker %rx30 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx29, <4 x i32> %30) 437*9880d681SAndroid Build Coastguard Worker %rx31 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx30, <4 x i32> %31) 438*9880d681SAndroid Build Coastguard Worker %rx32 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx31, <4 x i32> %32) 439*9880d681SAndroid Build Coastguard Worker %rx33 = call <4 x i32> @llvm.mips.addv.w(<4 x i32> %rx32, <4 x i32> %33) 440*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.mips.copy.s.w(<4 x i32> %rx33, i32 0) 441*9880d681SAndroid Build Coastguard Worker ret i32 %res 442*9880d681SAndroid Build Coastguard Worker} 443*9880d681SAndroid Build Coastguard Worker 444*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.mips.addv.w(<4 x i32>, <4 x i32>) nounwind 445*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.mips.copy.s.w(<4 x i32>, i32) nounwind 446*9880d681SAndroid Build Coastguard Worker 447*9880d681SAndroid Build Coastguard Worker; CHECK: test_i32: 448*9880d681SAndroid Build Coastguard Worker; CHECK: st.w {{.*}} Spill 449*9880d681SAndroid Build Coastguard Worker; CHECK: st.w {{.*}} Spill 450*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w {{.*}} Reload 451*9880d681SAndroid Build Coastguard Worker; CHECK: ld.w {{.*}} Reload 452*9880d681SAndroid Build Coastguard Worker; CHECK: .size 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerdefine i32 @test_i64(<2 x i64>* %p0, <2 x i64>* %q1) nounwind { 455*9880d681SAndroid Build Coastguard Workerentry: 456*9880d681SAndroid Build Coastguard Worker %p1 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 1 457*9880d681SAndroid Build Coastguard Worker %p2 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 2 458*9880d681SAndroid Build Coastguard Worker %p3 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 3 459*9880d681SAndroid Build Coastguard Worker %p4 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 4 460*9880d681SAndroid Build Coastguard Worker %p5 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 5 461*9880d681SAndroid Build Coastguard Worker %p6 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 6 462*9880d681SAndroid Build Coastguard Worker %p7 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 7 463*9880d681SAndroid Build Coastguard Worker %p8 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 8 464*9880d681SAndroid Build Coastguard Worker %p9 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 9 465*9880d681SAndroid Build Coastguard Worker %p10 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 10 466*9880d681SAndroid Build Coastguard Worker %p11 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 11 467*9880d681SAndroid Build Coastguard Worker %p12 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 12 468*9880d681SAndroid Build Coastguard Worker %p13 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 13 469*9880d681SAndroid Build Coastguard Worker %p14 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 14 470*9880d681SAndroid Build Coastguard Worker %p15 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 15 471*9880d681SAndroid Build Coastguard Worker %p16 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 16 472*9880d681SAndroid Build Coastguard Worker %p17 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 17 473*9880d681SAndroid Build Coastguard Worker %p18 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 18 474*9880d681SAndroid Build Coastguard Worker %p19 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 19 475*9880d681SAndroid Build Coastguard Worker %p20 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 20 476*9880d681SAndroid Build Coastguard Worker %p21 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 21 477*9880d681SAndroid Build Coastguard Worker %p22 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 22 478*9880d681SAndroid Build Coastguard Worker %p23 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 23 479*9880d681SAndroid Build Coastguard Worker %p24 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 24 480*9880d681SAndroid Build Coastguard Worker %p25 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 25 481*9880d681SAndroid Build Coastguard Worker %p26 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 26 482*9880d681SAndroid Build Coastguard Worker %p27 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 27 483*9880d681SAndroid Build Coastguard Worker %p28 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 28 484*9880d681SAndroid Build Coastguard Worker %p29 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 29 485*9880d681SAndroid Build Coastguard Worker %p30 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 30 486*9880d681SAndroid Build Coastguard Worker %p31 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 31 487*9880d681SAndroid Build Coastguard Worker %p32 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 32 488*9880d681SAndroid Build Coastguard Worker %p33 = getelementptr <2 x i64>, <2 x i64>* %p0, i32 33 489*9880d681SAndroid Build Coastguard Worker %0 = load <2 x i64>, <2 x i64>* %p0, align 16 490*9880d681SAndroid Build Coastguard Worker %1 = load <2 x i64>, <2 x i64>* %p1, align 16 491*9880d681SAndroid Build Coastguard Worker %2 = load <2 x i64>, <2 x i64>* %p2, align 16 492*9880d681SAndroid Build Coastguard Worker %3 = load <2 x i64>, <2 x i64>* %p3, align 16 493*9880d681SAndroid Build Coastguard Worker %4 = load <2 x i64>, <2 x i64>* %p4, align 16 494*9880d681SAndroid Build Coastguard Worker %5 = load <2 x i64>, <2 x i64>* %p5, align 16 495*9880d681SAndroid Build Coastguard Worker %6 = load <2 x i64>, <2 x i64>* %p6, align 16 496*9880d681SAndroid Build Coastguard Worker %7 = load <2 x i64>, <2 x i64>* %p7, align 16 497*9880d681SAndroid Build Coastguard Worker %8 = load <2 x i64>, <2 x i64>* %p8, align 16 498*9880d681SAndroid Build Coastguard Worker %9 = load <2 x i64>, <2 x i64>* %p9, align 16 499*9880d681SAndroid Build Coastguard Worker %10 = load <2 x i64>, <2 x i64>* %p10, align 16 500*9880d681SAndroid Build Coastguard Worker %11 = load <2 x i64>, <2 x i64>* %p11, align 16 501*9880d681SAndroid Build Coastguard Worker %12 = load <2 x i64>, <2 x i64>* %p12, align 16 502*9880d681SAndroid Build Coastguard Worker %13 = load <2 x i64>, <2 x i64>* %p13, align 16 503*9880d681SAndroid Build Coastguard Worker %14 = load <2 x i64>, <2 x i64>* %p14, align 16 504*9880d681SAndroid Build Coastguard Worker %15 = load <2 x i64>, <2 x i64>* %p15, align 16 505*9880d681SAndroid Build Coastguard Worker %16 = load <2 x i64>, <2 x i64>* %p16, align 16 506*9880d681SAndroid Build Coastguard Worker %17 = load <2 x i64>, <2 x i64>* %p17, align 16 507*9880d681SAndroid Build Coastguard Worker %18 = load <2 x i64>, <2 x i64>* %p18, align 16 508*9880d681SAndroid Build Coastguard Worker %19 = load <2 x i64>, <2 x i64>* %p19, align 16 509*9880d681SAndroid Build Coastguard Worker %20 = load <2 x i64>, <2 x i64>* %p20, align 16 510*9880d681SAndroid Build Coastguard Worker %21 = load <2 x i64>, <2 x i64>* %p21, align 16 511*9880d681SAndroid Build Coastguard Worker %22 = load <2 x i64>, <2 x i64>* %p22, align 16 512*9880d681SAndroid Build Coastguard Worker %23 = load <2 x i64>, <2 x i64>* %p23, align 16 513*9880d681SAndroid Build Coastguard Worker %24 = load <2 x i64>, <2 x i64>* %p24, align 16 514*9880d681SAndroid Build Coastguard Worker %25 = load <2 x i64>, <2 x i64>* %p25, align 16 515*9880d681SAndroid Build Coastguard Worker %26 = load <2 x i64>, <2 x i64>* %p26, align 16 516*9880d681SAndroid Build Coastguard Worker %27 = load <2 x i64>, <2 x i64>* %p27, align 16 517*9880d681SAndroid Build Coastguard Worker %28 = load <2 x i64>, <2 x i64>* %p28, align 16 518*9880d681SAndroid Build Coastguard Worker %29 = load <2 x i64>, <2 x i64>* %p29, align 16 519*9880d681SAndroid Build Coastguard Worker %30 = load <2 x i64>, <2 x i64>* %p30, align 16 520*9880d681SAndroid Build Coastguard Worker %31 = load <2 x i64>, <2 x i64>* %p31, align 16 521*9880d681SAndroid Build Coastguard Worker %32 = load <2 x i64>, <2 x i64>* %p32, align 16 522*9880d681SAndroid Build Coastguard Worker %33 = load <2 x i64>, <2 x i64>* %p33, align 16 523*9880d681SAndroid Build Coastguard Worker %r1 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %0, <2 x i64> %1) 524*9880d681SAndroid Build Coastguard Worker %r2 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r1, <2 x i64> %2) 525*9880d681SAndroid Build Coastguard Worker %r3 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r2, <2 x i64> %3) 526*9880d681SAndroid Build Coastguard Worker %r4 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r3, <2 x i64> %4) 527*9880d681SAndroid Build Coastguard Worker %r5 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r4, <2 x i64> %5) 528*9880d681SAndroid Build Coastguard Worker %r6 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r5, <2 x i64> %6) 529*9880d681SAndroid Build Coastguard Worker %r7 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r6, <2 x i64> %7) 530*9880d681SAndroid Build Coastguard Worker %r8 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r7, <2 x i64> %8) 531*9880d681SAndroid Build Coastguard Worker %r9 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r8, <2 x i64> %9) 532*9880d681SAndroid Build Coastguard Worker %r10 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r9, <2 x i64> %10) 533*9880d681SAndroid Build Coastguard Worker %r11 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r10, <2 x i64> %11) 534*9880d681SAndroid Build Coastguard Worker %r12 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r11, <2 x i64> %12) 535*9880d681SAndroid Build Coastguard Worker %r13 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r12, <2 x i64> %13) 536*9880d681SAndroid Build Coastguard Worker %r14 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r13, <2 x i64> %14) 537*9880d681SAndroid Build Coastguard Worker %r15 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r14, <2 x i64> %15) 538*9880d681SAndroid Build Coastguard Worker %r16 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r15, <2 x i64> %16) 539*9880d681SAndroid Build Coastguard Worker %r17 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r16, <2 x i64> %17) 540*9880d681SAndroid Build Coastguard Worker %r18 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r17, <2 x i64> %18) 541*9880d681SAndroid Build Coastguard Worker %r19 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r18, <2 x i64> %19) 542*9880d681SAndroid Build Coastguard Worker %r20 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r19, <2 x i64> %20) 543*9880d681SAndroid Build Coastguard Worker %r21 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r20, <2 x i64> %21) 544*9880d681SAndroid Build Coastguard Worker %r22 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r21, <2 x i64> %22) 545*9880d681SAndroid Build Coastguard Worker %r23 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r22, <2 x i64> %23) 546*9880d681SAndroid Build Coastguard Worker %r24 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r23, <2 x i64> %24) 547*9880d681SAndroid Build Coastguard Worker %r25 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r24, <2 x i64> %25) 548*9880d681SAndroid Build Coastguard Worker %r26 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r25, <2 x i64> %26) 549*9880d681SAndroid Build Coastguard Worker %r27 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r26, <2 x i64> %27) 550*9880d681SAndroid Build Coastguard Worker %r28 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r27, <2 x i64> %28) 551*9880d681SAndroid Build Coastguard Worker %r29 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r28, <2 x i64> %29) 552*9880d681SAndroid Build Coastguard Worker %r30 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r29, <2 x i64> %30) 553*9880d681SAndroid Build Coastguard Worker %r31 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r30, <2 x i64> %31) 554*9880d681SAndroid Build Coastguard Worker %r32 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r31, <2 x i64> %32) 555*9880d681SAndroid Build Coastguard Worker %r33 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r32, <2 x i64> %33) 556*9880d681SAndroid Build Coastguard Worker %rx1 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %r33, <2 x i64> %1) 557*9880d681SAndroid Build Coastguard Worker %rx2 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx1, <2 x i64> %2) 558*9880d681SAndroid Build Coastguard Worker %rx3 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx2, <2 x i64> %3) 559*9880d681SAndroid Build Coastguard Worker %rx4 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx3, <2 x i64> %4) 560*9880d681SAndroid Build Coastguard Worker %rx5 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx4, <2 x i64> %5) 561*9880d681SAndroid Build Coastguard Worker %rx6 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx5, <2 x i64> %6) 562*9880d681SAndroid Build Coastguard Worker %rx7 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx6, <2 x i64> %7) 563*9880d681SAndroid Build Coastguard Worker %rx8 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx7, <2 x i64> %8) 564*9880d681SAndroid Build Coastguard Worker %rx9 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx8, <2 x i64> %9) 565*9880d681SAndroid Build Coastguard Worker %rx10 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx9, <2 x i64> %10) 566*9880d681SAndroid Build Coastguard Worker %rx11 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx10, <2 x i64> %11) 567*9880d681SAndroid Build Coastguard Worker %rx12 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx11, <2 x i64> %12) 568*9880d681SAndroid Build Coastguard Worker %rx13 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx12, <2 x i64> %13) 569*9880d681SAndroid Build Coastguard Worker %rx14 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx13, <2 x i64> %14) 570*9880d681SAndroid Build Coastguard Worker %rx15 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx14, <2 x i64> %15) 571*9880d681SAndroid Build Coastguard Worker %rx16 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx15, <2 x i64> %16) 572*9880d681SAndroid Build Coastguard Worker %rx17 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx16, <2 x i64> %17) 573*9880d681SAndroid Build Coastguard Worker %rx18 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx17, <2 x i64> %18) 574*9880d681SAndroid Build Coastguard Worker %rx19 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx18, <2 x i64> %19) 575*9880d681SAndroid Build Coastguard Worker %rx20 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx19, <2 x i64> %20) 576*9880d681SAndroid Build Coastguard Worker %rx21 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx20, <2 x i64> %21) 577*9880d681SAndroid Build Coastguard Worker %rx22 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx21, <2 x i64> %22) 578*9880d681SAndroid Build Coastguard Worker %rx23 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx22, <2 x i64> %23) 579*9880d681SAndroid Build Coastguard Worker %rx24 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx23, <2 x i64> %24) 580*9880d681SAndroid Build Coastguard Worker %rx25 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx24, <2 x i64> %25) 581*9880d681SAndroid Build Coastguard Worker %rx26 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx25, <2 x i64> %26) 582*9880d681SAndroid Build Coastguard Worker %rx27 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx26, <2 x i64> %27) 583*9880d681SAndroid Build Coastguard Worker %rx28 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx27, <2 x i64> %28) 584*9880d681SAndroid Build Coastguard Worker %rx29 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx28, <2 x i64> %29) 585*9880d681SAndroid Build Coastguard Worker %rx30 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx29, <2 x i64> %30) 586*9880d681SAndroid Build Coastguard Worker %rx31 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx30, <2 x i64> %31) 587*9880d681SAndroid Build Coastguard Worker %rx32 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx31, <2 x i64> %32) 588*9880d681SAndroid Build Coastguard Worker %rx33 = call <2 x i64> @llvm.mips.addv.d(<2 x i64> %rx32, <2 x i64> %33) 589*9880d681SAndroid Build Coastguard Worker %res1 = bitcast <2 x i64> %rx33 to <4 x i32> 590*9880d681SAndroid Build Coastguard Worker %res = call i32 @llvm.mips.copy.s.w(<4 x i32> %res1, i32 0) 591*9880d681SAndroid Build Coastguard Worker ret i32 %res 592*9880d681SAndroid Build Coastguard Worker} 593*9880d681SAndroid Build Coastguard Worker 594*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.mips.addv.d(<2 x i64>, <2 x i64>) nounwind 595*9880d681SAndroid Build Coastguard Worker 596*9880d681SAndroid Build Coastguard Worker; CHECK: test_i64: 597*9880d681SAndroid Build Coastguard Worker; CHECK: st.d {{.*}} Spill 598*9880d681SAndroid Build Coastguard Worker; CHECK: st.d {{.*}} Spill 599*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d {{.*}} Reload 600*9880d681SAndroid Build Coastguard Worker; CHECK: ld.d {{.*}} Reload 601*9880d681SAndroid Build Coastguard Worker; CHECK: .size 602