Здравствуйте, кт, Вы писали:
кт>Кстати, выигрыш от использования SSE2 тоже не впечатляет.
void tsp(point cities[], double tourx[], double toury[], int ncities)
{
int i;
double *ClosePt=tourx;
double CloseDist;
double *p;
// ...
for (i=1; i<ncities; i++) {
double ThisX = tourx[i-1];
double ThisY = toury[i-1];
CloseDist = DBL_MAX;
for (p=&tourx[ncities];;) {
double ThisDist;
asm("movapd %[closeDist], %%xmm4\n"
" shufpd $0, %%xmm4, %%xmm4\n"
" movapd %[thisx], %%xmm6\n"
Может быть, надо было просто корректно выравнить CloseDist, ThisX и т.д.?
SSE ведь предъявляет определенные требования к выравниванию данных...