/*
 * Copyright (c) 1997-1999 Massachusetts Institute of Technology
 * Copyright (c) 2000-2002 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 Feb 19 14:16:58 CET 2002 */

#include <fftw-int.h>
#include <fftw.h>




void
fftw_no_twiddle_4 (const fftw_complex * inC, fftw_complex * outC, int istride,
		   int ostride)
{
     const fftw_simd2 *input = (const fftw_simd2 *) inC;
     fftw_simd2 *output = (fftw_simd2 *) outC;
     DECLARE_SIMD_TMPVAR2 (t1004);
     DECLARE_SIMD_TMPVAR2 (t1003);
     DECLARE_SIMD_TMPVAR2 (t1001);
     DECLARE_SIMD_TMPVAR2 (t1009);
     DECLARE_SIMD_TMPVAR2 (t1006);
     DECLARE_SIMD_TMPVAR2 (t1005);
     DECLARE_SIMD_TMPVAR2 (t1013);
     DECLARE_SIMD_TMPVAR2 (t1002);
     DECLARE_SIMD_TMPVAR2 (t1007);
     DECLARE_SIMD_TMPVAR2 (t1000);
     DECLARE_SIMD_TMPVAR2 (t1010);
     DECLARE_SIMD_TMPVAR2 (t1008);
     DECLARE_SIMD_TMPVAR2 (t1014);

     simd_ld2 (input[istride * 2], t1004);
     simd_ld2 (input[0], t1003);
     simd_add2 (t1003, t1004, t1001);
     simd_sub2 (t1003, t1004, t1009);
     simd_ld2 (input[istride * 3], t1006);
     simd_ld2 (input[istride], t1005);
     simd_sub2 (t1005, t1006, t1013);
     simd_add2 (t1005, t1006, t1002);
     simd_add2 (t1001, t1002, t1007);
     simd_sub2 (t1001, t1002, t1000);
     simd_st2 (t1007, output[0]);
     simd_st2 (t1000, output[ostride * 2]);
     simd_swapchsH2 (t1013, t1010);
     simd_add2 (t1010, t1009, t1008);
     simd_sub2 (t1009, t1010, t1014);
     simd_st2 (t1008, output[ostride]);
     simd_st2 (t1014, output[ostride * 3]);
}


fftw_codelet_desc fftw_no_twiddle_4_desc = {
     "fftw_no_twiddle_4",
     (void (*)()) fftw_no_twiddle_4,
     4,
     FFTW_FORWARD,
     FFTW_NOTW,
     89,
     0,
     (const int *) 0,
};
