【问题标题】:Can I store only 96 bit of 128 with SSE instructions?我可以使用 SSE 指令仅存储 128 的 96 位吗?
【发布时间】:2013-09-23 04:46:02
【问题描述】:

_mm_store_ps 在一个数组的 4 个浮点元素中存储(例如)128 位。

我可以只存储 96 位吗?或者更确切地说,只有数组的 3 个元素中的前 3 个字节? (附上证交所说明)


我对自己的解释很糟糕:我不想掩盖这些位。我只想存储前 3 个字节,而不复制剩余的 32 位。不覆盖超出内存

【问题讨论】:

  • 不,您需要通过将要写入的 96 位与已经存在的 32 位混合来构建要存储的 128 位。这当然是可行的,但除了 128 位读取之外,还需要进行大量改组。

标签: c++ intel sse simd 128-bit


【解决方案1】:

您可以使用 _mm_maskmoveu_si128 (SSE2) 或 _mm_maskstore_ps (AVX) 来实现。但是,您不应该期望这些说明获得良好的性能。

【讨论】:

  • 我对自己的解释很糟糕:我不想掩盖这些位。我只想存储前 3 个字节,而不复制剩余的 32 位。不覆盖超出内存
  • @user2120196 这就是你得到的,除非你再次糟糕地解释自己。
  • 更好地解释名称:它完全掩盖了位的存储。因此正是你想要的:)
猜你喜欢
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 2012-08-25
  • 2012-03-10
  • 2014-07-09
  • 2010-10-09
  • 2020-12-06
  • 1970-01-01
相关资源
最近更新 更多