Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

novector

Specifies that a particular loop should never be vectorized.

Syntax

#pragma novector

Arguments

None

Description

The novector pragma specifies that a particular loop should never be vectorized, even if it is legal to do so. When avoiding vectorization of a loop is desirable (when vectorization results in a performance regression rather than improvement), the novector pragma can be used in the source text to disable vectorization of a loop. This behavior is in contrast to the vector always pragma.

The novector pragma is supported in host code only.

Examples

Use the novector pragma:

void foo(int lb, int ub) {
  #pragma novector
  for(j=lb; j<ub; j++) { a[j]=a[j]+b[j]; } 
}

When the trip count (ub - lb) is too low to make vectorization worthwhile, you can use the novector pragma to tell the compiler not to vectorize, even if the loop is considered vectorizable.