gpt4 book ai didi

sse - 如何使用非立即输入进行类似于_mm_extract_epi8 的操作?

转载 作者:行者123 更新时间:2023-12-05 01:54:53 26 4
gpt4 key购买 nike

我想要的是使用可变标量索引从向量中提取值。

类似于 _mm_extract_epi8/_mm256_extract_epi8 但具有非即时输入。

(向量中有一些结果,找到给定索引的那个是真正的结果,其余的被丢弃)

最佳答案

特别是,如果 index 在一个 GPR 中,最简单的方法可能是将 val 存储到内存中,然后将其 movzx 存储到另一个 GPR 中.使用 C 的示例实现:

uint8_t extract_epu8var(__m256i val, int index) {
union {
__m256i m256;
uint8_t array[32];
} tmp;
tmp.m256 = val;
return tmp.array[index];
}

Godbolt 翻译(请注意,堆栈对齐会产生大量开销——如果您没有对齐的临时存储区域,您可以只使用 vmovdqu 而不是 vmovdqa): https://godbolt.org/z/Gj6Eadq9r

关于sse - 如何使用非立即输入进行类似于_mm_extract_epi8 的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70482174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com