He intentado mezclar intrínsecos SSE2 y ensamblador en línea en gcc. Pero si especifico una variable como xmm0/register como entrada, entonces en algunos casos obtengo un error de compilación. Ejemplo:Use intrínsecos SSE2 y ensamblador en línea gcc
#include <emmintrin.h>
int main() {
__m128i test = _mm_setzero_si128();
asm ("pxor %%xmm0, %%xmm0" : : "xmm0" (test) :);
}
cuando se compila con gcc versión 4.6.1 consigo:
>gcc asm_xmm.c
asm_xmm.c: In function ‘main’:
asm_xmm.c:10:3: error: matching constraint references invalid operand number
asm_xmm.c:7:5: error: matching constraint references invalid operand number
Lo curioso es que en los mismos casos en los que tengo otras variables de entrada/registros luego de repente trabaja con xmm0 como entrada pero no xmm1, etc. Y en otro caso pude especificar xmm0-xmm4 pero no arriba. Un poco confundido/frustrado por esto: S
Gracias :)
¡Eres una estrella! Gracias :) –