OSDN Git Service

[X86][SSE] Prevent misaligned non-temporal vector load/store combines
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 17 Jun 2019 14:26:10 +0000 (14:26 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 17 Jun 2019 14:26:10 +0000 (14:26 +0000)
commitbfe7eb96c9736b21e7790d493e39b19c514ed478
treebeaa55a175bfc5f5b86d7ca18960258a7f14f4a4
parent6b4d361457bf9103e1f2423c34347b1a3cdd8675
[X86][SSE] Prevent misaligned non-temporal vector load/store combines

For loads, pre-SSE41 we can't perform NT loads at all, and after that we can only perform vector aligned loads, so if the alignment is less than for a xmm we'll just end up using the regular unaligned vector loads anyway.

First step towards fixing PR42026 - the next step for stores will be to use SSE4A movntsd where possible and to avoid the stack spill on SSE2 targets.

Differential Revision: https://reviews.llvm.org/D63246

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363564 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/merge-consecutive-stores-nt.ll
test/CodeGen/X86/nontemporal-3.ll