Enables generation of streaming stores for optimization.
Linux and macOS: | -qopt-streaming-stores=keyword -qno-opt-streaming-stores |
Windows: | /Qopt-streaming-stores:keyword /Qopt-streaming-stores- |
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]; }