内联汇编中的vpcmpeqb

问题描述 投票:0回答:1

当前,我正在尝试从使用NASM过渡到在c语言中使用内联汇编,因为这将使将来的链接变得更加容易(尤其是内联)。但是,我无法使矢量指令很好地播放。在Intel汇编中,我能够执行以下操作:

vpcmpeqb    ymm0, [rdi]

这将从rdi读取32个字节,与ymm0比较并标记相等的字节。使用AT&T,我尝试在c内联汇编中执行以下操作,但是它不起作用,它一直抱怨操作数大小不匹配(其中%1是"r"(s)的输入):

vpcmpeqb    %%ymm0, %%ymm0, (%1)

我正在使用gcc版本9.2.1

gcc assembly inline-assembly avx att
1个回答
0
投票

AT&T对操作数使用不同的顺序。要解决您的问题,您应该使用

vpcmpeqb    (%1), %%ymm0, %%ymm0

另外,请阅读对话下的主题以获取有关此主题的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.