A ver os explico;estoy probando en Yellow Dog 6.1 a compilar las librerias que estan en el directorio /usr/lib/gcc/spu/4.1.1/include que deben servir por lo que he leido sirven para probar los vectores de las SPU del chip Cell(como sabeis el Cell lleva un nucleo de arquitectura PowerPC y 8 coprocesadores o SPUs),lo que no se es para que serviran esos vectores.
El caso es que en dicha carpeta hay varios archivos con extension .h y ninguno .c ;pues segui los pasos cree un archivo de texto llamado vec_test.c con este contenido:
#include <spu_intrinsics.h>
void print_vector(char *var, vector unsigned int val) {
printf("Vector %s is: {%d, %d, %d, %d}\n", var, spu_extract(val, 0),
spu_extract(val, 1), spu_extract(val, 2), spu_extract(val, 3));
}
int main() {
/* Create four vectors */
vector unsigned int a = (vector unsigned int){1, 2, 3, 4};
vector unsigned int b;
vector unsigned int c;
vector unsigned int d;
/* b is identical to a, but the last element is changed to 9 */
b = spu_insert(9, a, 3);
/* c has all four values set to 20 */
c = spu_splats((unsigned int) 20);
/* d has the second value set to to 5, and the others are garbage */
/* (in this case they will all be set to 5, but that should not be relied upon) */
d = spu_promote((unsigned int)5, 1);
/* Show Results */
print_vector("a", a);
print_vector("b", b);
print_vector("c", c);
print_vector("d", d);
return 0;
}
despues crear ese archivo use este comando creo que para crear un ejecutable:
spu-gcc vec_test.c -o vec_test
y despues ejecute el ejecutable con el comando bash:
./vec_test
y me respondio esto:
[root@dhcppc1 include]# ./vec_test
Vector a is: {1, 2, 3, 4}
Vector b is: {1, 2, 3, 9}
Vector c is: {20, 20, 20, 20}
Vector d is: {5, 5, 5, 5}
¿Voy por buen camino a la hora de compilar librerias y codigo C sin compilar?
Otra cosa,no se exactamente que es lo que siginifica esta prueba,¿alguien me puede orientar que significan estas cifras que me ha respondido?
Un saludo.