⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 n2sv_32.c

📁 快速fft变换
💻 C
📖 第 1 页 / 共 4 页
字号:
			      T4t = VSUB(T4r, T4s);			      T4A = VSUB(T4w, T4z);			      T5o = VADD(T4w, T4z);			      T4X = VFNMS(LDK(KP414213562), T4W, T4R);			      T58 = VFMA(LDK(KP414213562), T4R, T4W);			      T5n = VADD(T50, T4Z);			      T51 = VSUB(T4Z, T50);			      T4M = VFMA(LDK(KP414213562), T4L, T4G);			      T59 = VFNMS(LDK(KP414213562), T4G, T4L);			      T54 = VSUB(T52, T53);			      T5e = VADD(T53, T52);			      T5b = VFNMS(LDK(KP707106781), T4A, T4t);			      T4B = VFMA(LDK(KP707106781), T4A, T4t);			      {				   V T5s, T56, T4Y, T5c, T5a, T57, T55, T5t;				   T5i = VFMA(LDK(KP414213562), T5h, T5g);				   T5s = VFNMS(LDK(KP414213562), T5g, T5h);				   T56 = VADD(T4M, T4X);				   T4Y = VSUB(T4M, T4X);				   T5c = VADD(T59, T58);				   T5a = VSUB(T58, T59);				   T57 = VFMA(LDK(KP707106781), T54, T51);				   T55 = VFNMS(LDK(KP707106781), T54, T51);				   T5r = VFNMS(LDK(KP707106781), T5e, T5d);				   T5f = VFMA(LDK(KP707106781), T5e, T5d);				   T5t = VFMA(LDK(KP414213562), T5j, T5k);				   T5l = VFNMS(LDK(KP414213562), T5k, T5j);				   T61 = VFMA(LDK(KP923879532), T4Y, T4B);				   STM4(&(ro[6]), T61, ovs, &(ro[0]));				   T62 = VFNMS(LDK(KP923879532), T4Y, T4B);				   STM4(&(ro[22]), T62, ovs, &(ro[0]));				   T63 = VFMA(LDK(KP923879532), T5c, T5b);				   STM4(&(ro[30]), T63, ovs, &(ro[0]));				   T64 = VFNMS(LDK(KP923879532), T5c, T5b);				   STM4(&(ro[14]), T64, ovs, &(ro[0]));				   T65 = VFMA(LDK(KP923879532), T5a, T57);				   STM4(&(io[6]), T65, ovs, &(io[0]));				   T66 = VFNMS(LDK(KP923879532), T5a, T57);				   STM4(&(io[22]), T66, ovs, &(io[0]));				   T67 = VFMA(LDK(KP923879532), T56, T55);				   STM4(&(io[30]), T67, ovs, &(io[0]));				   T68 = VFNMS(LDK(KP923879532), T56, T55);				   STM4(&(io[14]), T68, ovs, &(io[0]));				   T5w = VADD(T5s, T5t);				   T5u = VSUB(T5s, T5t);			      }			 }			 {			      V Tf, T5P, T5z, T5S, T5U, T5O, T5K, T5L, T5M, Tu, T5T, T5N;			      {				   V T5E, T5Q, T5q, T5m, T5v, T5p, T5R, T5J, T5x, T5y;				   Tf = VADD(T7, Te);				   T5x = VSUB(T7, Te);				   T5y = VSUB(T1n, T1u);				   T1v = VADD(T1n, T1u);				   T69 = VFMA(LDK(KP923879532), T5u, T5r);				   STM4(&(ro[10]), T69, ovs, &(ro[0]));				   T6a = VFNMS(LDK(KP923879532), T5u, T5r);				   STM4(&(ro[26]), T6a, ovs, &(ro[0]));				   T5E = VADD(T5A, T5D);				   T5Q = VSUB(T5D, T5A);				   T5q = VSUB(T5l, T5i);				   T5m = VADD(T5i, T5l);				   T5v = VFMA(LDK(KP707106781), T5o, T5n);				   T5p = VFNMS(LDK(KP707106781), T5o, T5n);				   T5P = VSUB(T5x, T5y);				   T5z = VADD(T5x, T5y);				   T5R = VADD(T5F, T5I);				   T5J = VSUB(T5F, T5I);				   T6b = VFMA(LDK(KP923879532), T5m, T5f);				   STM4(&(ro[2]), T6b, ovs, &(ro[0]));				   T6c = VFNMS(LDK(KP923879532), T5m, T5f);				   STM4(&(ro[18]), T6c, ovs, &(ro[0]));				   T6d = VFMA(LDK(KP923879532), T5w, T5v);				   STM4(&(io[2]), T6d, ovs, &(io[0]));				   T6e = VFNMS(LDK(KP923879532), T5w, T5v);				   STM4(&(io[18]), T6e, ovs, &(io[0]));				   T6f = VFMA(LDK(KP923879532), T5q, T5p);				   STM4(&(io[10]), T6f, ovs, &(io[0]));				   T6g = VFNMS(LDK(KP923879532), T5q, T5p);				   STM4(&(io[26]), T6g, ovs, &(io[0]));				   T5S = VSUB(T5Q, T5R);				   T5U = VADD(T5Q, T5R);				   T5O = VSUB(T5J, T5E);				   T5K = VADD(T5E, T5J);				   T1g = VADD(T18, T1f);				   T5L = VSUB(T18, T1f);				   T5M = VSUB(Tt, Tm);				   Tu = VADD(Tm, Tt);			      }			      T6h = VFMA(LDK(KP707106781), T5S, T5P);			      STM4(&(ro[12]), T6h, ovs, &(ro[0]));			      T6i = VFNMS(LDK(KP707106781), T5S, T5P);			      STM4(&(ro[28]), T6i, ovs, &(ro[0]));			      T6j = VFMA(LDK(KP707106781), T5K, T5z);			      STM4(&(ro[4]), T6j, ovs, &(ro[0]));			      T6k = VFNMS(LDK(KP707106781), T5K, T5z);			      STM4(&(ro[20]), T6k, ovs, &(ro[0]));			      T5T = VADD(T5M, T5L);			      T5N = VSUB(T5L, T5M);			      T5V = VSUB(Tf, Tu);			      Tv = VADD(Tf, Tu);			      T6l = VFMA(LDK(KP707106781), T5U, T5T);			      STM4(&(io[4]), T6l, ovs, &(io[0]));			      T6m = VFNMS(LDK(KP707106781), T5U, T5T);			      STM4(&(io[20]), T6m, ovs, &(io[0]));			      T6n = VFMA(LDK(KP707106781), T5O, T5N);			      STM4(&(io[12]), T6n, ovs, &(io[0]));			      T6o = VFNMS(LDK(KP707106781), T5O, T5N);			      STM4(&(io[28]), T6o, ovs, &(io[0]));			      T60 = VADD(T5W, T5X);			      T5Y = VSUB(T5W, T5X);			      T11 = VSUB(TZ, TK);			      T10 = VADD(TK, TZ);			 }		    }		    {			 V T39, T3k, T3j, T3a, T1X, T37, T33, T31, T3d, T3c, T47, T4i, T4h, T48, T4b;			 V T4a, T4e, T3N, T41, T3D, T45, T3Z, T38, T36, T32, T2Q, T42, T3K, T3Q, T4d;			 {			      V T2e, T2n, T2F, T2O, T1w, T5Z;			      {				   V T1H, T1W, T2X, T30;				   T39 = VFMA(LDK(KP707106781), T1G, T1z);				   T1H = VFNMS(LDK(KP707106781), T1G, T1z);				   T1W = VSUB(T1O, T1V);				   T3k = VADD(T1O, T1V);				   T3j = VFMA(LDK(KP707106781), T2W, T2T);				   T2X = VFNMS(LDK(KP707106781), T2W, T2T);				   T30 = VSUB(T2Y, T2Z);				   T3a = VADD(T2Z, T2Y);				   T6p = VSUB(T5V, T5Y);				   STM4(&(ro[24]), T6p, ovs, &(ro[0]));				   T6q = VADD(T5V, T5Y);				   STM4(&(ro[8]), T6q, ovs, &(ro[0]));				   T6r = VADD(Tv, T10);				   STM4(&(ro[0]), T6r, ovs, &(ro[0]));				   T6s = VSUB(Tv, T10);				   STM4(&(ro[16]), T6s, ovs, &(ro[0]));				   T1w = VSUB(T1g, T1v);				   T5Z = VADD(T1g, T1v);				   T1X = VFMA(LDK(KP923879532), T1W, T1H);				   T37 = VFNMS(LDK(KP923879532), T1W, T1H);				   T33 = VFMA(LDK(KP923879532), T30, T2X);				   T31 = VFNMS(LDK(KP923879532), T30, T2X);			      }			      T3d = VFMA(LDK(KP707106781), T2d, T22);			      T2e = VFNMS(LDK(KP707106781), T2d, T22);			      T2n = VFNMS(LDK(KP707106781), T2m, T2j);			      T3c = VFMA(LDK(KP707106781), T2m, T2j);			      T6t = VADD(T5Z, T60);			      STM4(&(io[0]), T6t, ovs, &(io[0]));			      T6u = VSUB(T5Z, T60);			      STM4(&(io[16]), T6u, ovs, &(io[0]));			      T6v = VSUB(T1w, T11);			      STM4(&(io[24]), T6v, ovs, &(io[0]));			      T6w = VADD(T11, T1w);			      STM4(&(io[8]), T6w, ovs, &(io[0]));			      T3g = VFMA(LDK(KP707106781), T2E, T2t);			      T2F = VFNMS(LDK(KP707106781), T2E, T2t);			      T2O = VFNMS(LDK(KP707106781), T2N, T2K);			      T3f = VFMA(LDK(KP707106781), T2N, T2K);			      {				   V T3v, T35, T2o, T3C, T3V, T3Y;				   T47 = VFNMS(LDK(KP707106781), T3u, T3t);				   T3v = VFMA(LDK(KP707106781), T3u, T3t);				   T35 = VFNMS(LDK(KP668178637), T2e, T2n);				   T2o = VFMA(LDK(KP668178637), T2n, T2e);				   T3C = VSUB(T3y, T3B);				   T4i = VADD(T3y, T3B);				   T4h = VFNMS(LDK(KP707106781), T3U, T3T);				   T3V = VFMA(LDK(KP707106781), T3U, T3T);				   T3Y = VSUB(T3W, T3X);				   T48 = VADD(T3X, T3W);				   {					V T3G, T34, T2P, T3J;					T4b = VFMA(LDK(KP707106781), T3F, T3E);					T3G = VFNMS(LDK(KP707106781), T3F, T3E);					T34 = VFMA(LDK(KP668178637), T2F, T2O);					T2P = VFNMS(LDK(KP668178637), T2O, T2F);					T3J = VFNMS(LDK(KP707106781), T3I, T3H);					T4a = VFMA(LDK(KP707106781), T3I, T3H);					T4e = VFMA(LDK(KP707106781), T3M, T3L);					T3N = VFNMS(LDK(KP707106781), T3M, T3L);					T41 = VFNMS(LDK(KP923879532), T3C, T3v);					T3D = VFMA(LDK(KP923879532), T3C, T3v);					T45 = VFMA(LDK(KP923879532), T3Y, T3V);					T3Z = VFNMS(LDK(KP923879532), T3Y, T3V);					T38 = VADD(T35, T34);					T36 = VSUB(T34, T35);					T32 = VADD(T2o, T2P);					T2Q = VSUB(T2o, T2P);					T42 = VFNMS(LDK(KP668178637), T3G, T3J);					T3K = VFMA(LDK(KP668178637), T3J, T3G);					T3Q = VFNMS(LDK(KP707106781), T3P, T3O);					T4d = VFMA(LDK(KP707106781), T3P, T3O);				   }			      }			 }			 {			      V T4n, T4c, T43, T3R, T4m, T4f;			      T6x = VFMA(LDK(KP831469612), T38, T37);			      STM4(&(ro[29]), T6x, ovs, &(ro[1]));			      T6y = VFNMS(LDK(KP831469612), T38, T37);			      STM4(&(ro[13]), T6y, ovs, &(ro[1]));			      T6z = VFMA(LDK(KP831469612), T36, T33);			      STM4(&(io[5]), T6z, ovs, &(io[1]));			      T6A = VFNMS(LDK(KP831469612), T36, T33);			      STM4(&(io[21]), T6A, ovs, &(io[1]));			      T6B = VFMA(LDK(KP831469612), T32, T31);			      STM4(&(io[29]), T6B, ovs, &(io[1]));			      T6C = VFNMS(LDK(KP831469612), T32, T31);			      STM4(&(io[13]), T6C, ovs, &(io[1]));			      T6D = VFMA(LDK(KP831469612), T2Q, T1X);			      STM4(&(ro[5]), T6D, ovs, &(ro[1]));			      T6E = VFNMS(LDK(KP831469612), T2Q, T1X);			      STM4(&(ro[21]), T6E, ovs, &(ro[1]));			      T43 = VFMA(LDK(KP668178637), T3N, T3Q);			      T3R = VFNMS(LDK(KP668178637), T3Q, T3N);			      {				   V T44, T46, T40, T3S;				   T44 = VSUB(T42, T43);				   T46 = VADD(T42, T43);				   T40 = VSUB(T3R, T3K);				   T3S = VADD(T3K, T3R);				   T4p = VFMA(LDK(KP923879532), T48, T47);				   T49 = VFNMS(LDK(KP923879532), T48, T47);				   T4l = VFNMS(LDK(KP923879532), T4i, T4h);				   T4j = VFMA(LDK(KP923879532), T4i, T4h);				   T4n = VFNMS(LDK(KP198912367), T4a, T4b);				   T4c = VFMA(LDK(KP198912367), T4b, T4a);				   T6F = VFMA(LDK(KP831469612), T44, T41);				   STM4(&(ro[11]), T6F, ovs, &(ro[1]));				   T6G = VFNMS(LDK(KP831469612), T44, T41);				   STM4(&(ro[27]), T6G, ovs, &(ro[1]));				   T6H = VFMA(LDK(KP831469612), T46, T45);				   STM4(&(io[3]), T6H, ovs, &(io[1]));				   T6I = VFNMS(LDK(KP831469612), T46, T45);				   STM4(&(io[19]), T6I, ovs, &(io[1]));				   T6J = VFMA(LDK(KP831469612), T40, T3Z);				   STM4(&(io[11]), T6J, ovs, &(io[1]));				   T6K = VFNMS(LDK(KP831469612), T40, T3Z);				   STM4(&(io[27]), T6K, ovs, &(io[1]));				   T6L = VFMA(LDK(KP831469612), T3S, T3D);				   STM4(&(ro[3]), T6L, ovs, &(ro[1]));				   T6M = VFNMS(LDK(KP831469612), T3S, T3D);				   STM4(&(ro[19]), T6M, ovs, &(ro[1]));			      }			      T4m = VFMA(LDK(KP198912367), T4d, T4e);			      T4f = VFNMS(LDK(KP198912367), T4e, T4d);			      T3n = VFNMS(LDK(KP923879532), T3a, T39);			      T3b = VFMA(LDK(KP923879532), T3a, T39);			      T3r = VFMA(LDK(KP923879532), T3k, T3j);			      T3l = VFNMS(LDK(KP923879532), T3k, T3j);			      T3o = VFNMS(LDK(KP198912367), T3c, T3d);			      T3e = VFMA(LDK(KP198912367), T3d, T3c);			      T4q = VADD(T4n, T4m);			      T4o = VSUB(T4m, T4n);			      T4k = VADD(T4c, T4f);			      T4g = VSUB(T4c, T4f);			 }		    }	       }	  }	  {	       V T6N, T6O, T6P, T6Q;	       T6N = VFMA(LDK(KP980785280), T4q, T4p);	       STM4(&(ro[31]), T6N, ovs, &(ro[1]));	       STN4(&(ro[28]), T6i, T6x, T63, T6N, ovs);	       T6O = VFNMS(LDK(KP980785280), T4q, T4p);	       STM4(&(ro[15]), T6O, ovs, &(ro[1]));	       STN4(&(ro[12]), T6h, T6y, T64, T6O, ovs);	       T6P = VFMA(LDK(KP980785280), T4o, T4l);	       STM4(&(io[7]), T6P, ovs, &(io[1]));	       STN4(&(io[4]), T6l, T6z, T65, T6P, ovs);	       T6Q = VFNMS(LDK(KP980785280), T4o, T4l);	       STM4(&(io[23]), T6Q, ovs, &(io[1]));	       STN4(&(io[20]), T6m, T6A, T66, T6Q, ovs);	       {		    V T6R, T6S, T6T, T6U;		    T6R = VFMA(LDK(KP980785280), T4k, T4j);		    STM4(&(io[31]), T6R, ovs, &(io[1]));		    STN4(&(io[28]), T6o, T6B, T67, T6R, ovs);		    T6S = VFNMS(LDK(KP980785280), T4k, T4j);		    STM4(&(io[15]), T6S, ovs, &(io[1]));		    STN4(&(io[12]), T6n, T6C, T68, T6S, ovs);		    T6T = VFMA(LDK(KP980785280), T4g, T49);		    STM4(&(ro[7]), T6T, ovs, &(ro[1]));		    STN4(&(ro[4]), T6j, T6D, T61, T6T, ovs);		    T6U = VFNMS(LDK(KP980785280), T4g, T49);		    STM4(&(ro[23]), T6U, ovs, &(ro[1]));		    STN4(&(ro[20]), T6k, T6E, T62, T6U, ovs);		    T3h = VFNMS(LDK(KP198912367), T3g, T3f);		    T3p = VFMA(LDK(KP198912367), T3f, T3g);	       }	  }	  {	       V T3s, T3q, T3i, T3m;	       T3s = VADD(T3o, T3p);	       T3q = VSUB(T3o, T3p);	       T3i = VADD(T3e, T3h);	       T3m = VSUB(T3h, T3e);	       {		    V T6V, T6W, T6X, T6Y;		    T6V = VFMA(LDK(KP980785280), T3q, T3n);		    STM4(&(ro[9]), T6V, ovs, &(ro[1]));		    STN4(&(ro[8]), T6q, T6V, T69, T6F, ovs);		    T6W = VFNMS(LDK(KP980785280), T3q, T3n);		    STM4(&(ro[25]), T6W, ovs, &(ro[1]));		    STN4(&(ro[24]), T6p, T6W, T6a, T6G, ovs);		    T6X = VFMA(LDK(KP980785280), T3s, T3r);		    STM4(&(io[1]), T6X, ovs, &(io[1]));		    STN4(&(io[0]), T6t, T6X, T6d, T6H, ovs);		    T6Y = VFNMS(LDK(KP980785280), T3s, T3r);		    STM4(&(io[17]), T6Y, ovs, &(io[1]));		    STN4(&(io[16]), T6u, T6Y, T6e, T6I, ovs);		    {			 V T6Z, T70, T71, T72;			 T6Z = VFMA(LDK(KP980785280), T3m, T3l);			 STM4(&(io[9]), T6Z, ovs, &(io[1]));			 STN4(&(io[8]), T6w, T6Z, T6f, T6J, ovs);			 T70 = VFNMS(LDK(KP980785280), T3m, T3l);			 STM4(&(io[25]), T70, ovs, &(io[1]));			 STN4(&(io[24]), T6v, T70, T6g, T6K, ovs);			 T71 = VFMA(LDK(KP980785280), T3i, T3b);			 STM4(&(ro[1]), T71, ovs, &(ro[1]));			 STN4(&(ro[0]), T6r, T71, T6b, T6L, ovs);			 T72 = VFNMS(LDK(KP980785280), T3i, T3b);			 STM4(&(ro[17]), T72, ovs, &(ro[1]));			 STN4(&(ro[16]), T6s, T72, T6c, T6M, ovs);		    }	       }	  }     }}static const kdft_desc desc = { 32, "n2sv_32", {236, 0, 136, 0}, &GENUS, 0, 1, 0, 0 };void X(codelet_n2sv_32) (planner *p) {     X(kdft_register) (p, n2sv_32, &desc);}#else				/* HAVE_FMA *//* Generated by: ../../../genfft/gen_notw -simd -compact -variables 4 -pipeline-latency 8 -n 32 -name n2sv_32 -with-ostride 1 -include n2s.h -store-multiple 4 *//* * This function contains 372 FP additions, 84 FP multiplications, * (or, 340 additions, 52 multiplications, 32 fused multiply/add), * 130 stack variables, 7 constants, and 144 memory accesses */#include "n2s.h"static void n2sv_32(const R *ri, const R *ii, R *ro, R *io, stride is, stride os, INT v, INT ivs, INT ovs){     DVK(KP831469612, +0.831469612302545237078788377617905756738560812);     DVK(KP555570233, +0.555570233019602224742830813948532874374937191);     DVK(KP195090322, +0.195090322016128267848284868477022240927691618);     DVK(KP980785280, +0.980785280403230449126182236134239036973933731);     DVK(KP923879532, +0.923879532511286756128183189396788286822416626);     DVK(KP382683432, +0.382683432365089771728459984030398866761344562);     DVK(KP707106781, +0.707106781186547524400844362104849039284835938);     INT i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -