将 __m256 拆分为两个 __m128 寄存器

问题描述

我有一个 __m256 包含 8 个浮点数,我想把它分成 2 个 __m128,一个包含前四个浮点数,另一个包含最后四个浮点数。这可能吗?

谢谢

解决方法

_mm256_extractf128_ps 可用于上部和下部。对于上半部分,这是提取它的最佳方式。但是,对于一些稍微旧的 MSVC 版本,即使索引为零(在这种情况下实际上 不需要指令),内在总是会产生相应的指令。所以为了提取下半部分,应该首选_mm256_castps256_ps128

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...