2
* Copyright (c) 2003, 2006 Matteo Frigo
3
* Copyright (c) 2003, 2006 Massachusetts Institute of Technology
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
/* This file was automatically generated --- DO NOT EDIT */
22
/* Generated on Sat Jul 1 22:41:12 EDT 2006 */
28
/* cheap-mode: VECTGRADE_FULL succeeded. (958 steps) */
29
/* Generated by: ../../../genfft-k7/gen_notw -no-randomized-cse -n 32 -name n1k7_32 */
33
* $Id: algsimp.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
34
* $Id: fft.ml,v 1.4 2006-01-05 03:04:27 stevenj Exp $
35
* $Id: gen_notw.ml,v 1.12 2006-01-05 03:04:27 stevenj Exp $
38
/* The following asm code is Copyright (c) 2000-2001 Stefan Kral */
41
chs_lo: .long 0x80000000, 0x00000000
42
KP707106781KP707106781: .float +0.707106781186547524400844362104849039284835938, +0.707106781186547524400844362104849039284835938
43
KP923879532KP382683432: .float +0.923879532511286756128183189396788286822416626, +0.382683432365089771728459984030398866761344562
44
KP382683432KP923879532: .float +0.382683432365089771728459984030398866761344562, +0.923879532511286756128183189396788286822416626
45
chs_hi: .long 0x00000000, 0x80000000
46
KP980785280KP195090322: .float +0.980785280403230449126182236134239036973933731, +0.195090322016128267848284868477022240927691618
47
KP555570233KP831469612: .float +0.555570233019602224742830813948532874374937191, +0.831469612302545237078788377617905756738560812
48
KP195090322KP980785280: .float +0.195090322016128267848284868477022240927691618, +0.980785280403230449126182236134239036973933731
49
KP831469612KP555570233: .float +0.831469612302545237078788377617905756738560812, +0.555570233019602224742830813948532874374937191
76
/* promise simd cell size = 8 */
78
leal (%ecx,%ecx,2), %ebp
80
movq (%eax,%ecx,8), %mm4
81
movq (%edx,%ebp,4), %mm7
82
movq (%edx,%ecx,8), %mm3
83
movq (%eax,%ebp,4), %mm6
91
movq (%edx,%ecx,4), %mm3
94
movq (%eax,%ecx,4), %mm6
116
movq (%eax,%ebp,2), %mm2
119
movq (%edx,%ebp,2), %mm6
120
leal (%ecx,%ecx,2), %ebp
125
leal (%ecx,%ebp,2), %ebp
129
movq (%eax,%ebp,2), %mm5
130
movq (%edx,%ebp,2), %mm3
134
leal (%ecx,%ecx,4), %ebp
141
pfmul KP707106781KP707106781, %mm1
142
pfmul KP707106781KP707106781, %mm0
143
movq (%eax,%ebp,2), %mm5
150
movq (%edx,%ebp,2), %mm2
151
leal (%ecx,%ecx,2), %ebp
153
movq (%edx,%ecx,2), %mm1
154
leal (%ecx,%ebp,2), %ebp
156
movq (%eax,%ecx,2), %mm0
180
pfmul KP923879532KP382683432, %mm2
183
pfmul KP382683432KP923879532, %mm4
186
pfmul KP923879532KP382683432, %mm7
189
pfmul KP382683432KP923879532, %mm0
192
pfmul KP923879532KP382683432, %mm6
194
pfmul KP382683432KP923879532, %mm3
195
pfmul KP923879532KP382683432, %mm5
196
pfmul KP382683432KP923879532, %mm1
198
movq (%edx,%ebp), %mm6
200
movq (%eax,%ebp), %mm3
201
leal (%ecx,%ecx,2), %ebp
203
leal (%ebp,%ebp,4), %ebp
206
movq (%eax,%ebp), %mm7
207
movq (%edx,%ebp), %mm2
210
leal (%ecx,%ecx,8), %ebp
214
movq (%eax,%ebp), %mm6
215
movq (%edx,%ebp), %mm5
216
leal (%ecx,%ecx,2), %ebp
220
leal (%ebp,%ecx,8), %ebp
223
movq (%edx,%ecx), %mm4
227
movq (%eax,%ecx), %mm2
237
movq (%edx,%ebp), %mm4
238
movq (%eax,%ebp), %mm0
239
leal (%ecx,%ecx,2), %ebp
246
movq (%eax,%ebp), %mm0
249
movq (%edx,%ebp), %mm6
250
leal (%ecx,%ecx,2), %ebp
252
leal (%ecx,%ebp,4), %ebp
262
movq (%eax,%ebp), %mm4
264
movq (%edx,%ebp), %mm7
265
leal (%ecx,%ecx,4), %ebp
269
movq (%edx,%ebp), %mm3
270
movq (%eax,%ebp), %mm2
273
/* simd data load/store barrier */
274
leal (%esi,%esi,2), %ebp
299
pfmul KP707106781KP707106781, %mm7
300
pfmul KP707106781KP707106781, %mm1
309
pfmul KP707106781KP707106781, %mm6
313
pfmul KP707106781KP707106781, %mm0
373
movq %mm4, (%ebx,%esi,8)
375
pfmul KP707106781KP707106781, %mm1
377
movq %mm0, (%edi,%esi,8)
379
pfmul KP707106781KP707106781, %mm7
383
pfmul KP923879532KP382683432, %mm5
384
pfmul KP382683432KP923879532, %mm6
393
movq %mm4, (%edi,%ebp,4)
395
movq %mm3, (%ebx,%esi,4)
397
movq %mm0, (%ebx,%ebp,4)
398
leal (%esi,%esi,2), %ebp
399
movq %mm2, (%edi,%esi,4)
404
leal (%esi,%ebp,2), %ebp
406
pfmul KP707106781KP707106781, %mm7
408
pfmul KP707106781KP707106781, %mm1
416
pfmul KP923879532KP382683432, %mm4
417
pfmul KP382683432KP923879532, %mm7
432
movq %mm3, (%ebx,%ebp,2)
435
movq %mm5, (%edi,%ebp,2)
436
leal (%esi,%esi,2), %ebp
438
pfmul KP923879532KP382683432, %mm6
439
movq %mm2, (%edi,%ebp,2)
441
pfmul KP382683432KP923879532, %mm1
442
pfmul KP382683432KP923879532, %mm3
443
movq %mm4, (%ebx,%ebp,2)
445
leal (%esi,%esi,4), %ebp
446
pfmul KP923879532KP382683432, %mm5
461
movq %mm0, (%ebx,%esi,2)
466
movq %mm4, (%edi,%esi,2)
467
movq %mm7, (%ebx,%ebp,2)
468
movq %mm1, (%edi,%ebp,2)
469
leal (%esi,%esi,2), %ebp
472
pfmul KP980785280KP195090322, %mm3
475
pfmul KP555570233KP831469612, %mm5
476
pfmul KP195090322KP980785280, %mm7
477
leal (%esi,%ebp,2), %ebp
478
pfmul KP831469612KP555570233, %mm1
480
pfmul KP555570233KP831469612, %mm2
482
pfmul KP980785280KP195090322, %mm6
483
pfmul KP831469612KP555570233, %mm4
484
pfmul KP195090322KP980785280, %mm0
516
movq %mm4, (%ebx,%ebp)
518
movq %mm2, (%edi,%ebp)
519
leal (%esi,%esi,2), %ebp
522
leal (%ebp,%ebp,4), %ebp
525
movq %mm7, (%ebx,%ebp)
527
movq %mm3, (%edi,%ebp)
528
leal (%esi,%esi,2), %ebp
536
pfmul KP980785280KP195090322, %mm7
537
pfmul KP980785280KP195090322, %mm3
538
movq %mm2, (%ebx,%ebp)
539
movq %mm5, (%edi,%ebp)
541
leal (%esi,%esi,2), %ebp
543
leal (%ebp,%esi,8), %ebp
545
movq %mm4, (%ebx,%ebp)
547
movq %mm6, (%edi,%ebp)
548
leal (%esi,%esi,4), %ebp
550
pfmul KP195090322KP980785280, %mm1
552
pfmul KP831469612KP555570233, %mm2
553
pfmul KP980785280KP195090322, %mm5
555
pfmul KP555570233KP831469612, %mm4
556
pfmul KP555570233KP831469612, %mm0
557
pfmul KP555570233KP831469612, %mm6
589
movq %mm2, (%ebx,%ebp)
591
movq %mm1, (%edi,%ebp)
592
leal (%esi,%esi,2), %ebp
595
leal (%esi,%ebp,4), %ebp
598
movq %mm4, (%ebx,%ebp)
599
movq %mm0, (%edi,%ebp)
600
leal (%esi,%esi,8), %ebp
605
movq %mm1, (%ebx,%esi)
606
movq %mm3, (%edi,%esi)
607
movq %mm2, (%ebx,%ebp)
609
movq %mm7, (%edi,%ebp)
632
.long fftwf_kdft_k7_mgenus
640
.globl fftwf_codelet_n1k7_32
641
fftwf_codelet_n1k7_32:
647
call fftwf_kdft_register