no sé si te has leído el artículo, pero por ponerlo en plan burdo, el cpu dispatcher hace algo así como:
int multiply(int a, int b) { if (vendorid == "intel" && featureflag & alu_can_multiply) { return a*b; } else { int res = 0; for (int i = abs(b); i; i--) { res += a; } return res; } }
es decir, que si el procesador no es intel, ni se molesta en ver si tiene el juego de instrucciones de alto rendimiento (el suyo propio, las SSE, no estamos hablando del difunto 3dNow!) para usarlo.
Re:Lógico
(Puntos:2, Interesante)( http://barrapunto.com/ )
int multiply(int a, int b) {
if (vendorid == "intel" && featureflag & alu_can_multiply) {
return a*b;
}
else {
int res = 0;
for (int i = abs(b); i; i--) {
res += a;
}
return res;
}
}
es decir, que si el procesador no es intel, ni se molesta en ver si tiene el juego de instrucciones de alto rendimiento (el suyo propio, las SSE, no estamos hablando del difunto 3dNow!) para usarlo.