1*25c28e83SPiotr Jasiukajtis/*
2*25c28e83SPiotr Jasiukajtis * CDDL HEADER START
3*25c28e83SPiotr Jasiukajtis *
4*25c28e83SPiotr Jasiukajtis * The contents of this file are subject to the terms of the
5*25c28e83SPiotr Jasiukajtis * Common Development and Distribution License (the "License").
6*25c28e83SPiotr Jasiukajtis * You may not use this file except in compliance with the License.
7*25c28e83SPiotr Jasiukajtis *
8*25c28e83SPiotr Jasiukajtis * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*25c28e83SPiotr Jasiukajtis * or http://www.opensolaris.org/os/licensing.
10*25c28e83SPiotr Jasiukajtis * See the License for the specific language governing permissions
11*25c28e83SPiotr Jasiukajtis * and limitations under the License.
12*25c28e83SPiotr Jasiukajtis *
13*25c28e83SPiotr Jasiukajtis * When distributing Covered Code, include this CDDL HEADER in each
14*25c28e83SPiotr Jasiukajtis * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*25c28e83SPiotr Jasiukajtis * If applicable, add the following below this CDDL HEADER, with the
16*25c28e83SPiotr Jasiukajtis * fields enclosed by brackets "[]" replaced with your own identifying
17*25c28e83SPiotr Jasiukajtis * information: Portions Copyright [yyyy] [name of copyright owner]
18*25c28e83SPiotr Jasiukajtis *
19*25c28e83SPiotr Jasiukajtis * CDDL HEADER END
20*25c28e83SPiotr Jasiukajtis */
21*25c28e83SPiotr Jasiukajtis/*
22*25c28e83SPiotr Jasiukajtis * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
23*25c28e83SPiotr Jasiukajtis */
24*25c28e83SPiotr Jasiukajtis/*
25*25c28e83SPiotr Jasiukajtis * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
26*25c28e83SPiotr Jasiukajtis * Use is subject to license terms.
27*25c28e83SPiotr Jasiukajtis */
28*25c28e83SPiotr Jasiukajtis
29*25c28e83SPiotr Jasiukajtis	.file	"__vsinf.S"
30*25c28e83SPiotr Jasiukajtis
31*25c28e83SPiotr Jasiukajtis#include "libm.h"
32*25c28e83SPiotr Jasiukajtis
33*25c28e83SPiotr Jasiukajtis	RO_DATA
34*25c28e83SPiotr Jasiukajtis	.align	64
35*25c28e83SPiotr Jasiukajtisconstants:
36*25c28e83SPiotr Jasiukajtis	.word	0xbfc55554,0x60000000
37*25c28e83SPiotr Jasiukajtis	.word	0x3f811077,0xe0000000
38*25c28e83SPiotr Jasiukajtis	.word	0xbf29956b,0x60000000
39*25c28e83SPiotr Jasiukajtis	.word	0x3ff00000,0x00000000
40*25c28e83SPiotr Jasiukajtis	.word	0xbfe00000,0x00000000
41*25c28e83SPiotr Jasiukajtis	.word	0x3fa55554,0xa0000000
42*25c28e83SPiotr Jasiukajtis	.word	0xbf56c0c1,0xe0000000
43*25c28e83SPiotr Jasiukajtis	.word	0x3ef99e24,0xe0000000
44*25c28e83SPiotr Jasiukajtis	.word	0x3fe45f30,0x6dc9c883
45*25c28e83SPiotr Jasiukajtis	.word	0x43380000,0x00000000
46*25c28e83SPiotr Jasiukajtis	.word	0x3ff921fb,0x54400000
47*25c28e83SPiotr Jasiukajtis	.word	0x3dd0b461,0x1a626331
48*25c28e83SPiotr Jasiukajtis	.word	0x3f490fdb,0
49*25c28e83SPiotr Jasiukajtis	.word	0x49c90fdb,0
50*25c28e83SPiotr Jasiukajtis	.word	0x7f800000,0
51*25c28e83SPiotr Jasiukajtis	.word	0x80000000,0
52*25c28e83SPiotr Jasiukajtis
53*25c28e83SPiotr Jasiukajtis#define S0		0x0
54*25c28e83SPiotr Jasiukajtis#define S1		0x08
55*25c28e83SPiotr Jasiukajtis#define S2		0x10
56*25c28e83SPiotr Jasiukajtis#define one		0x18
57*25c28e83SPiotr Jasiukajtis#define mhalf		0x20
58*25c28e83SPiotr Jasiukajtis#define C0		0x28
59*25c28e83SPiotr Jasiukajtis#define C1		0x30
60*25c28e83SPiotr Jasiukajtis#define C2		0x38
61*25c28e83SPiotr Jasiukajtis#define invpio2		0x40
62*25c28e83SPiotr Jasiukajtis#define round		0x48
63*25c28e83SPiotr Jasiukajtis#define pio2_1		0x50
64*25c28e83SPiotr Jasiukajtis#define pio2_t		0x58
65*25c28e83SPiotr Jasiukajtis#define thresh1		0x60
66*25c28e83SPiotr Jasiukajtis#define thresh2		0x68
67*25c28e83SPiotr Jasiukajtis#define inf		0x70
68*25c28e83SPiotr Jasiukajtis#define signbit		0x78
69*25c28e83SPiotr Jasiukajtis
70*25c28e83SPiotr Jasiukajtis! local storage indices
71*25c28e83SPiotr Jasiukajtis
72*25c28e83SPiotr Jasiukajtis#define xsave		STACK_BIAS-0x8
73*25c28e83SPiotr Jasiukajtis#define ysave		STACK_BIAS-0x10
74*25c28e83SPiotr Jasiukajtis#define nsave		STACK_BIAS-0x14
75*25c28e83SPiotr Jasiukajtis#define sxsave		STACK_BIAS-0x18
76*25c28e83SPiotr Jasiukajtis#define sysave		STACK_BIAS-0x1c
77*25c28e83SPiotr Jasiukajtis#define junk		STACK_BIAS-0x20
78*25c28e83SPiotr Jasiukajtis#define n3		STACK_BIAS-0x24
79*25c28e83SPiotr Jasiukajtis#define n2		STACK_BIAS-0x28
80*25c28e83SPiotr Jasiukajtis#define n1		STACK_BIAS-0x2c
81*25c28e83SPiotr Jasiukajtis#define n0		STACK_BIAS-0x30
82*25c28e83SPiotr Jasiukajtis! sizeof temp storage - must be a multiple of 16 for V9
83*25c28e83SPiotr Jasiukajtis#define tmps		0x30
84*25c28e83SPiotr Jasiukajtis
85*25c28e83SPiotr Jasiukajtis! register use
86*25c28e83SPiotr Jasiukajtis
87*25c28e83SPiotr Jasiukajtis! i0  n
88*25c28e83SPiotr Jasiukajtis! i1  x
89*25c28e83SPiotr Jasiukajtis! i2  stridex
90*25c28e83SPiotr Jasiukajtis! i3  y
91*25c28e83SPiotr Jasiukajtis! i4  stridey
92*25c28e83SPiotr Jasiukajtis! i5  biguns
93*25c28e83SPiotr Jasiukajtis
94*25c28e83SPiotr Jasiukajtis! l0  n0
95*25c28e83SPiotr Jasiukajtis! l1  n1
96*25c28e83SPiotr Jasiukajtis! l2  n2
97*25c28e83SPiotr Jasiukajtis! l3  n3
98*25c28e83SPiotr Jasiukajtis! l4
99*25c28e83SPiotr Jasiukajtis! l5
100*25c28e83SPiotr Jasiukajtis! l6
101*25c28e83SPiotr Jasiukajtis! l7
102*25c28e83SPiotr Jasiukajtis
103*25c28e83SPiotr Jasiukajtis! the following are 64-bit registers in both V8+ and V9
104*25c28e83SPiotr Jasiukajtis
105*25c28e83SPiotr Jasiukajtis! g1
106*25c28e83SPiotr Jasiukajtis! g5
107*25c28e83SPiotr Jasiukajtis
108*25c28e83SPiotr Jasiukajtis! o0  py0
109*25c28e83SPiotr Jasiukajtis! o1  py1
110*25c28e83SPiotr Jasiukajtis! o2  py2
111*25c28e83SPiotr Jasiukajtis! o3  py3
112*25c28e83SPiotr Jasiukajtis! o4
113*25c28e83SPiotr Jasiukajtis! o5
114*25c28e83SPiotr Jasiukajtis! o7
115*25c28e83SPiotr Jasiukajtis
116*25c28e83SPiotr Jasiukajtis! f0  x0
117*25c28e83SPiotr Jasiukajtis! f2  x1
118*25c28e83SPiotr Jasiukajtis! f4  x2
119*25c28e83SPiotr Jasiukajtis! f6  x3
120*25c28e83SPiotr Jasiukajtis! f8  thresh1 (pi/4)
121*25c28e83SPiotr Jasiukajtis! f10 y0
122*25c28e83SPiotr Jasiukajtis! f12 y1
123*25c28e83SPiotr Jasiukajtis! f14 y2
124*25c28e83SPiotr Jasiukajtis! f16 y3
125*25c28e83SPiotr Jasiukajtis! f18 thresh2 (2^19 pi)
126*25c28e83SPiotr Jasiukajtis! f20
127*25c28e83SPiotr Jasiukajtis! f22
128*25c28e83SPiotr Jasiukajtis! f24
129*25c28e83SPiotr Jasiukajtis! f26
130*25c28e83SPiotr Jasiukajtis! f28 signbit
131*25c28e83SPiotr Jasiukajtis! f30
132*25c28e83SPiotr Jasiukajtis! f32
133*25c28e83SPiotr Jasiukajtis! f34
134*25c28e83SPiotr Jasiukajtis! f36
135*25c28e83SPiotr Jasiukajtis! f38 inf
136*25c28e83SPiotr Jasiukajtis! f40 S0
137*25c28e83SPiotr Jasiukajtis! f42 S1
138*25c28e83SPiotr Jasiukajtis! f44 S2
139*25c28e83SPiotr Jasiukajtis! f46 one
140*25c28e83SPiotr Jasiukajtis! f48 mhalf
141*25c28e83SPiotr Jasiukajtis! f50 C0
142*25c28e83SPiotr Jasiukajtis! f52 C1
143*25c28e83SPiotr Jasiukajtis! f54 C2
144*25c28e83SPiotr Jasiukajtis! f56 invpio2
145*25c28e83SPiotr Jasiukajtis! f58 round
146*25c28e83SPiotr Jasiukajtis! f60 pio2_1
147*25c28e83SPiotr Jasiukajtis! f62 pio2_t
148*25c28e83SPiotr Jasiukajtis
149*25c28e83SPiotr Jasiukajtis	ENTRY(__vsinf)
150*25c28e83SPiotr Jasiukajtis	save	%sp,-SA(MINFRAME)-tmps,%sp
151*25c28e83SPiotr Jasiukajtis	PIC_SETUP(l7)
152*25c28e83SPiotr Jasiukajtis	PIC_SET(l7,constants,l1)
153*25c28e83SPiotr Jasiukajtis	mov	%l1,%g1
154*25c28e83SPiotr Jasiukajtis	wr	%g0,0x82,%asi		! set %asi for non-faulting loads
155*25c28e83SPiotr Jasiukajtis#ifdef __sparcv9
156*25c28e83SPiotr Jasiukajtis	stx	%i1,[%fp+xsave]		! save arguments
157*25c28e83SPiotr Jasiukajtis	stx	%i3,[%fp+ysave]
158*25c28e83SPiotr Jasiukajtis#else
159*25c28e83SPiotr Jasiukajtis	st	%i1,[%fp+xsave]		! save arguments
160*25c28e83SPiotr Jasiukajtis	st	%i3,[%fp+ysave]
161*25c28e83SPiotr Jasiukajtis#endif
162*25c28e83SPiotr Jasiukajtis	st	%i0,[%fp+nsave]
163*25c28e83SPiotr Jasiukajtis	st	%i2,[%fp+sxsave]
164*25c28e83SPiotr Jasiukajtis	st	%i4,[%fp+sysave]
165*25c28e83SPiotr Jasiukajtis	mov	0,%i5			! biguns = 0
166*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S0],%f40		! load constants
167*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S1],%f42
168*25c28e83SPiotr Jasiukajtis	ldd	[%g1+S2],%f44
169*25c28e83SPiotr Jasiukajtis	ldd	[%g1+one],%f46
170*25c28e83SPiotr Jasiukajtis	ldd	[%g1+mhalf],%f48
171*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C0],%f50
172*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C1],%f52
173*25c28e83SPiotr Jasiukajtis	ldd	[%g1+C2],%f54
174*25c28e83SPiotr Jasiukajtis	ldd	[%g1+invpio2],%f56
175*25c28e83SPiotr Jasiukajtis	ldd	[%g1+round],%f58
176*25c28e83SPiotr Jasiukajtis	ldd	[%g1+pio2_1],%f60
177*25c28e83SPiotr Jasiukajtis	ldd	[%g1+pio2_t],%f62
178*25c28e83SPiotr Jasiukajtis	ldd	[%g1+thresh1],%f8
179*25c28e83SPiotr Jasiukajtis	ldd	[%g1+thresh2],%f18
180*25c28e83SPiotr Jasiukajtis	ldd	[%g1+inf],%f38
181*25c28e83SPiotr Jasiukajtis	ldd	[%g1+signbit],%f28
182*25c28e83SPiotr Jasiukajtis	sll	%i2,2,%i2		! scale strides
183*25c28e83SPiotr Jasiukajtis	sll	%i4,2,%i4
184*25c28e83SPiotr Jasiukajtis	fzero	%f10			! loop prologue
185*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o0
186*25c28e83SPiotr Jasiukajtis	fzero	%f12
187*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o1
188*25c28e83SPiotr Jasiukajtis	fzero	%f14
189*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o2
190*25c28e83SPiotr Jasiukajtis	fzero	%f16
191*25c28e83SPiotr Jasiukajtis	ba	.start
192*25c28e83SPiotr Jasiukajtis	add	%fp,junk,%o3
193*25c28e83SPiotr Jasiukajtis
194*25c28e83SPiotr Jasiukajtis! 16-byte aligned
195*25c28e83SPiotr Jasiukajtis	.align	16
196*25c28e83SPiotr Jasiukajtis.start:
197*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f0		! *x
198*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
199*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
200*25c28e83SPiotr Jasiukajtis	fdtos	%f10,%f10
201*25c28e83SPiotr Jasiukajtis
202*25c28e83SPiotr Jasiukajtis	st	%f10,[%o0]
203*25c28e83SPiotr Jasiukajtis	mov	%i3,%o0			! py0 = y
204*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last1
205*25c28e83SPiotr Jasiukajtis! delay slot
206*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
207*25c28e83SPiotr Jasiukajtis
208*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f2		! *x
209*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
210*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
211*25c28e83SPiotr Jasiukajtis	fdtos	%f12,%f12
212*25c28e83SPiotr Jasiukajtis
213*25c28e83SPiotr Jasiukajtis	st	%f12,[%o1]
214*25c28e83SPiotr Jasiukajtis	mov	%i3,%o1			! py1 = y
215*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last2
216*25c28e83SPiotr Jasiukajtis! delay slot
217*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
218*25c28e83SPiotr Jasiukajtis
219*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f4		! *x
220*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
221*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
222*25c28e83SPiotr Jasiukajtis	fdtos	%f14,%f14
223*25c28e83SPiotr Jasiukajtis
224*25c28e83SPiotr Jasiukajtis	st	%f14,[%o2]
225*25c28e83SPiotr Jasiukajtis	mov	%i3,%o2			! py2 = y
226*25c28e83SPiotr Jasiukajtis	ble,pn	%icc,.last3
227*25c28e83SPiotr Jasiukajtis! delay slot
228*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
229*25c28e83SPiotr Jasiukajtis
230*25c28e83SPiotr Jasiukajtis	ld	[%i1],%f6		! *x
231*25c28e83SPiotr Jasiukajtis	add	%i1,%i2,%i1		! x += stridex
232*25c28e83SPiotr Jasiukajtis	nop
233*25c28e83SPiotr Jasiukajtis	fdtos	%f16,%f16
234*25c28e83SPiotr Jasiukajtis
235*25c28e83SPiotr Jasiukajtis	st	%f16,[%o3]
236*25c28e83SPiotr Jasiukajtis	mov	%i3,%o3			! py3 = y
237*25c28e83SPiotr Jasiukajtis	add	%i3,%i4,%i3		! y += stridey
238*25c28e83SPiotr Jasiukajtis.cont:
239*25c28e83SPiotr Jasiukajtis	fabsd	%f0,%f30
240*25c28e83SPiotr Jasiukajtis
241*25c28e83SPiotr Jasiukajtis	fabsd	%f2,%f32
242*25c28e83SPiotr Jasiukajtis
243*25c28e83SPiotr Jasiukajtis	fabsd	%f4,%f34
244*25c28e83SPiotr Jasiukajtis
245*25c28e83SPiotr Jasiukajtis	fabsd	%f6,%f36
246*25c28e83SPiotr Jasiukajtis	fcmple32 %f30,%f18,%l0
247*25c28e83SPiotr Jasiukajtis
248*25c28e83SPiotr Jasiukajtis	fcmple32 %f32,%f18,%l1
249*25c28e83SPiotr Jasiukajtis
250*25c28e83SPiotr Jasiukajtis	fcmple32 %f34,%f18,%l2
251*25c28e83SPiotr Jasiukajtis
252*25c28e83SPiotr Jasiukajtis	fcmple32 %f36,%f18,%l3
253*25c28e83SPiotr Jasiukajtis	nop
254*25c28e83SPiotr Jasiukajtis
255*25c28e83SPiotr Jasiukajtis! 16-byte aligned
256*25c28e83SPiotr Jasiukajtis	andcc	%l0,2,%g0
257*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range0		! branch if > 2^19 pi
258*25c28e83SPiotr Jasiukajtis! delay slot
259*25c28e83SPiotr Jasiukajtis	fcmple32 %f30,%f8,%l0
260*25c28e83SPiotr Jasiukajtis
261*25c28e83SPiotr Jasiukajtis.check1:
262*25c28e83SPiotr Jasiukajtis	andcc	%l1,2,%g0
263*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range1		! branch if > 2^19 pi
264*25c28e83SPiotr Jasiukajtis! delay slot
265*25c28e83SPiotr Jasiukajtis	fcmple32 %f32,%f8,%l1
266*25c28e83SPiotr Jasiukajtis
267*25c28e83SPiotr Jasiukajtis.check2:
268*25c28e83SPiotr Jasiukajtis	andcc	%l2,2,%g0
269*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range2		! branch if > 2^19 pi
270*25c28e83SPiotr Jasiukajtis! delay slot
271*25c28e83SPiotr Jasiukajtis	fcmple32 %f34,%f8,%l2
272*25c28e83SPiotr Jasiukajtis
273*25c28e83SPiotr Jasiukajtis.check3:
274*25c28e83SPiotr Jasiukajtis	andcc	%l3,2,%g0
275*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.range3		! branch if > 2^19 pi
276*25c28e83SPiotr Jasiukajtis! delay slot
277*25c28e83SPiotr Jasiukajtis	fcmple32 %f36,%f8,%l3
278*25c28e83SPiotr Jasiukajtis
279*25c28e83SPiotr Jasiukajtis.checkprimary:
280*25c28e83SPiotr Jasiukajtis	fsmuld	%f0,%f0,%f30
281*25c28e83SPiotr Jasiukajtis	fstod	%f0,%f0
282*25c28e83SPiotr Jasiukajtis
283*25c28e83SPiotr Jasiukajtis	fsmuld	%f2,%f2,%f32
284*25c28e83SPiotr Jasiukajtis	fstod	%f2,%f2
285*25c28e83SPiotr Jasiukajtis	and	%l0,%l1,%o4
286*25c28e83SPiotr Jasiukajtis
287*25c28e83SPiotr Jasiukajtis	fsmuld	%f4,%f4,%f34
288*25c28e83SPiotr Jasiukajtis	fstod	%f4,%f4
289*25c28e83SPiotr Jasiukajtis
290*25c28e83SPiotr Jasiukajtis	fsmuld	%f6,%f6,%f36
291*25c28e83SPiotr Jasiukajtis	fstod	%f6,%f6
292*25c28e83SPiotr Jasiukajtis	and	%l2,%l3,%o5
293*25c28e83SPiotr Jasiukajtis
294*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f44,%f10
295*25c28e83SPiotr Jasiukajtis	and	%o4,%o5,%o5
296*25c28e83SPiotr Jasiukajtis
297*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f44,%f12
298*25c28e83SPiotr Jasiukajtis	andcc	%o5,2,%g0
299*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.medium		! branch if any argument is > pi/4
300*25c28e83SPiotr Jasiukajtis! delay slot
301*25c28e83SPiotr Jasiukajtis	nop
302*25c28e83SPiotr Jasiukajtis
303*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f44,%f14
304*25c28e83SPiotr Jasiukajtis
305*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f44,%f16
306*25c28e83SPiotr Jasiukajtis
307*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f40,%f20
308*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f42,%f10
309*25c28e83SPiotr Jasiukajtis
310*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f40,%f22
311*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f42,%f12
312*25c28e83SPiotr Jasiukajtis
313*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f40,%f24
314*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f42,%f14
315*25c28e83SPiotr Jasiukajtis
316*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f40,%f26
317*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f42,%f16
318*25c28e83SPiotr Jasiukajtis
319*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
320*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
321*25c28e83SPiotr Jasiukajtis
322*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
323*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
324*25c28e83SPiotr Jasiukajtis
325*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
326*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
327*25c28e83SPiotr Jasiukajtis
328*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
329*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
330*25c28e83SPiotr Jasiukajtis
331*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
332*25c28e83SPiotr Jasiukajtis
333*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
334*25c28e83SPiotr Jasiukajtis
335*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
336*25c28e83SPiotr Jasiukajtis
337*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
338*25c28e83SPiotr Jasiukajtis
339*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
340*25c28e83SPiotr Jasiukajtis
341*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
342*25c28e83SPiotr Jasiukajtis
343*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
344*25c28e83SPiotr Jasiukajtis
345*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
346*25c28e83SPiotr Jasiukajtis
347*25c28e83SPiotr Jasiukajtis	fmuld	%f0,%f10,%f10
348*25c28e83SPiotr Jasiukajtis
349*25c28e83SPiotr Jasiukajtis	fmuld	%f2,%f12,%f12
350*25c28e83SPiotr Jasiukajtis
351*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f14,%f14
352*25c28e83SPiotr Jasiukajtis
353*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
354*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
355*25c28e83SPiotr Jasiukajtis! delay slot
356*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f16,%f16
357*25c28e83SPiotr Jasiukajtis
358*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
359*25c28e83SPiotr Jasiukajtis! delay slot
360*25c28e83SPiotr Jasiukajtis	nop
361*25c28e83SPiotr Jasiukajtis
362*25c28e83SPiotr Jasiukajtis
363*25c28e83SPiotr Jasiukajtis	.align	16
364*25c28e83SPiotr Jasiukajtis.medium:
365*25c28e83SPiotr Jasiukajtis	fmuld	%f0,%f56,%f10
366*25c28e83SPiotr Jasiukajtis
367*25c28e83SPiotr Jasiukajtis	fmuld	%f2,%f56,%f12
368*25c28e83SPiotr Jasiukajtis
369*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f56,%f14
370*25c28e83SPiotr Jasiukajtis
371*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f56,%f16
372*25c28e83SPiotr Jasiukajtis
373*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f58,%f10
374*25c28e83SPiotr Jasiukajtis	st	%f11,[%fp+n0]
375*25c28e83SPiotr Jasiukajtis
376*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f58,%f12
377*25c28e83SPiotr Jasiukajtis	st	%f13,[%fp+n1]
378*25c28e83SPiotr Jasiukajtis
379*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f58,%f14
380*25c28e83SPiotr Jasiukajtis	st	%f15,[%fp+n2]
381*25c28e83SPiotr Jasiukajtis
382*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f58,%f16
383*25c28e83SPiotr Jasiukajtis	st	%f17,[%fp+n3]
384*25c28e83SPiotr Jasiukajtis
385*25c28e83SPiotr Jasiukajtis	fsubd	%f10,%f58,%f10
386*25c28e83SPiotr Jasiukajtis
387*25c28e83SPiotr Jasiukajtis	fsubd	%f12,%f58,%f12
388*25c28e83SPiotr Jasiukajtis
389*25c28e83SPiotr Jasiukajtis	fsubd	%f14,%f58,%f14
390*25c28e83SPiotr Jasiukajtis
391*25c28e83SPiotr Jasiukajtis	fsubd	%f16,%f58,%f16
392*25c28e83SPiotr Jasiukajtis
393*25c28e83SPiotr Jasiukajtis	fmuld	%f10,%f60,%f20
394*25c28e83SPiotr Jasiukajtis	ld	[%fp+n0],%l0
395*25c28e83SPiotr Jasiukajtis
396*25c28e83SPiotr Jasiukajtis	fmuld	%f12,%f60,%f22
397*25c28e83SPiotr Jasiukajtis	ld	[%fp+n1],%l1
398*25c28e83SPiotr Jasiukajtis
399*25c28e83SPiotr Jasiukajtis	fmuld	%f14,%f60,%f24
400*25c28e83SPiotr Jasiukajtis	ld	[%fp+n2],%l2
401*25c28e83SPiotr Jasiukajtis
402*25c28e83SPiotr Jasiukajtis	fmuld	%f16,%f60,%f26
403*25c28e83SPiotr Jasiukajtis	ld	[%fp+n3],%l3
404*25c28e83SPiotr Jasiukajtis
405*25c28e83SPiotr Jasiukajtis	fsubd	%f0,%f20,%f0
406*25c28e83SPiotr Jasiukajtis	fmuld	%f10,%f62,%f30
407*25c28e83SPiotr Jasiukajtis
408*25c28e83SPiotr Jasiukajtis	fsubd	%f2,%f22,%f2
409*25c28e83SPiotr Jasiukajtis	fmuld	%f12,%f62,%f32
410*25c28e83SPiotr Jasiukajtis
411*25c28e83SPiotr Jasiukajtis	fsubd	%f4,%f24,%f4
412*25c28e83SPiotr Jasiukajtis	fmuld	%f14,%f62,%f34
413*25c28e83SPiotr Jasiukajtis
414*25c28e83SPiotr Jasiukajtis	fsubd	%f6,%f26,%f6
415*25c28e83SPiotr Jasiukajtis	fmuld	%f16,%f62,%f36
416*25c28e83SPiotr Jasiukajtis
417*25c28e83SPiotr Jasiukajtis	fsubd	%f0,%f30,%f0
418*25c28e83SPiotr Jasiukajtis
419*25c28e83SPiotr Jasiukajtis	fsubd	%f2,%f32,%f2
420*25c28e83SPiotr Jasiukajtis
421*25c28e83SPiotr Jasiukajtis	fsubd	%f4,%f34,%f4
422*25c28e83SPiotr Jasiukajtis
423*25c28e83SPiotr Jasiukajtis	fsubd	%f6,%f36,%f6
424*25c28e83SPiotr Jasiukajtis	andcc	%l0,1,%g0
425*25c28e83SPiotr Jasiukajtis
426*25c28e83SPiotr Jasiukajtis	fmuld	%f0,%f0,%f30
427*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case8
428*25c28e83SPiotr Jasiukajtis! delay slot
429*25c28e83SPiotr Jasiukajtis	andcc	%l1,1,%g0
430*25c28e83SPiotr Jasiukajtis
431*25c28e83SPiotr Jasiukajtis	fmuld	%f2,%f2,%f32
432*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case4
433*25c28e83SPiotr Jasiukajtis! delay slot
434*25c28e83SPiotr Jasiukajtis	andcc	%l2,1,%g0
435*25c28e83SPiotr Jasiukajtis
436*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f4,%f34
437*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case2
438*25c28e83SPiotr Jasiukajtis! delay slot
439*25c28e83SPiotr Jasiukajtis	andcc	%l3,1,%g0
440*25c28e83SPiotr Jasiukajtis
441*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f6,%f36
442*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case1
443*25c28e83SPiotr Jasiukajtis! delay slot
444*25c28e83SPiotr Jasiukajtis	nop
445*25c28e83SPiotr Jasiukajtis
446*25c28e83SPiotr Jasiukajtis!.case0:
447*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
448*25c28e83SPiotr Jasiukajtis	fzero	%f0
449*25c28e83SPiotr Jasiukajtis
450*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
451*25c28e83SPiotr Jasiukajtis	fzero	%f2
452*25c28e83SPiotr Jasiukajtis
453*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f54,%f14		! cos(x2)
454*25c28e83SPiotr Jasiukajtis	fzero	%f4
455*25c28e83SPiotr Jasiukajtis
456*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f54,%f16		! cos(x3)
457*25c28e83SPiotr Jasiukajtis	fzero	%f6
458*25c28e83SPiotr Jasiukajtis
459*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
460*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
461*25c28e83SPiotr Jasiukajtis
462*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
463*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
464*25c28e83SPiotr Jasiukajtis
465*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f48,%f24
466*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f52,%f14
467*25c28e83SPiotr Jasiukajtis
468*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f48,%f26
469*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f52,%f16
470*25c28e83SPiotr Jasiukajtis
471*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
472*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
473*25c28e83SPiotr Jasiukajtis
474*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
475*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
476*25c28e83SPiotr Jasiukajtis
477*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
478*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
479*25c28e83SPiotr Jasiukajtis
480*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
481*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
482*25c28e83SPiotr Jasiukajtis
483*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
484*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
485*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
486*25c28e83SPiotr Jasiukajtis
487*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
488*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
489*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
490*25c28e83SPiotr Jasiukajtis
491*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
492*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f50,%f14
493*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
494*25c28e83SPiotr Jasiukajtis
495*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
496*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f50,%f16
497*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
498*25c28e83SPiotr Jasiukajtis
499*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
500*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
501*25c28e83SPiotr Jasiukajtis
502*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
503*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
504*25c28e83SPiotr Jasiukajtis
505*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
506*25c28e83SPiotr Jasiukajtis	fmovrdnz %o4,%f28,%f4
507*25c28e83SPiotr Jasiukajtis
508*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
509*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f6
510*25c28e83SPiotr Jasiukajtis
511*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
512*25c28e83SPiotr Jasiukajtis
513*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
514*25c28e83SPiotr Jasiukajtis
515*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
516*25c28e83SPiotr Jasiukajtis
517*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
518*25c28e83SPiotr Jasiukajtis
519*25c28e83SPiotr Jasiukajtis	fxor	%f10,%f0,%f10
520*25c28e83SPiotr Jasiukajtis
521*25c28e83SPiotr Jasiukajtis	fxor	%f12,%f2,%f12
522*25c28e83SPiotr Jasiukajtis
523*25c28e83SPiotr Jasiukajtis	fxor	%f14,%f4,%f14
524*25c28e83SPiotr Jasiukajtis
525*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
526*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
527*25c28e83SPiotr Jasiukajtis! delay slot
528*25c28e83SPiotr Jasiukajtis	fxor	%f16,%f6,%f16
529*25c28e83SPiotr Jasiukajtis
530*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
531*25c28e83SPiotr Jasiukajtis! delay slot
532*25c28e83SPiotr Jasiukajtis	nop
533*25c28e83SPiotr Jasiukajtis
534*25c28e83SPiotr Jasiukajtis	.align	16
535*25c28e83SPiotr Jasiukajtis.case1:
536*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
537*25c28e83SPiotr Jasiukajtis	fzero	%f0
538*25c28e83SPiotr Jasiukajtis
539*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
540*25c28e83SPiotr Jasiukajtis	fzero	%f2
541*25c28e83SPiotr Jasiukajtis
542*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f54,%f14		! cos(x2)
543*25c28e83SPiotr Jasiukajtis	fzero	%f4
544*25c28e83SPiotr Jasiukajtis
545*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f44,%f16		! sin(x3)
546*25c28e83SPiotr Jasiukajtis
547*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
548*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
549*25c28e83SPiotr Jasiukajtis
550*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
551*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
552*25c28e83SPiotr Jasiukajtis
553*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f48,%f24
554*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f52,%f14
555*25c28e83SPiotr Jasiukajtis
556*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f40,%f26
557*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f42,%f16
558*25c28e83SPiotr Jasiukajtis
559*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
560*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
561*25c28e83SPiotr Jasiukajtis
562*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
563*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
564*25c28e83SPiotr Jasiukajtis
565*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
566*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
567*25c28e83SPiotr Jasiukajtis
568*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
569*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
570*25c28e83SPiotr Jasiukajtis
571*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
572*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
573*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
574*25c28e83SPiotr Jasiukajtis
575*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
576*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
577*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
578*25c28e83SPiotr Jasiukajtis
579*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
580*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f50,%f14
581*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
582*25c28e83SPiotr Jasiukajtis
583*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
584*25c28e83SPiotr Jasiukajtis	fzero	%f36
585*25c28e83SPiotr Jasiukajtis
586*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
587*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
588*25c28e83SPiotr Jasiukajtis
589*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
590*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
591*25c28e83SPiotr Jasiukajtis
592*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
593*25c28e83SPiotr Jasiukajtis	fmovrdnz %o4,%f28,%f4
594*25c28e83SPiotr Jasiukajtis
595*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
596*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
597*25c28e83SPiotr Jasiukajtis
598*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
599*25c28e83SPiotr Jasiukajtis
600*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
601*25c28e83SPiotr Jasiukajtis
602*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
603*25c28e83SPiotr Jasiukajtis
604*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f16,%f16
605*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f36
606*25c28e83SPiotr Jasiukajtis
607*25c28e83SPiotr Jasiukajtis	fxor	%f10,%f0,%f10
608*25c28e83SPiotr Jasiukajtis
609*25c28e83SPiotr Jasiukajtis	fxor	%f12,%f2,%f12
610*25c28e83SPiotr Jasiukajtis
611*25c28e83SPiotr Jasiukajtis	fxor	%f14,%f4,%f14
612*25c28e83SPiotr Jasiukajtis
613*25c28e83SPiotr Jasiukajtis	addcc	%i0,-1,%i0
614*25c28e83SPiotr Jasiukajtis	bg,pt	%icc,.start
615*25c28e83SPiotr Jasiukajtis! delay slot
616*25c28e83SPiotr Jasiukajtis	fxor	%f16,%f36,%f16
617*25c28e83SPiotr Jasiukajtis
618*25c28e83SPiotr Jasiukajtis	ba,pt	%icc,.end
619*25c28e83SPiotr Jasiukajtis! delay slot
620*25c28e83SPiotr Jasiukajtis	nop
621*25c28e83SPiotr Jasiukajtis
622*25c28e83SPiotr Jasiukajtis	.align	16
623*25c28e83SPiotr Jasiukajtis.case2:
624*25c28e83SPiotr Jasiukajtis	fmuld	%f6,%f6,%f36
625*25c28e83SPiotr Jasiukajtis	bz,pn	%icc,.case3
626*25c28e83SPiotr Jasiukajtis! delay slot
627*25c28e83SPiotr Jasiukajtis	nop
628*25c28e83SPiotr Jasiukajtis
629*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f54,%f10		! cos(x0)
630*25c28e83SPiotr Jasiukajtis	fzero	%f0
631*25c28e83SPiotr Jasiukajtis
632*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f54,%f12		! cos(x1)
633*25c28e83SPiotr Jasiukajtis	fzero	%f2
634*25c28e83SPiotr Jasiukajtis
635*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f44,%f14		! sin(x2)
636*25c28e83SPiotr Jasiukajtis
637*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f54,%f16		! cos(x3)
638*25c28e83SPiotr Jasiukajtis	fzero	%f6
639*25c28e83SPiotr Jasiukajtis
640*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f48,%f20
641*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f52,%f10
642*25c28e83SPiotr Jasiukajtis
643*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f48,%f22
644*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f52,%f12
645*25c28e83SPiotr Jasiukajtis
646*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f40,%f24
647*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f42,%f14
648*25c28e83SPiotr Jasiukajtis
649*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f48,%f26
650*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f52,%f16
651*25c28e83SPiotr Jasiukajtis
652*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
653*25c28e83SPiotr Jasiukajtis	faddd	%f20,%f46,%f20
654*25c28e83SPiotr Jasiukajtis
655*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
656*25c28e83SPiotr Jasiukajtis	faddd	%f22,%f46,%f22
657*25c28e83SPiotr Jasiukajtis
658*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f34,%f34
659*25c28e83SPiotr Jasiukajtis	faddd	%f24,%f46,%f24
660*25c28e83SPiotr Jasiukajtis
661*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
662*25c28e83SPiotr Jasiukajtis	faddd	%f26,%f46,%f26
663*25c28e83SPiotr Jasiukajtis
664*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f30,%f30
665*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f50,%f10
666*25c28e83SPiotr Jasiukajtis	and	%l0,2,%g1
667*25c28e83SPiotr Jasiukajtis
668*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f32,%f32
669*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f50,%f12
670*25c28e83SPiotr Jasiukajtis	and	%l1,2,%g5
671*25c28e83SPiotr Jasiukajtis
672*25c28e83SPiotr Jasiukajtis	fmuld	%f34,%f14,%f14
673*25c28e83SPiotr Jasiukajtis	fzero	%f34
674*25c28e83SPiotr Jasiukajtis
675*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f36,%f36
676*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f50,%f16
677*25c28e83SPiotr Jasiukajtis	and	%l3,2,%o5
678*25c28e83SPiotr Jasiukajtis
679*25c28e83SPiotr Jasiukajtis	fmuld	%f30,%f10,%f10
680*25c28e83SPiotr Jasiukajtis	fmovrdnz %g1,%f28,%f0
681*25c28e83SPiotr Jasiukajtis
682*25c28e83SPiotr Jasiukajtis	fmuld	%f32,%f12,%f12
683*25c28e83SPiotr Jasiukajtis	fmovrdnz %g5,%f28,%f2
684*25c28e83SPiotr Jasiukajtis
685*25c28e83SPiotr Jasiukajtis	faddd	%f14,%f24,%f14
686*25c28e83SPiotr Jasiukajtis	and	%l2,2,%o4
687*25c28e83SPiotr Jasiukajtis
688*25c28e83SPiotr Jasiukajtis	fmuld	%f36,%f16,%f16
689*25c28e83SPiotr Jasiukajtis	fmovrdnz %o5,%f28,%f6
690*25c28e83SPiotr Jasiukajtis
691*25c28e83SPiotr Jasiukajtis	faddd	%f10,%f20,%f10
692*25c28e83SPiotr Jasiukajtis
693*25c28e83SPiotr Jasiukajtis	faddd	%f12,%f22,%f12
694*25c28e83SPiotr Jasiukajtis
695*25c28e83SPiotr Jasiukajtis	fmuld	%f4,%f14,%f14
696*25c28e83SPiotr Jasiukajtis	fmovrdnz %o4,%f28,%f34
697*25c28e83SPiotr Jasiukajtis
698*25c28e83SPiotr Jasiukajtis	faddd	%f16,%f26,%f16
699*25c28e83SPiotr Jasiukajtis
700*25c28e83SPiotr Jasiukajtis	fxor	%f10,%f0,%f10
701*25c28e83