/*
 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
 * Copyright (c) 2000-2001 Stefan Kral
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

/* This file was automatically generated --- DO NOT EDIT */
/* Generated on Tue Mar 25 06:42:30 EST 2003 */


/* fnset2/cheap-mode: VECTGRADE_FULL succeeded. (702 steps) */
.section .rodata
	.balign 64
	chs_lo: .double -1.0, +1.0
	chs_hi: .double +1.0, -1.0
	PK707106781PK707106781: .double +0.7071067811865475244008444, +0.7071067811865475244008444
	PK707106781NK707106781: .double +0.7071067811865475244008444, -0.7071067811865475244008444
	PK923879532PK923879532: .double +0.9238795325112867561281832, +0.9238795325112867561281832
	PK382683432PK382683432: .double +0.3826834323650897717284600, +0.3826834323650897717284600
	PK831469612PK831469612: .double +0.8314696123025452370787884, +0.8314696123025452370787884
	PK555570233PK555570233: .double +0.5555702330196022247428308, +0.5555702330196022247428308
	PK980785280PK980785280: .double +0.9807852804032304491261822, +0.9807852804032304491261822
	PK195090322PK195090322: .double +0.1950903220161282678482849, +0.1950903220161282678482849

	

.text
	.balign 64
	.globl	fftwi_twiddle_32
	.type	fftwi_twiddle_32, @function
fftwi_twiddle_32:
	subl $16, %esp
	movl 28(%esp), %ecx
	movl 20(%esp), %eax
	movl %esi, 8(%esp)
	movl %ebx, 12(%esp)
	movl %edi, 4(%esp)
	movl %ebp, 0(%esp)
	movl 24(%esp), %ebx
	sall $4, %ecx
	movl %ecx, %edx
	movl %ecx, %esi
	sall $4, %edx
	addl %eax, %edx
	negl %esi
	sall $4, 36(%esp)
	.p2align 4,,7
