xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/msa/spill.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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