OpenMP 编译指示的含义:不要矢量化

Bog*_*ogi 5 simd vectorization openmp

我有一个行程计数非常低的循环,其中矢量化没有效果,但编译器仍然对其进行矢量化。是否有一种可移植的方法来告诉编译器不要对循环进行向量化,与#pragma omp simd

Mic*_*emm 5

如果您有支持 OpenMP API 版本 5.1 的编译器,那么它应该接受以下内容:

#pragma omp simd if(simd:0)
for (...) { ... }
Run Code Online (Sandbox Code Playgroud)

然后应该禁用与该构造关联的循环的矢量化simd

请参阅OpenMP 规范中的simd 构造。