_mm_set1_epi32 的运行时错误
Runtime Error with _mm_set1_epi32
我正在尝试在一些项目中使用 SIMD 指令并且一切正常,除了我不能使用 _mm_set1_epi32(x) 命令(我仍然可以只使用 _mm_set_epi32( x,x,x,x) 并且工作正常)但是一旦我想使用来自使用该命令的另一个来源的代码,我就会收到 "memory access error" 消息(请原谅我没有正确的错误的英文翻译,我试着从德语翻译它,它是 Speicherzugriffsfehler)
一些附加信息:
- 我在一个空项目中收到错误,除了使用命令我什么也没做
- 我没有其他命令就遇到了这个问题
对于代码示例,这里 post 没有真正的东西,除了这个:
int main() {
__m128i test = _mm_set1_epi32(1);
}
运行时出错,编译没有问题
我解决了这个问题。我用来编译的标志哪里错了,这也是我没有放任何代码的原因,它只是我尝试执行命令并将其包含在主函数中的 1 行。
所以对于解决方案,我现在使用:
-g -std=c++11 -Wall -pedantic -msse4.1 -v
在我使用之前:
-g -std=c++11 -Wall -pedantic -msse -mmmx -msse2 -msse4.1 -v -mavx2
我正在尝试在一些项目中使用 SIMD 指令并且一切正常,除了我不能使用 _mm_set1_epi32(x) 命令(我仍然可以只使用 _mm_set_epi32( x,x,x,x) 并且工作正常)但是一旦我想使用来自使用该命令的另一个来源的代码,我就会收到 "memory access error" 消息(请原谅我没有正确的错误的英文翻译,我试着从德语翻译它,它是 Speicherzugriffsfehler)
一些附加信息:
- 我在一个空项目中收到错误,除了使用命令我什么也没做
- 我没有其他命令就遇到了这个问题
对于代码示例,这里 post 没有真正的东西,除了这个:
int main() {
__m128i test = _mm_set1_epi32(1);
}
运行时出错,编译没有问题
我解决了这个问题。我用来编译的标志哪里错了,这也是我没有放任何代码的原因,它只是我尝试执行命令并将其包含在主函数中的 1 行。
所以对于解决方案,我现在使用:
-g -std=c++11 -Wall -pedantic -msse4.1 -v
在我使用之前:
-g -std=c++11 -Wall -pedantic -msse -mmmx -msse2 -msse4.1 -v -mavx2