Pawel Sikora wrote:
Tak na marginesie, to co daje? Wg info gcc przeczniki jedynie umoliwiaj korzystanie z rozszerzonych instrukcji, tak wic nie wystarczy programu przekompilowa, trzeba go przepisa.
no bo umozliwiaja. ot prosty przyklad:
typedef double d2[2]; d2 x, y, z;
void test() { z[0] = x[0] + y[0]; z[1] = x[1] + y[1]; }
gcc -s -S e.c -O2 -fomit-frame-pointer -ffast-math -march=pentium4
test: fldl y faddl x fstpl z fldl y+8 faddl x+8 fstpl z+8 ret
gcc -s -S e.c -O2 -fomit-frame-pointer -ffast-math -march=pentium4 -mfpmath=sse
test: movsd y, %xmm0 addsd x, %xmm0 movsd %xmm0, z movsd y+8, %xmm0 addsd x+8, %xmm0 movsd %xmm0, z+8 ret
jak widac kompilator umie skorzystac takze z sseX.
Nie o tym mÃwiÅem. Same -msse2 -mmmx (bez -mpfpmath) nie dajÄ tego, a -mfpmath=sse ustawia te przeÅÄczniki i tak.
jednakoz duzo lepsze efekty daje przepisanie kodu pod katem rownoleglych obliczen. przydatne sa wtedy typy i metody zdefiniowane w plikach:
/usr/lib/gcc/pentium3-pld-linux/3.4.3/include/emmintrin.h /usr/lib/gcc/pentium3-pld-linux/3.4.3/include/mmintrin.h /usr/lib/gcc/pentium3-pld-linux/3.4.3/include/pmmintrin.h /usr/lib/gcc/pentium3-pld-linux/3.4.3/include/xmmintrin.h
_______________________________________________ pld-devel-pl mailing list [EMAIL PROTECTED] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
