X86: Added FeatureVectorUAMem for all AVX architectures.
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Tue, 16 Dec 2014 09:10:08 +0000 (09:10 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Tue, 16 Dec 2014 09:10:08 +0000 (09:10 +0000)
commit4519623e9f6abfb8fabc186a5d69833911085347
tree7a39432fc1bc4b898319bc1a22db7abe9662484a
parent9e2c0f95fe697702c0dd5e1aa68ccfe97c64c62f
X86: Added FeatureVectorUAMem for all AVX architectures.
According to AVX specification:

"Most arithmetic and data processing instructions encoded using the VEX prefix and
performing memory accesses have more flexible memory alignment requirements
than instructions that are encoded without the VEX prefix. Specifically,
With the exception of explicitly aligned 16 or 32 byte SIMD load/store instructions,
most VEX-encoded, arithmetic and data processing instructions operate in
a flexible environment regarding memory address alignment, i.e. VEX-encoded
instruction with 32-byte or 16-byte load semantics will support unaligned load
operation by default. Memory arguments for most instructions with VEX prefix
operate normally without causing #GP(0) on any byte-granularity alignment
(unlike Legacy SSE instructions)."

The same for AVX-512.

This change does not affect anything right now, because only the "memop pattern fragment"
depends on FeatureVectorUAMem and it is not used in AVX patterns.
All AVX patterns are based on the "unaligned load" anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224330 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86.td
lib/Target/X86/X86InstrFragmentsSIMD.td