run org mac installing how golang for descargar compilador go vectorization gccgo

org - ¿cómo es posible obtener gccgo producir código vectorizado?



install go centos (1)

¿Por qué no simplemente construir .so o .a con gcc y llamar a la función c desde Go?

Estoy intentando convencer a gccgo sin éxito de vectorizar el siguiente fragmento de código:

package foo func Sum(v []float32) float32 { var sum float32 = 0 for _, x := range v { sum += x } return sum }

Estoy verificando el ensamblado generado por:

$ gccgo -O3 -ffast-math -march=native -S test.go

La versión de gccgo es:

$ gccgo --version gccgo (Ubuntu 4.9-20140406-0ubuntu1) 4.9.0 20140405 (experimental) [trunk revision 209157]

¿No se supone que gccgo puede vectorizar este código? el código C equivalente con las mismas opciones de gcc está perfectamente vectorizado con las instrucciones AVX ...

ACTUALIZAR

Aquí tienes el ejemplo C correspondiente:

#include <stdlib.h> float sum(float *v, size_t n) { size_t i; float sum = 0; for(i = 0; i < n; i++) { sum += v[i]; } return sum; }

compilar con:

$ gcc -O3 -ffast-math -march=native -S test.c