小编rob*_*o15的帖子

如何使用128位C变量和xmm 128位asm?

在gcc中,我想通过asm代码做一个带有2个C变量的128位xor:怎么做?

asm (
    "movdqa %1, %%xmm1;"
    "movdqa %0, %%xmm0;"
     "pxor %%xmm1,%%xmm0;"
     "movdqa %%xmm0, %0;"

    :"=x"(buff) /* output operand */
    :"x"(bu), "x"(buff)
    :"%xmm0","%xmm1"
    );
Run Code Online (Sandbox Code Playgroud)

但我有一个分段错误错误; 这是objdump输出:

movq   -0x80(%rbp),%xmm2

movq   -0x88(%rbp),%xmm3

movdqa %xmm2,%xmm1

movdqa %xmm2,%xmm0

pxor   %xmm1,%xmm0

movdqa %xmm0,%xmm2

movq   %xmm2,-0x78(%rbp)
Run Code Online (Sandbox Code Playgroud)

c sse simd

10
推荐指数
2
解决办法
9404
查看次数

标签 统计

c ×1

simd ×1

sse ×1