xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/misched-matmul.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; REQUIRES: asserts
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86-64 -mcpu=core2 -pre-RA-sched=source -enable-misched -stats 2>&1 | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker;
4*9880d681SAndroid Build Coastguard Worker; Verify that register pressure heuristics are working in MachineScheduler.
5*9880d681SAndroid Build Coastguard Worker;
6*9880d681SAndroid Build Coastguard Worker; We can further reduce spills in this case with a global register
7*9880d681SAndroid Build Coastguard Worker; pressure heuristic, like sethi-ullman numbers or biasing toward
8*9880d681SAndroid Build Coastguard Worker; scheduled subtrees. However, these heuristics are marginally
9*9880d681SAndroid Build Coastguard Worker; beneficial on x86_64 and exacerbate register pressure in other
10*9880d681SAndroid Build Coastguard Worker; more complex cases.
11*9880d681SAndroid Build Coastguard Worker;
12*9880d681SAndroid Build Coastguard Worker; CHECK: @wrap_mul4
13*9880d681SAndroid Build Coastguard Worker; CHECK: 23 regalloc - Number of spills inserted
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdefine void @wrap_mul4(double* nocapture %Out, [4 x double]* nocapture %A, [4 x double]* nocapture %B) #0 {
16*9880d681SAndroid Build Coastguard Workerentry:
17*9880d681SAndroid Build Coastguard Worker  %arrayidx1.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 0, i64 0
18*9880d681SAndroid Build Coastguard Worker  %0 = load double, double* %arrayidx1.i, align 8
19*9880d681SAndroid Build Coastguard Worker  %arrayidx3.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 0, i64 0
20*9880d681SAndroid Build Coastguard Worker  %1 = load double, double* %arrayidx3.i, align 8
21*9880d681SAndroid Build Coastguard Worker  %mul.i = fmul double %0, %1
22*9880d681SAndroid Build Coastguard Worker  %arrayidx5.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 0, i64 1
23*9880d681SAndroid Build Coastguard Worker  %2 = load double, double* %arrayidx5.i, align 8
24*9880d681SAndroid Build Coastguard Worker  %arrayidx7.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 1, i64 0
25*9880d681SAndroid Build Coastguard Worker  %3 = load double, double* %arrayidx7.i, align 8
26*9880d681SAndroid Build Coastguard Worker  %mul8.i = fmul double %2, %3
27*9880d681SAndroid Build Coastguard Worker  %add.i = fadd double %mul.i, %mul8.i
28*9880d681SAndroid Build Coastguard Worker  %arrayidx10.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 0, i64 2
29*9880d681SAndroid Build Coastguard Worker  %4 = load double, double* %arrayidx10.i, align 8
30*9880d681SAndroid Build Coastguard Worker  %arrayidx12.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 2, i64 0
31*9880d681SAndroid Build Coastguard Worker  %5 = load double, double* %arrayidx12.i, align 8
32*9880d681SAndroid Build Coastguard Worker  %mul13.i = fmul double %4, %5
33*9880d681SAndroid Build Coastguard Worker  %add14.i = fadd double %add.i, %mul13.i
34*9880d681SAndroid Build Coastguard Worker  %arrayidx16.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 0, i64 3
35*9880d681SAndroid Build Coastguard Worker  %6 = load double, double* %arrayidx16.i, align 8
36*9880d681SAndroid Build Coastguard Worker  %arrayidx18.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 3, i64 0
37*9880d681SAndroid Build Coastguard Worker  %7 = load double, double* %arrayidx18.i, align 8
38*9880d681SAndroid Build Coastguard Worker  %mul19.i = fmul double %6, %7
39*9880d681SAndroid Build Coastguard Worker  %add20.i = fadd double %add14.i, %mul19.i
40*9880d681SAndroid Build Coastguard Worker  %arrayidx25.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 0, i64 1
41*9880d681SAndroid Build Coastguard Worker  %8 = load double, double* %arrayidx25.i, align 8
42*9880d681SAndroid Build Coastguard Worker  %mul26.i = fmul double %0, %8
43*9880d681SAndroid Build Coastguard Worker  %arrayidx30.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 1, i64 1
44*9880d681SAndroid Build Coastguard Worker  %9 = load double, double* %arrayidx30.i, align 8
45*9880d681SAndroid Build Coastguard Worker  %mul31.i = fmul double %2, %9
46*9880d681SAndroid Build Coastguard Worker  %add32.i = fadd double %mul26.i, %mul31.i
47*9880d681SAndroid Build Coastguard Worker  %arrayidx36.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 2, i64 1
48*9880d681SAndroid Build Coastguard Worker  %10 = load double, double* %arrayidx36.i, align 8
49*9880d681SAndroid Build Coastguard Worker  %mul37.i = fmul double %4, %10
50*9880d681SAndroid Build Coastguard Worker  %add38.i = fadd double %add32.i, %mul37.i
51*9880d681SAndroid Build Coastguard Worker  %arrayidx42.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 3, i64 1
52*9880d681SAndroid Build Coastguard Worker  %11 = load double, double* %arrayidx42.i, align 8
53*9880d681SAndroid Build Coastguard Worker  %mul43.i = fmul double %6, %11
54*9880d681SAndroid Build Coastguard Worker  %add44.i = fadd double %add38.i, %mul43.i
55*9880d681SAndroid Build Coastguard Worker  %arrayidx49.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 0, i64 2
56*9880d681SAndroid Build Coastguard Worker  %12 = load double, double* %arrayidx49.i, align 8
57*9880d681SAndroid Build Coastguard Worker  %mul50.i = fmul double %0, %12
58*9880d681SAndroid Build Coastguard Worker  %arrayidx54.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 1, i64 2
59*9880d681SAndroid Build Coastguard Worker  %13 = load double, double* %arrayidx54.i, align 8
60*9880d681SAndroid Build Coastguard Worker  %mul55.i = fmul double %2, %13
61*9880d681SAndroid Build Coastguard Worker  %add56.i = fadd double %mul50.i, %mul55.i
62*9880d681SAndroid Build Coastguard Worker  %arrayidx60.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 2, i64 2
63*9880d681SAndroid Build Coastguard Worker  %14 = load double, double* %arrayidx60.i, align 8
64*9880d681SAndroid Build Coastguard Worker  %mul61.i = fmul double %4, %14
65*9880d681SAndroid Build Coastguard Worker  %add62.i = fadd double %add56.i, %mul61.i
66*9880d681SAndroid Build Coastguard Worker  %arrayidx66.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 3, i64 2
67*9880d681SAndroid Build Coastguard Worker  %15 = load double, double* %arrayidx66.i, align 8
68*9880d681SAndroid Build Coastguard Worker  %mul67.i = fmul double %6, %15
69*9880d681SAndroid Build Coastguard Worker  %add68.i = fadd double %add62.i, %mul67.i
70*9880d681SAndroid Build Coastguard Worker  %arrayidx73.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 0, i64 3
71*9880d681SAndroid Build Coastguard Worker  %16 = load double, double* %arrayidx73.i, align 8
72*9880d681SAndroid Build Coastguard Worker  %mul74.i = fmul double %0, %16
73*9880d681SAndroid Build Coastguard Worker  %arrayidx78.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 1, i64 3
74*9880d681SAndroid Build Coastguard Worker  %17 = load double, double* %arrayidx78.i, align 8
75*9880d681SAndroid Build Coastguard Worker  %mul79.i = fmul double %2, %17
76*9880d681SAndroid Build Coastguard Worker  %add80.i = fadd double %mul74.i, %mul79.i
77*9880d681SAndroid Build Coastguard Worker  %arrayidx84.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 2, i64 3
78*9880d681SAndroid Build Coastguard Worker  %18 = load double, double* %arrayidx84.i, align 8
79*9880d681SAndroid Build Coastguard Worker  %mul85.i = fmul double %4, %18
80*9880d681SAndroid Build Coastguard Worker  %add86.i = fadd double %add80.i, %mul85.i
81*9880d681SAndroid Build Coastguard Worker  %arrayidx90.i = getelementptr inbounds [4 x double], [4 x double]* %B, i64 3, i64 3
82*9880d681SAndroid Build Coastguard Worker  %19 = load double, double* %arrayidx90.i, align 8
83*9880d681SAndroid Build Coastguard Worker  %mul91.i = fmul double %6, %19
84*9880d681SAndroid Build Coastguard Worker  %add92.i = fadd double %add86.i, %mul91.i
85*9880d681SAndroid Build Coastguard Worker  %arrayidx95.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 1, i64 0
86*9880d681SAndroid Build Coastguard Worker  %20 = load double, double* %arrayidx95.i, align 8
87*9880d681SAndroid Build Coastguard Worker  %mul98.i = fmul double %1, %20
88*9880d681SAndroid Build Coastguard Worker  %arrayidx100.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 1, i64 1
89*9880d681SAndroid Build Coastguard Worker  %21 = load double, double* %arrayidx100.i, align 8
90*9880d681SAndroid Build Coastguard Worker  %mul103.i = fmul double %3, %21
91*9880d681SAndroid Build Coastguard Worker  %add104.i = fadd double %mul98.i, %mul103.i
92*9880d681SAndroid Build Coastguard Worker  %arrayidx106.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 1, i64 2
93*9880d681SAndroid Build Coastguard Worker  %22 = load double, double* %arrayidx106.i, align 8
94*9880d681SAndroid Build Coastguard Worker  %mul109.i = fmul double %5, %22
95*9880d681SAndroid Build Coastguard Worker  %add110.i = fadd double %add104.i, %mul109.i
96*9880d681SAndroid Build Coastguard Worker  %arrayidx112.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 1, i64 3
97*9880d681SAndroid Build Coastguard Worker  %23 = load double, double* %arrayidx112.i, align 8
98*9880d681SAndroid Build Coastguard Worker  %mul115.i = fmul double %7, %23
99*9880d681SAndroid Build Coastguard Worker  %add116.i = fadd double %add110.i, %mul115.i
100*9880d681SAndroid Build Coastguard Worker  %mul122.i = fmul double %8, %20
101*9880d681SAndroid Build Coastguard Worker  %mul127.i = fmul double %9, %21
102*9880d681SAndroid Build Coastguard Worker  %add128.i = fadd double %mul122.i, %mul127.i
103*9880d681SAndroid Build Coastguard Worker  %mul133.i = fmul double %10, %22
104*9880d681SAndroid Build Coastguard Worker  %add134.i = fadd double %add128.i, %mul133.i
105*9880d681SAndroid Build Coastguard Worker  %mul139.i = fmul double %11, %23
106*9880d681SAndroid Build Coastguard Worker  %add140.i = fadd double %add134.i, %mul139.i
107*9880d681SAndroid Build Coastguard Worker  %mul146.i = fmul double %12, %20
108*9880d681SAndroid Build Coastguard Worker  %mul151.i = fmul double %13, %21
109*9880d681SAndroid Build Coastguard Worker  %add152.i = fadd double %mul146.i, %mul151.i
110*9880d681SAndroid Build Coastguard Worker  %mul157.i = fmul double %14, %22
111*9880d681SAndroid Build Coastguard Worker  %add158.i = fadd double %add152.i, %mul157.i
112*9880d681SAndroid Build Coastguard Worker  %mul163.i = fmul double %15, %23
113*9880d681SAndroid Build Coastguard Worker  %add164.i = fadd double %add158.i, %mul163.i
114*9880d681SAndroid Build Coastguard Worker  %mul170.i = fmul double %16, %20
115*9880d681SAndroid Build Coastguard Worker  %mul175.i = fmul double %17, %21
116*9880d681SAndroid Build Coastguard Worker  %add176.i = fadd double %mul170.i, %mul175.i
117*9880d681SAndroid Build Coastguard Worker  %mul181.i = fmul double %18, %22
118*9880d681SAndroid Build Coastguard Worker  %add182.i = fadd double %add176.i, %mul181.i
119*9880d681SAndroid Build Coastguard Worker  %mul187.i = fmul double %19, %23
120*9880d681SAndroid Build Coastguard Worker  %add188.i = fadd double %add182.i, %mul187.i
121*9880d681SAndroid Build Coastguard Worker  %arrayidx191.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 2, i64 0
122*9880d681SAndroid Build Coastguard Worker  %24 = load double, double* %arrayidx191.i, align 8
123*9880d681SAndroid Build Coastguard Worker  %mul194.i = fmul double %1, %24
124*9880d681SAndroid Build Coastguard Worker  %arrayidx196.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 2, i64 1
125*9880d681SAndroid Build Coastguard Worker  %25 = load double, double* %arrayidx196.i, align 8
126*9880d681SAndroid Build Coastguard Worker  %mul199.i = fmul double %3, %25
127*9880d681SAndroid Build Coastguard Worker  %add200.i = fadd double %mul194.i, %mul199.i
128*9880d681SAndroid Build Coastguard Worker  %arrayidx202.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 2, i64 2
129*9880d681SAndroid Build Coastguard Worker  %26 = load double, double* %arrayidx202.i, align 8
130*9880d681SAndroid Build Coastguard Worker  %mul205.i = fmul double %5, %26
131*9880d681SAndroid Build Coastguard Worker  %add206.i = fadd double %add200.i, %mul205.i
132*9880d681SAndroid Build Coastguard Worker  %arrayidx208.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 2, i64 3
133*9880d681SAndroid Build Coastguard Worker  %27 = load double, double* %arrayidx208.i, align 8
134*9880d681SAndroid Build Coastguard Worker  %mul211.i = fmul double %7, %27
135*9880d681SAndroid Build Coastguard Worker  %add212.i = fadd double %add206.i, %mul211.i
136*9880d681SAndroid Build Coastguard Worker  %mul218.i = fmul double %8, %24
137*9880d681SAndroid Build Coastguard Worker  %mul223.i = fmul double %9, %25
138*9880d681SAndroid Build Coastguard Worker  %add224.i = fadd double %mul218.i, %mul223.i
139*9880d681SAndroid Build Coastguard Worker  %mul229.i = fmul double %10, %26
140*9880d681SAndroid Build Coastguard Worker  %add230.i = fadd double %add224.i, %mul229.i
141*9880d681SAndroid Build Coastguard Worker  %mul235.i = fmul double %11, %27
142*9880d681SAndroid Build Coastguard Worker  %add236.i = fadd double %add230.i, %mul235.i
143*9880d681SAndroid Build Coastguard Worker  %mul242.i = fmul double %12, %24
144*9880d681SAndroid Build Coastguard Worker  %mul247.i = fmul double %13, %25
145*9880d681SAndroid Build Coastguard Worker  %add248.i = fadd double %mul242.i, %mul247.i
146*9880d681SAndroid Build Coastguard Worker  %mul253.i = fmul double %14, %26
147*9880d681SAndroid Build Coastguard Worker  %add254.i = fadd double %add248.i, %mul253.i
148*9880d681SAndroid Build Coastguard Worker  %mul259.i = fmul double %15, %27
149*9880d681SAndroid Build Coastguard Worker  %add260.i = fadd double %add254.i, %mul259.i
150*9880d681SAndroid Build Coastguard Worker  %mul266.i = fmul double %16, %24
151*9880d681SAndroid Build Coastguard Worker  %mul271.i = fmul double %17, %25
152*9880d681SAndroid Build Coastguard Worker  %add272.i = fadd double %mul266.i, %mul271.i
153*9880d681SAndroid Build Coastguard Worker  %mul277.i = fmul double %18, %26
154*9880d681SAndroid Build Coastguard Worker  %add278.i = fadd double %add272.i, %mul277.i
155*9880d681SAndroid Build Coastguard Worker  %mul283.i = fmul double %19, %27
156*9880d681SAndroid Build Coastguard Worker  %add284.i = fadd double %add278.i, %mul283.i
157*9880d681SAndroid Build Coastguard Worker  %arrayidx287.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 3, i64 0
158*9880d681SAndroid Build Coastguard Worker  %28 = load double, double* %arrayidx287.i, align 8
159*9880d681SAndroid Build Coastguard Worker  %mul290.i = fmul double %1, %28
160*9880d681SAndroid Build Coastguard Worker  %arrayidx292.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 3, i64 1
161*9880d681SAndroid Build Coastguard Worker  %29 = load double, double* %arrayidx292.i, align 8
162*9880d681SAndroid Build Coastguard Worker  %mul295.i = fmul double %3, %29
163*9880d681SAndroid Build Coastguard Worker  %add296.i = fadd double %mul290.i, %mul295.i
164*9880d681SAndroid Build Coastguard Worker  %arrayidx298.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 3, i64 2
165*9880d681SAndroid Build Coastguard Worker  %30 = load double, double* %arrayidx298.i, align 8
166*9880d681SAndroid Build Coastguard Worker  %mul301.i = fmul double %5, %30
167*9880d681SAndroid Build Coastguard Worker  %add302.i = fadd double %add296.i, %mul301.i
168*9880d681SAndroid Build Coastguard Worker  %arrayidx304.i = getelementptr inbounds [4 x double], [4 x double]* %A, i64 3, i64 3
169*9880d681SAndroid Build Coastguard Worker  %31 = load double, double* %arrayidx304.i, align 8
170*9880d681SAndroid Build Coastguard Worker  %mul307.i = fmul double %7, %31
171*9880d681SAndroid Build Coastguard Worker  %add308.i = fadd double %add302.i, %mul307.i
172*9880d681SAndroid Build Coastguard Worker  %mul314.i = fmul double %8, %28
173*9880d681SAndroid Build Coastguard Worker  %mul319.i = fmul double %9, %29
174*9880d681SAndroid Build Coastguard Worker  %add320.i = fadd double %mul314.i, %mul319.i
175*9880d681SAndroid Build Coastguard Worker  %mul325.i = fmul double %10, %30
176*9880d681SAndroid Build Coastguard Worker  %add326.i = fadd double %add320.i, %mul325.i
177*9880d681SAndroid Build Coastguard Worker  %mul331.i = fmul double %11, %31
178*9880d681SAndroid Build Coastguard Worker  %add332.i = fadd double %add326.i, %mul331.i
179*9880d681SAndroid Build Coastguard Worker  %mul338.i = fmul double %12, %28
180*9880d681SAndroid Build Coastguard Worker  %mul343.i = fmul double %13, %29
181*9880d681SAndroid Build Coastguard Worker  %add344.i = fadd double %mul338.i, %mul343.i
182*9880d681SAndroid Build Coastguard Worker  %mul349.i = fmul double %14, %30
183*9880d681SAndroid Build Coastguard Worker  %add350.i = fadd double %add344.i, %mul349.i
184*9880d681SAndroid Build Coastguard Worker  %mul355.i = fmul double %15, %31
185*9880d681SAndroid Build Coastguard Worker  %add356.i = fadd double %add350.i, %mul355.i
186*9880d681SAndroid Build Coastguard Worker  %mul362.i = fmul double %16, %28
187*9880d681SAndroid Build Coastguard Worker  %mul367.i = fmul double %17, %29
188*9880d681SAndroid Build Coastguard Worker  %add368.i = fadd double %mul362.i, %mul367.i
189*9880d681SAndroid Build Coastguard Worker  %mul373.i = fmul double %18, %30
190*9880d681SAndroid Build Coastguard Worker  %add374.i = fadd double %add368.i, %mul373.i
191*9880d681SAndroid Build Coastguard Worker  %mul379.i = fmul double %19, %31
192*9880d681SAndroid Build Coastguard Worker  %add380.i = fadd double %add374.i, %mul379.i
193*9880d681SAndroid Build Coastguard Worker  store double %add20.i, double* %Out, align 8
194*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.1.8.idx2 = getelementptr inbounds double, double* %Out, i64 1
195*9880d681SAndroid Build Coastguard Worker  store double %add44.i, double* %Res.i.sroa.1.8.idx2, align 8
196*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.2.16.idx4 = getelementptr inbounds double, double* %Out, i64 2
197*9880d681SAndroid Build Coastguard Worker  store double %add68.i, double* %Res.i.sroa.2.16.idx4, align 8
198*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.3.24.idx6 = getelementptr inbounds double, double* %Out, i64 3
199*9880d681SAndroid Build Coastguard Worker  store double %add92.i, double* %Res.i.sroa.3.24.idx6, align 8
200*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.4.32.idx8 = getelementptr inbounds double, double* %Out, i64 4
201*9880d681SAndroid Build Coastguard Worker  store double %add116.i, double* %Res.i.sroa.4.32.idx8, align 8
202*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.5.40.idx10 = getelementptr inbounds double, double* %Out, i64 5
203*9880d681SAndroid Build Coastguard Worker  store double %add140.i, double* %Res.i.sroa.5.40.idx10, align 8
204*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.6.48.idx12 = getelementptr inbounds double, double* %Out, i64 6
205*9880d681SAndroid Build Coastguard Worker  store double %add164.i, double* %Res.i.sroa.6.48.idx12, align 8
206*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.7.56.idx14 = getelementptr inbounds double, double* %Out, i64 7
207*9880d681SAndroid Build Coastguard Worker  store double %add188.i, double* %Res.i.sroa.7.56.idx14, align 8
208*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.8.64.idx16 = getelementptr inbounds double, double* %Out, i64 8
209*9880d681SAndroid Build Coastguard Worker  store double %add212.i, double* %Res.i.sroa.8.64.idx16, align 8
210*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.9.72.idx18 = getelementptr inbounds double, double* %Out, i64 9
211*9880d681SAndroid Build Coastguard Worker  store double %add236.i, double* %Res.i.sroa.9.72.idx18, align 8
212*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.10.80.idx20 = getelementptr inbounds double, double* %Out, i64 10
213*9880d681SAndroid Build Coastguard Worker  store double %add260.i, double* %Res.i.sroa.10.80.idx20, align 8
214*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.11.88.idx22 = getelementptr inbounds double, double* %Out, i64 11
215*9880d681SAndroid Build Coastguard Worker  store double %add284.i, double* %Res.i.sroa.11.88.idx22, align 8
216*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.12.96.idx24 = getelementptr inbounds double, double* %Out, i64 12
217*9880d681SAndroid Build Coastguard Worker  store double %add308.i, double* %Res.i.sroa.12.96.idx24, align 8
218*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.13.104.idx26 = getelementptr inbounds double, double* %Out, i64 13
219*9880d681SAndroid Build Coastguard Worker  store double %add332.i, double* %Res.i.sroa.13.104.idx26, align 8
220*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.14.112.idx28 = getelementptr inbounds double, double* %Out, i64 14
221*9880d681SAndroid Build Coastguard Worker  store double %add356.i, double* %Res.i.sroa.14.112.idx28, align 8
222*9880d681SAndroid Build Coastguard Worker  %Res.i.sroa.15.120.idx30 = getelementptr inbounds double, double* %Out, i64 15
223*9880d681SAndroid Build Coastguard Worker  store double %add380.i, double* %Res.i.sroa.15.120.idx30, align 8
224*9880d681SAndroid Build Coastguard Worker  ret void
225*9880d681SAndroid Build Coastguard Worker}
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Workerattributes #0 = { noinline nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
228