AVX 具有将 16 位和 32 位整数插入和提取到__m256i向量中的指令:_mm256_insert_epi16, _mm256_insert_epi32, _mm256_extract_epi16, _mm256_extract_epi32。
但是,AVX-512 似乎没有等效的说明。为__m512i向量实现这些方法的适当方法是什么?IE
__m512i _mm512_insert_epi16(__m512i a, __int16 i, int index)__m512i _mm512_insert_epi32(__m512i a, __int32 i, int index)int _mm512_extract_epi16(__m512i a, int index)int _mm512_extract_epi32(__m512i a, int index)这个想法是,我想收集的返回的值double成一个矢量寄存器,用于机加工imm width在一个时间而不第一存储回到存储器。
特定的处理vfma与其他两个操作数都是constexpr,因此它们可以简单地由_mm256_setr_pd调用或从 中对齐/未对齐的内存加载constexpr array。
有没有办法%ymm直接从 value in 中将double 存储在特定位置以%rax进行收集?
目标机器是 Kaby Lake。更有效的未来向量指令也是受欢迎的。