使用 gcc 的-O3或-O2 选项时,我发现了一个非常奇怪的行为。
当我的程序在调试模式(-g)下运行时,没问题;但是当我打开-O3或-O2时会引发分段错误。
分段发生在运行带有SSE2宏的函数时;像
_m128i polynomial = _mm_set1_epi8(0x1d)
这只是代码的一部分。
我想我已经消除了 16 字节地址对齐的情况。它是如此的连线,以至于 -g 模式和-O2或-O3模式的行为不同。
实际上,我不确定该错误是否与 SSE2 有关。
我正在使用gcc 4.4.3。
你遇到过同样的问题吗?
或者你能给我一些关于如何处理它的建议吗?