Visible to Intel only — GUID: GUID-71FBA8B7-28E3-46C0-99F9-75D2958994C3
Visible to Intel only — GUID: GUID-71FBA8B7-28E3-46C0-99F9-75D2958994C3
qopt-streaming-stores, Qopt-streaming-stores
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]; }