【问题标题】:SSE instruction need the data alignedSSE指令需要数据对齐
【发布时间】:2012-07-02 17:18:59
【问题描述】:

数据是否必须为 16 字节对齐,以便 SSE 指令可以处理它而不会出现分段错误?我尝试的编译器是带有选项-msse2 的gcc。我想使用 _mm_cmpgt_epi32 来比较一个大的 int 数组。我发现除了下标为4的倍数的位置外,它不能在数组的任何位置执行。

【问题讨论】:

    标签: x86 sse simd


    【解决方案1】:

    是的,当您向/从 SSE 寄存器加载和存储数据时,它需要 16 字节对齐,除非您使用加载/存储指令的未对齐版本,例如_mm_loadu_si128/_mm_storeu_si128。但是,使用这些未对齐的加载/存储指令通常会降低性能,因此通常会尝试始终确保正确的数据对齐,并且仅将未对齐的加载/存储用作最后的手段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      相关资源
      最近更新 更多