小编Fer*_*Mom的帖子

int32_t 和 int16_t 之间的 sse4 压缩和(符号扩展至 int32_t)

我有以下代码片段(可以在此处找到要点),其中我尝试对 4 个 int32_t 负值和 4 个 int16_t 值(将符号扩展为 int32_t)之间进行求和。

    extern  exit

    global _start

    section .data

a:     dd -76, -84, -84, -132
b:     dw 406, 406, 406, 406
    
    section .text
_start:
    movdqa xmm0, [a]
    pmovsxwd xmm2, [b]
    paddq xmm0, xmm2
    ;Expected: 330, 322, 322, 274
    ;Results:  330, 323, 322, 275
    call exit
Run Code Online (Sandbox Code Playgroud)

然而,当通过我的调试器时,我无法理解为什么输出结果与预期结果不同。任何想法 ?

linux sse x86-64 intel

1
推荐指数
1
解决办法
83
查看次数

标签 统计

intel ×1

linux ×1

sse ×1

x86-64 ×1