[an error occurred while processing this directive]
|
r1.l = w[i1++] || r2.l = w[i2--];
1) не надо читать по 16 бит, а читать по 32
два чтения из одного блока тормозят (1 stal)
r0.l = r0.h + r3.h (s); //x2[0]=x1[0]+x1[3];
r1.l = r1.h + r2.h (s); //x2[1]=x1[1]+x1[2];
r2.l = r1.h - r2.h (s); //x2[2]=x1[1]-x1[2];
r3.l = r0.h - r3.h (s); //x2[3]=x1[0]-x1[3];
2) при правильном расположении - это одна операция
r0.l = r1.l * r7.l (is);
r0.l = r0.l >>> 5;
3) одно умножение, если (hs) режим взять...
4) ну и умножения можно упаковать по два...
E-mail: info@telesys.ru