问题描述
我有一个 __m256
包含 8 个浮点数,我想把它分成 2 个 __m128
,一个包含前四个浮点数,另一个包含最后四个浮点数。这可能吗?
谢谢
解决方法
_mm256_extractf128_ps
可用于上部和下部。对于上半部分,这是提取它的最佳方式。但是,对于一些稍微旧的 MSVC 版本,即使索引为零(在这种情况下实际上 不需要指令),内在总是会产生相应的指令。所以为了提取下半部分,应该首选_mm256_castps256_ps128
。
我有一个 __m256
包含 8 个浮点数,我想把它分成 2 个 __m128
,一个包含前四个浮点数,另一个包含最后四个浮点数。这可能吗?
谢谢
_mm256_extractf128_ps
可用于上部和下部。对于上半部分,这是提取它的最佳方式。但是,对于一些稍微旧的 MSVC 版本,即使索引为零(在这种情况下实际上 不需要指令),内在总是会产生相应的指令。所以为了提取下半部分,应该首选_mm256_castps256_ps128
。