Intel® C++ Compiler 19.0 Developer Guide and Reference
Enables generation of streaming stores for optimization.
Linux and macOS: | -qopt-streaming-stores=keyword |
Windows: | /Qopt-streaming-stores:keyword |
keyword |
Specifies whether streaming stores are generated. Possible values are:
|
-qopt-streaming-stores=auto |
The compiler decides whether to use streaming stores or normal stores. |
This option enables generation of streaming stores for optimization. This method stores data with instructions that use a non-temporal buffer, which minimizes memory hierarchy pollution.
This option may be useful for applications that can benefit from streaming stores.
None
The following example shows a way to insert fences when specifying -qopt-streaming-stores=always or /Qopt-streaming-stores:always:
void simple1(double * restrict a, double * restrict b, double * restrict c, double *d, int n)
{
int i, j;
#pragma omp parallel for
for (j=0; j<n; j++) {
a[j] = 1.0;
b[j] = 2.0;
c[j] = 0.0;
}
_mm_sfence(); // OR _mm_mfence();
#pragma omp parallel for
for (i=0; i<n; i++)
a[i] = a[i] + c[i]*b[i];
}