https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110054
Bug ID: 110054 Summary: stdx::simd masked store should not use non-temporal store instruction Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: mkretz at gcc dot gnu.org Target Milestone: --- Target: x86_64-*-*, i?86-*-* test case: https://compiler-explorer.com/z/h1qd3bajG where(k, v).copy_to(ptr, ...) compiles to MASKMOVDQU which is a non-temporal store. All other stores in simd are normal (temporal) stores. A non-temporal store only makes sense if the user explicitly asked for this behavior. Otherwise the performance hit can be significant, because the relevant cache line(s) need to be evicted before the write-combining write to memory.