超出AVX2寄存器的范围

时间:2019-01-08 18:51:39

标签: c++ undefined-behavior simd avx2

说我有这段代码:

__m256i i1, i2, i3;
memcpy(&i1, p + offsets[0], n);
memcpy(&i2, p + offsets[1], n);
memcpy(&i3, p + offsets[2], n);

// etc

并且n设置为大于32。

我知道不好的事情会发生在我身上-但我实际上还没有看到这段代码段错误。我知道clang的地址清理器抱怨堆栈损坏,并且检查程序集发现它没有优化对memcpy的调用。英特尔/ C ++提供哪些保证(如果有)?

0 个答案:

没有答案