[llvm-bugs] [Bug 42026] New: [X86] Scalarize non-temporal vector stores with poor alignment
via llvm-bugs
llvm-bugs at lists.llvm.org
Sun May 26 07:46:39 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=42026
Bug ID: 42026
Summary: [X86] Scalarize non-temporal vector stores with poor
alignment
Product: libraries
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
Assignee: unassignedbugs at nondot.org
Reporter: llvm-dev at redking.me.uk
CC: andrea.dibiagio at gmail.com, craig.topper at gmail.com,
llvm-bugs at lists.llvm.org, llvm-dev at redking.me.uk,
spatel+llvm at rotateright.com
This possibly could be a generic DAG expansion, but I'm making it X86
initially.
The SSE/AVX NT store operations require vector alignment, so if that isn't
possible we currently emit general unaligned load/stores.
Given the coder has gone to the trouble of declaring the ops as non-temporal,
its almost certainly going to be worthwhile scalarizing the ops and using
scalar NT stores to try and avoid cache pollution.
In most cases this will involve trying to use SSE2's MOVNTI i32/i64 op, but if
we have SSE4A we can try to keep on the SIMD unit with MOVNTSD/MOVNTSS.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190526/dfcba995/attachment.html>
More information about the llvm-bugs
mailing list