llvm-project/llvm/test/CodeGen
David Green b5315ae8ff [Codegen][ARM] Add addressing modes from masked loads and stores
MVE has a basic symmetry between it's normal loads/store operations and
the masked variants. This means that masked loads and stores can use
pre-inc and post-inc addressing modes, just like the standard loads and
stores already do.

To enable that, this patch adds all the relevant infrastructure for
treating masked loads/stores addressing modes in the same way as normal
loads/stores.

This involves:
- Adding an AddressingMode to MaskedLoadStoreSDNode, along with an extra
   Offset operand that is added after the PtrBase.
- Extending the IndexedModeActions from 8bits to 16bits to store the
   legality of masked operations as well as normal ones. This array is
   fairly small, so doubling the size still won't make it very large.
   Offset masked loads can then be controlled with
   setIndexedMaskedLoadAction, similar to standard loads.
- The same methods that combine to indexed loads, such as
   CombineToPostIndexedLoadStore, are adjusted to handle masked loads in
   the same way.
- The ARM backend is then adjusted to make use of these indexed masked
   loads/stores.
- The X86 backend is adjusted to hopefully be no functional changes.

Differential Revision: https://reviews.llvm.org/D70176
2019-11-26 16:21:01 +00:00
..
AArch64 [AArch64][SVE] Implement floating-point conversion intrinsics 2019-11-26 10:31:47 +00:00
AMDGPU [AMDGPU] Fix emitIfBreak CF lowering: use temp reg to make register coalescer life easier. 2019-11-26 18:59:37 +03:00
ARC
ARM [ARM][ReachingDefs] RDA in LoLoops 2019-11-26 10:13:46 +00:00
AVR
BPF [BPF] add "llvm." prefix to BPF internally created globals 2019-11-25 21:34:46 -08:00
Generic [CodeGen] [ExpandReduction] Fix the bug for ExpandReduction() when vector size isn't power of 2 2019-11-02 23:59:12 -04:00
Hexagon [ModuloSchedule] Fix a bug in experimental expander 2019-11-23 16:01:47 -08:00
Inputs
Lanai
MIR [MIRNamer]: Make the check lines in the test robust with regex. 2019-11-16 22:58:45 -08:00
MSP430 [TargetLowering][DAGCombine][MSP430] Shift Amount Threshold in DAGCombine (4) 2019-11-13 09:23:08 +01:00
Mips [mips] Add a 'generic' Mips CPU 2019-11-21 15:17:21 +01:00
NVPTX [NVPTX] Added llvm.nvvm.mma.m8n8k4.* intrinsics 2019-10-28 13:55:30 -07:00
PowerPC [XCOFF][AIX] Check linkage on the function, and two fixes for comments 2019-11-26 16:09:31 +00:00
RISCV [LegalizeTypes][RISCV] Soften FCOPYSIGN operand 2019-11-26 15:22:55 +00:00
SPARC [Sparc] Fix "Cannot select" error for AtomicFence on 32-bit V9 2019-11-18 09:45:10 +00:00
SystemZ [SystemZ] Return the right offsets from getCalleeSavedSpillSlots(). 2019-11-25 19:03:05 +01:00
Thumb [ARM] Allocatable Global Register Variables for ARM 2019-11-18 10:07:37 +00:00
Thumb2 [Codegen][ARM] Add addressing modes from masked loads and stores 2019-11-26 16:21:01 +00:00
WebAssembly [WebAssembly] Fix miscompile of select with and 2019-11-15 16:22:01 -08:00
WinCFGuard [WinCFG] Handle constant casts carefully in .gfids emission 2019-11-01 13:32:03 -07:00
WinEH
X86 [X86] Updated strict fp scalar tests and add fp80 tests for D68857, NFC. 2019-11-26 13:44:27 +08:00
XCore