.L0:
	/* promise simd cell size = 16 */ 
	leal (%ecx,%ecx,4), %edi
	movapd 240(%ebx), %xmm1
	movapd 64(%ebx), %xmm4
	leal (%ecx,%ecx,2), %ebp
	movapd (%edx), %xmm0
	movapd (%eax,%edi), %xmm3
	movapd (%eax,%ebp), %xmm7
	leal (%ecx,%ebp,4), %edi
	movapd %xmm1, %xmm2
	movapd %xmm4, %xmm5
	mulpd %xmm0, %xmm2
	shufpd $9, %xmm0, %xmm0
	mulpd %xmm3, %xmm4
	shufpd $9, %xmm3, %xmm3
	mulpd %xmm0, %xmm1
	movapd %xmm7, %xmm0
	movapd %xmm2, %xmm6
	mulpd %xmm3, %xmm5
	movapd 32(%ebx), %xmm3
	shufpd $9, %xmm0, %xmm0
	unpckhpd %xmm1, %xmm2
	unpcklpd %xmm1, %xmm6
	mulsd chs_lo, %xmm2
	movapd %xmm3, %xmm1
	mulpd %xmm0, %xmm3
	movapd %xmm4, %xmm0
	subpd %xmm2, %xmm6
	mulpd %xmm7, %xmm1
	movapd (%eax,%edi), %xmm7
	leal (%ebp,%ecx,8), %edi
	leal (%ecx,%ecx,4), %ebp
	unpckhpd %xmm3, %xmm0
	movapd %xmm6, fftw_stackcell_0
	movapd 192(%ebx), %xmm6
	unpcklpd %xmm3, %xmm4
	movapd %xmm1, %xmm2
	unpckhpd %xmm5, %xmm1
	mulsd chs_lo, %xmm0
	unpcklpd %xmm5, %xmm2
	movapd (%eax,%edi), %xmm5
	leal (%ecx,%ecx,2), %edi
	mulsd chs_lo, %xmm1
	subpd %xmm0, %xmm4
	movapd 160(%ebx), %xmm0
	movapd %xmm6, %xmm3
	mulpd %xmm7, %xmm6
	shufpd $9, %xmm7, %xmm7
	subpd %xmm1, %xmm2
	movapd %xmm4, fftw_stackcell_1
	mulpd %xmm7, %xmm3
	movapd %xmm6, %xmm7
	movapd %xmm0, %xmm1
	mulpd %xmm5, %xmm0
	shufpd $9, %xmm5, %xmm5
	mulpd %xmm5, %xmm1
	movapd %xmm0, %xmm4
	movapd (%edx,%ebp), %xmm5
	unpcklpd %xmm3, %xmm0
	leal (%ecx,%edi,4), %ebp
	unpckhpd %xmm3, %xmm4
	unpckhpd %xmm1, %xmm6
	unpcklpd %xmm1, %xmm7
	mulsd chs_lo, %xmm4
	mulsd chs_lo, %xmm6
	movapd 320(%ebx), %xmm1
	movapd %xmm5, %xmm3
	subpd %xmm4, %xmm0
	shufpd $9, %xmm3, %xmm3
	subpd %xmm6, %xmm7
	movapd (%edx,%edi), %xmm6
	movapd %xmm1, %xmm4
	mulpd %xmm5, %xmm1
	movapd %xmm0, fftw_stackcell_4
	movapd %xmm7, fftw_stackcell_2
	movapd 288(%ebx), %xmm5
	mulpd %xmm3, %xmm4
	movapd %xmm1, %xmm3
	movapd %xmm5, %xmm0
	mulpd %xmm6, %xmm5
	shufpd $9, %xmm6, %xmm6
	mulpd %xmm6, %xmm0
	movapd %xmm5, %xmm7
	movapd (%edx,%ebp), %xmm6
	leal (%edi,%ecx,8), %ebp
	unpcklpd %xmm4, %xmm5
	unpckhpd %xmm4, %xmm7
	unpckhpd %xmm0, %xmm1
	unpcklpd %xmm0, %xmm3
	mulsd chs_lo, %xmm7
	mulsd chs_lo, %xmm1
	movapd 448(%ebx), %xmm0
	movapd %xmm6, %xmm4
	subpd %xmm7, %xmm5
	shufpd $9, %xmm4, %xmm4
	subpd %xmm1, %xmm3
	movapd (%edx,%ebp), %xmm1
	leal (%edi,%ecx,4), %ebp
	movapd %xmm0, %xmm7
	mulpd %xmm6, %xmm0
	movapd %xmm3, fftw_stackcell_3
	movapd 416(%ebx), %xmm6
	mulpd %xmm4, %xmm7
	movapd %xmm6, %xmm3
	mulpd %xmm1, %xmm6
	shufpd $9, %xmm1, %xmm1
	movapd %xmm6, %xmm4
	mulpd %xmm1, %xmm3
	unpcklpd %xmm7, %xmm6
	movapd %xmm2, %xmm1
	subpd %xmm5, %xmm2
	unpckhpd %xmm7, %xmm4
	addpd %xmm5, %xmm1
	movapd %xmm0, %xmm7
	movapd fftw_stackcell_4, %xmm5
	unpckhpd %xmm3, %xmm0
	unpcklpd %xmm3, %xmm7
	mulsd chs_lo, %xmm4
	shufpd $9, %xmm2, %xmm2
	mulsd chs_lo, %xmm0
	subpd %xmm4, %xmm6
	movapd fftw_stackcell_2, %xmm4
	subpd %xmm0, %xmm7
	movapd %xmm6, %xmm3
	subpd %xmm5, %xmm6
	movapd %xmm7, %xmm0
	addpd %xmm5, %xmm3
	movapd %xmm1, %xmm5
	shufpd $9, %xmm6, %xmm6
	addpd %xmm4, %xmm7
	addpd %xmm3, %xmm1
	subpd %xmm3, %xmm5
	movapd %xmm1, fftw_stackcell_12
	movapd fftw_stackcell_1, %xmm3
	movapd fftw_stackcell_3, %xmm1
	subpd %xmm4, %xmm0
	mulpd chs_hi, %xmm5
	movapd %xmm3, %xmm4
	addpd %xmm1, %xmm3
	movapd %xmm5, fftw_stackcell_5
	subpd %xmm1, %xmm4
	movapd %xmm2, %xmm1
	movapd %xmm3, %xmm5
	mulsd chs_lo, %xmm1
	addpd %xmm7, %xmm5
	subpd %xmm3, %xmm7
	movapd %xmm4, %xmm3
	movapd %xmm5, fftw_stackcell_13
	addpd %xmm1, %xmm4
	movapd %xmm0, %xmm5
	mulsd chs_lo, %xmm7
	movapd %xmm6, %xmm1
	mulpd chs_hi, %xmm3
	mulsd chs_lo, %xmm5
	shufpd $9, %xmm7, %xmm7
	mulsd chs_lo, %xmm1
	addpd %xmm3, %xmm2
	addpd %xmm5, %xmm6
	movapd %xmm7, fftw_stackcell_6
	movapd (%eax,%ecx,8), %xmm5
	movapd 112(%ebx), %xmm7
	subpd %xmm1, %xmm0
	movapd %xmm2, %xmm1
	addpd %xmm6, %xmm2
	subpd %xmm6, %xmm1
	movapd %xmm0, %xmm3
	mulpd PK707106781PK707106781, %xmm2
	shufpd $9, %xmm1, %xmm1
	subpd %xmm4, %xmm3
	addpd %xmm0, %xmm4
	movapd (%edx,%ecx,8), %xmm0
	movapd %xmm7, %xmm6
	shufpd $9, %xmm3, %xmm3
	movapd %xmm2, fftw_stackcell_10
	mulpd PK707106781NK707106781, %xmm1
	movapd 368(%ebx), %xmm2
	mulpd %xmm5, %xmm6
	shufpd $9, %xmm5, %xmm5
	mulpd PK707106781NK707106781, %xmm3
	movapd %xmm1, fftw_stackcell_8
	mulpd PK707106781PK707106781, %xmm4
	mulpd %xmm5, %xmm7
	movapd %xmm6, %xmm1
	movapd %xmm3, fftw_stackcell_7
	movapd %xmm2, %xmm3
	movapd %xmm4, fftw_stackcell_9
	movapd (%eax,%ecx,4), %xmm4
	unpcklpd %xmm7, %xmm6
	mulpd %xmm0, %xmm3
	unpckhpd %xmm7, %xmm1
	movapd 48(%ebx), %xmm7
	shufpd $9, %xmm0, %xmm0
	movapd %xmm3, %xmm5
	mulsd chs_lo, %xmm1
	mulpd %xmm0, %xmm2
	movapd %xmm7, %xmm0
	subpd %xmm1, %xmm6
	unpckhpd %xmm2, %xmm5
	mulpd %xmm4, %xmm0
	shufpd $9, %xmm4, %xmm4
	movapd %xmm6, %xmm1
	unpcklpd %xmm2, %xmm3
	mulsd chs_lo, %xmm5
	movapd (%edx,%edi,4), %xmm2
	mulpd %xmm4, %xmm7
	movapd 432(%ebx), %xmm4
	subpd %xmm5, %xmm3
	subpd %xmm3, %xmm1
	addpd %xmm3, %xmm6
	movapd %xmm4, %xmm5
	shufpd $9, %xmm1, %xmm1
	movapd %xmm6, fftw_stackcell_14
	movapd %xmm0, %xmm6
	mulpd %xmm2, %xmm5
	shufpd $9, %xmm2, %xmm2
	mulsd chs_lo, %xmm1
	mulpd %xmm2, %xmm4
	movapd %xmm5, %xmm3
	unpckhpd %xmm7, %xmm5
	movapd %xmm1, fftw_stackcell_11
	movapd (%edx,%ecx,4), %xmm1
	unpcklpd %xmm7, %xmm3
	movapd 304(%ebx), %xmm7
	unpckhpd %xmm4, %xmm6
	mulsd chs_lo, %xmm5
	unpcklpd %xmm4, %xmm0
	mulsd chs_lo, %xmm6
	subpd %xmm5, %xmm3
	movapd (%eax,%edi,4), %xmm5
	leal (%ecx,%ecx,4), %edi
	movapd %xmm1, %xmm2
	movapd %xmm7, %xmm4
	subpd %xmm6, %xmm0
	movapd 176(%ebx), %xmm6
	shufpd $9, %xmm2, %xmm2
	mulpd %xmm1, %xmm4
	mulpd %xmm2, %xmm7
	movapd %xmm6, %xmm2
	mulpd %xmm5, %xmm2
	shufpd $9, %xmm5, %xmm5
	movapd %xmm2, %xmm1
	mulpd %xmm5, %xmm6
	movapd %xmm4, %xmm5
	unpcklpd %xmm7, %xmm2
	unpckhpd %xmm7, %xmm1
	movapd %xmm3, %xmm7
	unpckhpd %xmm6, %xmm5
	unpcklpd %xmm6, %xmm4
	movapd %xmm0, %xmm6
	mulsd chs_lo, %xmm1
	mulsd chs_lo, %xmm5
	subpd %xmm1, %xmm2
	movapd (%eax,%ecx,2), %xmm1
	subpd %xmm5, %xmm4
	addpd %xmm2, %xmm7
	subpd %xmm4, %xmm0
	addpd %xmm4, %xmm6
	movapd %xmm7, fftw_stackcell_17
	movapd (%edx,%ebp,2), %xmm4
	leal (%ecx,%ecx,2), %ebp
	movapd 464(%ebx), %xmm7
	subpd %xmm2, %xmm3
	movapd 16(%ebx), %xmm2
	movapd %xmm1, %xmm5
	movapd %xmm0, fftw_stackcell_15
	movapd %xmm6, fftw_stackcell_18
	movapd %xmm3, fftw_stackcell_16
	shufpd $9, %xmm5, %xmm5
	movapd %xmm7, %xmm0
	mulpd %xmm4, %xmm7
	movapd %xmm2, %xmm6
	shufpd $9, %xmm4, %xmm4
	mulpd %xmm5, %xmm2
	mulpd %xmm1, %xmm6
	movapd (%edx,%edi,2), %xmm1
	leal (%ebp,%ecx,4), %edi
	movapd %xmm7, %xmm3
	mulpd %xmm4, %xmm0
	movapd 400(%ebx), %xmm4
	unpcklpd %xmm2, %xmm7
	unpckhpd %xmm2, %xmm3
	movapd %xmm6, %xmm5
	unpckhpd %xmm0, %xmm6
	unpcklpd %xmm0, %xmm5
	movapd (%edx,%ebp,2), %xmm0
	leal (%ecx,%ecx,4), %ebp
	mulsd chs_lo, %xmm3
	mulsd chs_lo, %xmm6
	movapd %xmm4, %xmm2
	mulpd %xmm1, %xmm4
	shufpd $9, %xmm1, %xmm1
	subpd %xmm3, %xmm7
	movapd 336(%ebx), %xmm3
	subpd %xmm6, %xmm5
	mulpd %xmm1, %xmm2
	movapd %xmm7, fftw_stackcell_19
	movapd %xmm4, %xmm1
	movapd %xmm3, %xmm6
	mulpd %xmm0, %xmm3
	shufpd $9, %xmm0, %xmm0
	movapd %xmm3, %xmm7
	mulpd %xmm0, %xmm6
	movapd (%edx,%ecx,2), %xmm0
	unpcklpd %xmm2, %xmm3
	unpckhpd %xmm2, %xmm7
	unpckhpd %xmm6, %xmm4
	unpcklpd %xmm6, %xmm1
	mulsd chs_lo, %xmm7
	mulsd chs_lo, %xmm4
	movapd 272(%ebx), %xmm6
	movapd %xmm0, %xmm2
	subpd %xmm7, %xmm3
	shufpd $9, %xmm2, %xmm2
	subpd %xmm4, %xmm1
	movapd (%eax,%edi,2), %xmm4
	leal (%ecx,%ecx,2), %edi
	movapd %xmm3, fftw_stackcell_20
	movapd 208(%ebx), %xmm3
	movapd %xmm6, %xmm7
	mulpd %xmm2, %xmm6
	movapd %xmm1, fftw_stackcell_22
	mulpd %xmm0, %xmm7
	movapd %xmm7, %xmm0
	movapd %xmm3, %xmm2
	mulpd %xmm4, %xmm3
	shufpd $9, %xmm4, %xmm4
	movapd %xmm3, %xmm1
	mulpd %xmm4, %xmm2
	unpcklpd %xmm6, %xmm3
	movapd (%eax,%ebp,2), %xmm4
	leal (%ecx,%ecx,4), %ebp
	unpckhpd %xmm6, %xmm1
	unpckhpd %xmm2, %xmm7
	unpcklpd %xmm2, %xmm0
	mulsd chs_lo, %xmm1
	mulsd chs_lo, %xmm7
	movapd 144(%ebx), %xmm2
	movapd %xmm4, %xmm6
	subpd %xmm1, %xmm3
	shufpd $9, %xmm6, %xmm6
	subpd %xmm7, %xmm0
	movapd (%eax,%edi,2), %xmm7
	leal (%ebp,%ebp,2), %edi
	leal (%ecx,%ecx,8), %ebp
	movapd %xmm3, fftw_stackcell_21
	movapd 80(%ebx), %xmm3
	movapd %xmm2, %xmm1
	mulpd %xmm4, %xmm2
	mulpd %xmm6, %xmm1
	movapd %xmm3, %xmm4
	mulpd %xmm7, %xmm3
	shufpd $9, %xmm7, %xmm7
	mulpd %xmm7, %xmm4
	movapd %xmm3, %xmm6
	unpcklpd %xmm1, %xmm3
	movapd %xmm5, %xmm7
	subpd %xmm0, %xmm5
	unpckhpd %xmm1, %xmm6
	movapd %xmm2, %xmm1
	addpd %xmm0, %xmm7
	unpckhpd %xmm4, %xmm2
	unpcklpd %xmm4, %xmm1
	movapd fftw_stackcell_22, %xmm4
	mulsd chs_lo, %xmm6
	shufpd $9, %xmm5, %xmm5
	mulsd chs_lo, %xmm2
	subpd %xmm6, %xmm3
	movapd fftw_stackcell_20, %xmm6
	subpd %xmm2, %xmm1
	movapd %xmm3, %xmm2
	movapd %xmm1, %xmm0
	addpd %xmm4, %xmm1
	subpd %xmm6, %xmm3
	subpd %xmm4, %xmm0
	movapd fftw_stackcell_19, %xmm4
	addpd %xmm6, %xmm2
	movapd fftw_stackcell_21, %xmm6
	mulsd chs_lo, %xmm3
	shufpd $9, %xmm0, %xmm0
	mulsd chs_lo, %xmm0
	movapd %xmm0, fftw_stackcell_23
	movapd %xmm4, %xmm0
	addpd %xmm6, %xmm4
	subpd %xmm6, %xmm0
	movapd %xmm4, %xmm6
	addpd %xmm2, %xmm4
	movapd %xmm0, fftw_stackcell_25
	subpd %xmm2, %xmm6
	movapd %xmm7, %xmm0
	movapd %xmm4, fftw_stackcell_29
	movapd (%edx,%edi), %xmm4
	movapd %xmm5, %xmm2
	addpd %xmm1, %xmm7
	addpd %xmm3, %xmm5
	movapd %xmm6, fftw_stackcell_27
	leal (%ecx,%ecx,2), %edi
	movapd %xmm7, fftw_stackcell_30
	subpd %xmm3, %xmm2
	movapd %xmm5, fftw_stackcell_24
	movapd (%eax,%ecx), %xmm7
	movapd (%ebx), %xmm3
	subpd %xmm1, %xmm0
	movapd %xmm2, fftw_stackcell_26
	movapd %xmm0, fftw_stackcell_28
	movapd 480(%ebx), %xmm5
	movapd %xmm4, %xmm6
	shufpd $9, %xmm6, %xmm6
	movapd %xmm3, %xmm1
	mulpd %xmm7, %xmm3
	shufpd $9, %xmm7, %xmm7
	movapd %xmm5, %xmm2
	mulpd %xmm4, %xmm5
	mulpd %xmm6, %xmm2
	movapd %xmm3, %xmm0
	movapd (%edx,%ebp), %xmm6
	leal (%ecx,%edi,2), %ebp
	mulpd %xmm7, %xmm1
	movapd %xmm5, %xmm4
	unpckhpd %xmm2, %xmm3
	unpcklpd %xmm2, %xmm0
	movapd 384(%ebx), %xmm2
	leal (%ebp,%ecx,8), %edi
	unpckhpd %xmm1, %xmm4
	mulsd chs_lo, %xmm3
	unpcklpd %xmm1, %xmm5
	movapd %xmm6, %xmm7
	mulsd chs_lo, %xmm4
	shufpd $9, %xmm7, %xmm7
	subpd %xmm3, %xmm0
	movapd (%edx,%ebp), %xmm3
	leal (%ecx,%ecx,8), %ebp
	movapd %xmm2, %xmm1
	mulpd %xmm6, %xmm2
	movapd 352(%ebx), %xmm6
	subpd %xmm4, %xmm5
	mulpd %xmm7, %xmm1
	movapd %xmm5, fftw_stackcell_31
	movapd %xmm2, %xmm5
	movapd %xmm6, %xmm4
	mulpd %xmm3, %xmm6
	shufpd $9, %xmm3, %xmm3
	movapd %xmm6, %xmm7
	mulpd %xmm3, %xmm4
	unpcklpd %xmm1, %xmm6
	movapd (%edx,%ecx), %xmm3
	unpckhpd %xmm1, %xmm7
	unpckhpd %xmm4, %xmm2
	unpcklpd %xmm4, %xmm5
	mulsd chs_lo, %xmm7
	mulsd chs_lo, %xmm2
	movapd 256(%ebx), %xmm4
	movapd %xmm3, %xmm1
	subpd %xmm7, %xmm6
	shufpd $9, %xmm1, %xmm1
	subpd %xmm2, %xmm5
	movapd (%eax,%edi), %xmm2
	leal (%ecx,%ecx,2), %edi
	movapd %xmm6, fftw_stackcell_34
	movapd 224(%ebx), %xmm6
	movapd %xmm4, %xmm7
	mulpd %xmm3, %xmm4
	movapd %xmm5, fftw_stackcell_32
	mulpd %xmm1, %xmm7
	movapd %xmm4, %xmm1
	movapd %xmm6, %xmm3
	mulpd %xmm2, %xmm6
	shufpd $9, %xmm2, %xmm2
	movapd %xmm6, %xmm5
	mulpd %xmm2, %xmm3
	unpcklpd %xmm7, %xmm6
	movapd (%eax,%ebp), %xmm2
	leal (%ecx,%edi,2), %ebp
	leal (%ecx,%ecx,2), %edi
	unpckhpd %xmm7, %xmm5
	unpckhpd %xmm3, %xmm4
	unpcklpd %xmm3, %xmm1
	mulsd chs_lo, %xmm5
	mulsd chs_lo, %xmm4
	movapd 128(%ebx), %xmm3
	movapd %xmm2, %xmm7
	subpd %xmm5, %xmm6
	shufpd $9, %xmm7, %xmm7
	subpd %xmm4, %xmm1
	movapd (%eax,%ebp), %xmm4
	leal (%ecx,%edi,2), %ebp
	movapd %xmm6, fftw_stackcell_33
	movapd 96(%ebx), %xmm6
	movapd %xmm3, %xmm5
	mulpd %xmm2, %xmm3
	addl $496, %ebx
	mulpd %xmm7, %xmm5
	movapd %xmm6, %xmm2
	mulpd %xmm4, %xmm6
	shufpd $9, %xmm4, %xmm4
	movapd %xmm6, %xmm7
	mulpd %xmm4, %xmm2
	unpcklpd %xmm5, %xmm6
	movapd %xmm0, %xmm4
	subpd %xmm1, %xmm0
	unpckhpd %xmm5, %xmm7
	movapd %xmm3, %xmm5
	addpd %xmm1, %xmm4
	movapd fftw_stackcell_34, %xmm1
	unpckhpd %xmm2, %xmm3
	movapd %xmm0, fftw_stackcell_35
	unpcklpd %xmm2, %xmm5
	movapd fftw_stackcell_32, %xmm2
	mulsd chs_lo, %xmm7
	mulsd chs_lo, %xmm3
	subpd %xmm7, %xmm6
	subpd %xmm3, %xmm5
	movapd fftw_stackcell_31, %xmm3
	movapd %xmm6, %xmm0
	subpd %xmm1, %xmm6
	movapd %xmm5, %xmm7
	subpd %xmm2, %xmm5
	addpd %xmm1, %xmm0
	movapd fftw_stackcell_33, %xmm1
	addpd %xmm2, %xmm7
	movapd %xmm3, %xmm2
	addpd %xmm1, %xmm2
	subpd %xmm1, %xmm3
	movapd %xmm4, %xmm1
	subpd %xmm7, %xmm4
	addpd %xmm7, %xmm1
	movapd %xmm2, %xmm7
	subpd %xmm0, %xmm2
	shufpd $9, %xmm4, %xmm4
	addpd %xmm0, %xmm7
	movapd %xmm5, %xmm0
	mulsd chs_lo, %xmm5
	movapd %xmm2, fftw_stackcell_36
	movapd %xmm3, %xmm2
	shufpd $9, %xmm0, %xmm0
	shufpd $9, %xmm2, %xmm2
	mulsd chs_lo, %xmm0
	subpd %xmm5, %xmm2
	movapd %xmm6, %xmm5
	mulsd chs_lo, %xmm6
	shufpd $9, %xmm5, %xmm5
	subpd %xmm0, %xmm3
	movapd %xmm2, fftw_stackcell_40
	movapd %xmm3, fftw_stackcell_37
	movapd fftw_stackcell_35, %xmm0
	movapd fftw_stackcell_28, %xmm3
	mulsd chs_lo, %xmm5
	movapd %xmm0, %xmm2
	addpd %xmm5, %xmm0
	shufpd $9, %xmm2, %xmm2
	movapd %xmm3, %xmm5
	movapd %xmm0, fftw_stackcell_39
	movapd fftw_stackcell_30, %xmm0
	shufpd $9, %xmm5, %xmm5
	addpd %xmm6, %xmm2
	movapd %xmm2, fftw_stackcell_38
	movapd fftw_stackcell_29, %xmm6
	movapd %xmm0, %xmm2
	addpd %xmm6, %xmm0
	subpd %xmm6, %xmm2
	movapd %xmm0, fftw_stackcell_44
	movapd fftw_stackcell_27, %xmm6
	shufpd $9, %xmm2, %xmm2
	subpd %xmm6, %xmm5
	shufpd $9, %xmm6, %xmm6
	movapd %xmm2, fftw_stackcell_43
	movapd fftw_stackcell_18, %xmm2
	movapd %xmm5, %xmm0
	addpd %xmm6, %xmm3
	movapd fftw_stackcell_17, %xmm6
	subpd %xmm3, %xmm5
	addpd %xmm3, %xmm0
	movapd %xmm2, %xmm3
	mulpd PK707106781PK707106781, %xmm5
	subpd %xmm6, %xmm2
	shufpd $9, %xmm0, %xmm0
	addpd %xmm6, %xmm3
	movapd fftw_stackcell_0, %xmm6
	shufpd $9, %xmm2, %xmm2
	movapd %xmm5, fftw_stackcell_42
	movapd (%eax), %xmm5
	/* simd data load/store barrier */ 
	mulpd PK707106781PK707106781, %xmm0
	movapd %xmm0, fftw_stackcell_41
	movapd %xmm5, %xmm0
	subpd %xmm6, %xmm5
	addpd %xmm6, %xmm0
	movapd %xmm5, fftw_stackcell_45
	movapd fftw_stackcell_14, %xmm6
	movapd %xmm0, %xmm5
	addpd %xmm6, %xmm5
	subpd %xmm6, %xmm0
	movapd %xmm5, %xmm6
	subpd %xmm3, %xmm5
	addpd %xmm3, %xmm6
	movapd %xmm5, fftw_stackcell_48
	movapd %xmm0, %xmm3
	movapd fftw_stackcell_13, %xmm5
	addpd %xmm2, %xmm0
	subpd %xmm2, %xmm3
	movapd %xmm1, %xmm2
	movapd %xmm0, fftw_stackcell_46
	movapd %xmm3, fftw_stackcell_47
	movapd fftw_stackcell_12, %xmm0
	movapd %xmm7, %xmm3
	addpd %xmm5, %xmm2
	subpd %xmm5, %xmm1
	addpd %xmm0, %xmm3
	movapd %xmm2, %xmm5
	subpd %xmm0, %xmm7
	movapd %xmm1, %xmm0
	addpd %xmm3, %xmm2
	subpd %xmm3, %xmm5
	movapd %xmm7, %xmm3
	shufpd $9, %xmm0, %xmm0
	movapd %xmm2, fftw_stackcell_52
	movapd fftw_stackcell_5, %xmm2
	shufpd $9, %xmm3, %xmm3
	addpd %xmm0, %xmm7
	movapd %xmm4, %xmm0
	shufpd $9, %xmm5, %xmm5
	subpd %xmm3, %xmm1
	addpd %xmm2, %xmm4
	movapd %xmm5, fftw_stackcell_51
	movapd %xmm1, %xmm3
	subpd %xmm2, %xmm0
	movapd fftw_stackcell_36, %xmm2
	subpd %xmm7, %xmm1
	movapd %xmm4, %xmm5
	mulpd PK923879532PK923879532, %xmm4
	addpd %xmm7, %xmm3
	movapd fftw_stackcell_6, %xmm7
	shufpd $9, %xmm1, %xmm1
	mulpd PK707106781PK707106781, %xmm3
	shufpd $9, %xmm5, %xmm5
	mulpd PK707106781PK707106781, %xmm1
	movapd %xmm3, fftw_stackcell_50
	movapd %xmm2, %xmm3
	addpd %xmm7, %xmm2
	mulpd PK382683432PK382683432, %xmm5
	subpd %xmm7, %xmm3
	movapd %xmm1, fftw_stackcell_49
	movapd %xmm0, %xmm7
	mulpd PK382683432PK382683432, %xmm0
	movapd %xmm3, %xmm1
	mulpd PK923879532PK923879532, %xmm3
	shufpd $9, %xmm7, %xmm7
	shufpd $9, %xmm1, %xmm1
	subpd %xmm3, %xmm0
	movapd %xmm2, %xmm3
	mulpd PK382683432PK382683432, %xmm2
	mulpd PK923879532PK923879532, %xmm7
	shufpd $9, %xmm3, %xmm3
	mulpd PK382683432PK382683432, %xmm1
	subpd %xmm2, %xmm4
	movapd fftw_stackcell_44, %xmm2
	mulpd PK923879532PK923879532, %xmm3
	addpd %xmm7, %xmm1
	movapd %xmm6, %xmm7
	addpd %xmm2, %xmm7
	addpd %xmm5, %xmm3
	movapd fftw_stackcell_52, %xmm5
	subpd %xmm2, %xmm6
	movapd %xmm7, %xmm2
	subpd %xmm5, %xmm2
	addpd %xmm5, %xmm7
	movapd fftw_stackcell_51, %xmm5
	movapd %xmm2, (%edx)
	movapd %xmm6, %xmm2
	movapd %xmm7, (%eax)
	movapd fftw_stackcell_48, %xmm7
	subpd %xmm5, %xmm2
	addpd %xmm5, %xmm6
	movapd fftw_stackcell_43, %xmm5
	movapd %xmm2, (%edx,%ecx,8)
	movapd %xmm7, %xmm2
	movapd %xmm6, (%eax,%ecx,8)
	movapd fftw_stackcell_50, %xmm6
	addpd %xmm5, %xmm2
	subpd %xmm5, %xmm7
	movapd %xmm2, %xmm5
	addpd %xmm6, %xmm2
	subpd %xmm6, %xmm5
	movapd fftw_stackcell_47, %xmm6
	movapd %xmm2, (%eax,%ecx,4)
	movapd fftw_stackcell_42, %xmm2
	movapd %xmm5, (%edx,%ecx,4)
	movapd %xmm6, %xmm5
	addpd %xmm2, %xmm6
	subpd %xmm2, %xmm5
	movapd %xmm0, %xmm2
	addpd %xmm1, %xmm0
	subpd %xmm1, %xmm2
	movapd %xmm5, %xmm1
	shufpd $9, %xmm0, %xmm0
	subpd %xmm2, %xmm1
	addpd %xmm2, %xmm5
	movapd %xmm6, %xmm2
	movapd %xmm1, (%edx,%ebp,2)
	addpd %xmm0, %xmm6
	movapd fftw_stackcell_49, %xmm1
	subpd %xmm0, %xmm2
	movapd %xmm7, %xmm0
	movapd %xmm5, (%eax,%ebp,2)
	leal (%ecx,%ecx,8), %ebp
	movapd %xmm6, (%eax,%edi,2)
	movapd fftw_stackcell_46, %xmm6
	movapd %xmm2, (%edx,%edi,2)
	movapd fftw_stackcell_41, %xmm2
	addpd %xmm1, %xmm7
	movapd %xmm4, %xmm5
	subpd %xmm1, %xmm0
	movapd %xmm6, %xmm1
	movapd %xmm7, (%eax,%edi,4)
	subpd %xmm3, %xmm4
	movapd fftw_stackcell_25, %xmm7
	subpd %xmm2, %xmm6
	movapd %xmm0, (%edx,%edi,4)
	leal (%ecx,%ecx,4), %edi
	addpd %xmm2, %xmm1
	movapd fftw_stackcell_23, %xmm2
	movapd %xmm6, %xmm0
	addpd %xmm3, %xmm5
	addpd %xmm4, %xmm6
	subpd %xmm4, %xmm0
	movapd %xmm7, %xmm3
	shufpd $9, %xmm5, %xmm5
	movapd %xmm1, %xmm4
	subpd %xmm2, %xmm7
	movapd %xmm6, (%eax,%edi,2)
	addpd %xmm2, %xmm3
	movapd %xmm0, (%edx,%edi,2)
	movapd fftw_stackcell_26, %xmm0
	leal (%ebp,%ecx,2), %edi
	subpd %xmm5, %xmm4
	movapd %xmm7, %xmm6
	mulpd PK923879532PK923879532, %xmm7
	movapd %xmm3, %xmm2
	addpd %xmm5, %xmm1
	mulpd PK382683432PK382683432, %xmm3
	movapd %xmm4, (%edx,%ecx,2)
	movapd fftw_stackcell_24, %xmm4
	shufpd $9, %xmm6, %xmm6
	shufpd $9, %xmm2, %xmm2
	movapd %xmm0, %xmm5
	movapd %xmm1, (%eax,%ecx,2)
	shufpd $9, %xmm0, %xmm0
	mulpd PK923879532PK923879532, %xmm5
	mulpd PK923879532PK923879532, %xmm2
	movapd %xmm4, %xmm1
	shufpd $9, %xmm4, %xmm4
	mulpd PK382683432PK382683432, %xmm0
	subpd %xmm3, %xmm5
	mulpd PK382683432PK382683432, %xmm1
	mulpd PK382683432PK382683432, %xmm6
	addpd %xmm0, %xmm2
	movapd %xmm5, %xmm3
	mulpd PK923879532PK923879532, %xmm4
	subpd %xmm7, %xmm1
	movapd fftw_stackcell_15, %xmm7
	subpd %xmm2, %xmm5
	addpd %xmm2, %xmm3
	movapd %xmm1, %xmm0
	movapd %xmm5, fftw_stackcell_54
	movapd fftw_stackcell_16, %xmm5
	addpd %xmm4, %xmm6
	movapd %xmm7, %xmm4
	shufpd $9, %xmm3, %xmm3
	subpd %xmm6, %xmm1
	addpd %xmm6, %xmm0
	shufpd $9, %xmm4, %xmm4
	movapd fftw_stackcell_45, %xmm6
	movapd %xmm5, %xmm2
	movapd %xmm1, fftw_stackcell_53
	movapd fftw_stackcell_11, %xmm1
	shufpd $9, %xmm0, %xmm0
	shufpd $9, %xmm2, %xmm2
	addpd %xmm4, %xmm5
	movapd %xmm6, %xmm4
	movapd %xmm0, fftw_stackcell_56
	subpd %xmm2, %xmm7
	addpd %xmm1, %xmm6
	movapd %xmm7, %xmm0
	addpd %xmm5, %xmm7
	subpd %xmm1, %xmm4
	movapd %xmm6, %xmm2
	movapd fftw_stackcell_40, %xmm1
	mulpd PK707106781PK707106781, %xmm7
	subpd %xmm5, %xmm0
	movapd %xmm4, fftw_stackcell_58
	movapd fftw_stackcell_10, %xmm4
	shufpd $9, %xmm0, %xmm0
	subpd %xmm7, %xmm2
	movapd %xmm1, %xmm5
	addpd %xmm7, %xmm6
	movapd %xmm2, fftw_stackcell_55
	movapd fftw_stackcell_39, %xmm2
	mulpd PK707106781PK707106781, %xmm0
	addpd %xmm4, %xmm1
	subpd %xmm4, %xmm5
	movapd %xmm0, fftw_stackcell_57
	movapd fftw_stackcell_9, %xmm4
	movapd %xmm5, %xmm7
	mulpd PK831469612PK831469612, %xmm5
	movapd %xmm2, %xmm0
	addpd %xmm4, %xmm2
	shufpd $9, %xmm7, %xmm7
	subpd %xmm4, %xmm0
	movapd %xmm0, %xmm4
	mulpd PK555570233PK555570233, %xmm0
	mulpd PK555570233PK555570233, %xmm7
	shufpd $9, %xmm4, %xmm4
	subpd %xmm5, %xmm0
	movapd %xmm2, %xmm5
	mulpd PK980785280PK980785280, %xmm2
	movapd %xmm0, fftw_stackcell_60
	movapd %xmm1, %xmm0
	shufpd $9, %xmm5, %xmm5
	mulpd PK831469612PK831469612, %xmm4
	mulpd PK195090322PK195090322, %xmm1
	shufpd $9, %xmm0, %xmm0
	mulpd PK195090322PK195090322, %xmm5
	addpd %xmm4, %xmm7
	movapd fftw_stackcell_38, %xmm4
	subpd %xmm1, %xmm2
	movapd fftw_stackcell_8, %xmm1
	mulpd PK980785280PK980785280, %xmm0
	movapd %xmm7, fftw_stackcell_59
	movapd %xmm2, fftw_stackcell_62
	movapd %xmm4, %xmm7
	addpd %xmm5, %xmm0
	movapd fftw_stackcell_37, %xmm5
	addpd %xmm1, %xmm4
	movapd %xmm0, fftw_stackcell_61
	movapd fftw_stackcell_7, %xmm0
	subpd %xmm1, %xmm7
	movapd %xmm5, %xmm1
	movapd %xmm7, %xmm2
	mulpd PK195090322PK195090322, %xmm7
	subpd %xmm0, %xmm1
	shufpd $9, %xmm2, %xmm2
	addpd %xmm0, %xmm5
	movapd %xmm1, %xmm0
	mulpd PK980785280PK980785280, %xmm1
	mulpd PK980785280PK980785280, %xmm2
	shufpd $9, %xmm0, %xmm0
	subpd %xmm1, %xmm7
	movapd %xmm4, %xmm1
	mulpd PK831469612PK831469612, %xmm4
	mulpd PK195090322PK195090322, %xmm0
	shufpd $9, %xmm1, %xmm1
	addpd %xmm2, %xmm0
	movapd %xmm5, %xmm2
	mulpd PK555570233PK555570233, %xmm5
	mulpd PK555570233PK555570233, %xmm1
	shufpd $9, %xmm2, %xmm2
	movapd %xmm0, fftw_stackcell_63
	movapd %xmm6, %xmm0
	subpd %xmm3, %xmm6
	subpd %xmm5, %xmm4
	movapd fftw_stackcell_62, %xmm5
	addpd %xmm3, %xmm0
	movapd fftw_stackcell_61, %xmm3
	mulpd PK831469612PK831469612, %xmm2
	addpd %xmm1, %xmm2
	movapd %xmm5, %xmm1
	addpd %xmm3, %xmm5
	subpd %xmm3, %xmm1
	movapd %xmm0, %xmm3
	addpd %xmm5, %xmm0
	subpd %xmm5, %xmm3
	shufpd $9, %xmm1, %xmm1
	movapd %xmm4, %xmm5
	movapd %xmm0, (%eax,%ecx)
	movapd %xmm6, %xmm0
	subpd %xmm2, %xmm4
	movapd %xmm3, (%edx,%ecx)
	movapd fftw_stackcell_58, %xmm3
	addpd %xmm2, %xmm5
	addpd %xmm1, %xmm6
	movapd fftw_stackcell_56, %xmm2
	subpd %xmm1, %xmm0
	movapd fftw_stackcell_57, %xmm1
	shufpd $9, %xmm5, %xmm5
	movapd %xmm6, (%eax,%ebp)
	movapd %xmm3, %xmm6
	movapd %xmm0, (%edx,%ebp)
	leal (%ecx,%ecx,2), %ebp
	addpd %xmm1, %xmm6
	subpd %xmm1, %xmm3
	movapd %xmm6, %xmm0
	addpd %xmm2, %xmm6
	movapd %xmm6, %xmm1
	addpd %xmm5, %xmm6
	subpd %xmm2, %xmm0
	movapd %xmm6, (%eax,%ebp)
	movapd fftw_stackcell_60, %xmm6
	subpd %xmm5, %xmm1
	movapd %xmm0, %xmm2
	addpd %xmm4, %xmm0
	movapd fftw_stackcell_59, %xmm5
	movapd %xmm1, (%edx,%ebp)
	movapd fftw_stackcell_55, %xmm1
	movapd %xmm0, (%eax,%edi)
	movapd fftw_stackcell_54, %xmm0
	subpd %xmm4, %xmm2
	movapd %xmm6, %xmm4
	movapd %xmm2, (%edx,%edi)
	leal (%ecx,%ecx,4), %edi
	addpd %xmm5, %xmm6
	subpd %xmm5, %xmm4
	movapd %xmm1, %xmm2
	subpd %xmm0, %xmm1
	shufpd $9, %xmm4, %xmm4
	addpd %xmm0, %xmm2
	movapd %xmm1, %xmm0
	leal (%edi,%ecx,8), %ebp
	movapd %xmm2, %xmm5
	addpd %xmm6, %xmm2
	subpd %xmm4, %xmm0
	addpd %xmm4, %xmm1
	movapd fftw_stackcell_53, %xmm4
	movapd %xmm2, (%eax,%edi)
	subpd %xmm6, %xmm5
	movapd %xmm3, %xmm2
	movapd fftw_stackcell_63, %xmm6
	movapd %xmm0, (%edx,%ebp)
	movapd %xmm7, %xmm0
	movapd %xmm1, (%eax,%ebp)
	movapd %xmm5, (%edx,%edi)
	leal (%ebp,%ecx,2), %edi
	leal (%ecx,%ecx,2), %ebp
	subpd %xmm4, %xmm2
	subpd %xmm6, %xmm7
	movapd %xmm2, %xmm1
	addpd %xmm6, %xmm0
	addpd %xmm4, %xmm3
	addpd %xmm7, %xmm2
	shufpd $9, %xmm0, %xmm0
	subpd %xmm7, %xmm1
	movapd %xmm3, %xmm5
	movapd %xmm2, (%eax,%edi)
	movapd %xmm1, (%edx,%edi)
	leal (%ecx,%ebp,2), %edi
	subpd %xmm0, %xmm5
	addpd %xmm0, %xmm3
	movapd %xmm5, (%edx,%edi)
	movapd %xmm3, (%eax,%edi)
	addl 36(%esp), %eax
	addl 36(%esp), %edx
	decl 32(%esp)
	jnz .L0
	movl 12(%esp), %ebx
	movl 8(%esp), %esi
	movl 4(%esp), %edi
	movl 0(%esp), %ebp
	addl $16, %esp
	ret 


.section .rodata
	.balign 4
twiddle_order:
	.long 1
	.long 2
	.long 3
	.long 4
	.long 5
	.long 6
	.long 7
	.long 8
	.long 9
	.long 10
	.long 11
	.long 12
	.long 13
	.long 14
	.long 15
	.long 16
	.long 17
	.long 18
	.long 19
	.long 20
	.long 21
	.long 22
	.long 23
	.long 24
	.long 25
	.long 26
	.long 27
	.long 28
	.long 29
	.long 30
	.long 31

	.globl fftwi_twiddle_32_desc
	.balign 32
fftwi_twiddle_32_desc:
	/* descr_str_ptr */	.long .LC0
	/* codelet_ptr */	.long fftwi_twiddle_32
	/* n */			.long 32
	/* cdir_int */		.long 1
	/* ctype_int */		.long 1
	/* signature */		.long 715
	/* num_twiddles */	.long 31
	/* twiddle_order */	.long twiddle_order
.LC0:	.string "fftwi_twiddle_32"
