On Thu, 4 Nov 2004, Roman Werpachowski wrote:

Pawel Sikora wrote:
On Thu, 4 Nov 2004, Piotr Wawrzyniak wrote:

glibc kompilowa�em z troch� innymi flagami ni� jest to robione w pld, mo�e to
jest problemem.
[EMAIL PROTECTED] ~/programowanie]$ echo $CFLAGS
-Os -march=pentium4 -mcpu=pentium4 -mfpmath=sse -msse2 -mmmx -s -pipe -z
combreloc -DBDEBUG -DG_DISABLE_ASSERT -fomit-frame-pointer


-msse2 -mmmx sa wlaczane przez -march=pentium4 wiec ich podawanie
jest w tym przypadku zbedne.

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. 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

Odpowiedź listem elektroniczym