llvm-project/llvm/test/CodeGen
Lei Huang de20843f6f [PowerPC] Improve BUILD_VECTOR of 4 i32s
Currently, for this node:
  vector int test(int a, int b, int c, int d) {
    return (vector int) { a, b, c, d };
  }

we get this on Power9:
  mtvsrdd 34, 5, 3
  mtvsrdd 35, 6, 4
  vmrgow 2, 3, 2

and this on Power8:
  mtvsrwz 0, 3
  mtvsrwz 1, 5
  mtvsrwz 2, 4
  mtvsrwz 3, 6
  xxmrghd 34, 1, 0
  xxmrghd 35, 3, 2
  vmrgow 2, 3, 2

This can be improved to this on LE Power9:
  rldimi 3, 4, 32, 0
  rldimi 5, 6, 32, 0
  mtvsrdd 34, 5, 3

and this on LE Power8
  rldimi 3, 4, 32, 0
  rldimi 5, 6, 32, 0
  mtvsrd 34, 3
  mtvsrd 35, 5
  xxpermdi 34, 35, 34, 0

This patch updates the TD pattern to generate the optimized sequence for both
Power8 and Power9 on LE and BE.

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

llvm-svn: 345414
2018-10-26 18:09:36 +00:00
..
AArch64 Revert "[AArch64] Create proper memoperand for multi-vector stores" 2018-10-26 02:00:14 +00:00
AMDGPU [AMDGPU] Add a pass to promote bitcast calls 2018-10-26 13:18:36 +00:00
ARC
ARM [ARM] Fix ARMCodeGenPrepare test cases 2018-10-26 14:19:57 +00:00
AVR [AVR] Fix the 'call.ll' CodeGen test 2018-10-10 03:21:42 +00:00
BPF [bpf] Test case for symbol information in object file 2018-09-22 17:31:01 +00:00
Generic [MIR] Simplify and move MIR test 2018-10-26 16:00:29 +00:00
Hexagon [Pipeliner] Mark swp-art-deps-rec.ll as REQUIRES: asserts after rL345319 2018-10-26 03:15:56 +00:00
Inputs
Lanai
MIR [MIR] Simplify and move MIR test 2018-10-26 16:00:29 +00:00
MSP430 [DAGCombiner] Add X / X -> 1 & X % X -> 0 folds (test tweaks) 2018-08-29 11:18:14 +00:00
Mips [MIPS GlobalISel] Legalize constants 2018-10-17 10:30:03 +00:00
NVPTX [NVPTX] Implement isLegalToVectorizeLoadChain 2018-08-27 17:29:43 +00:00
Nios2
PowerPC [PowerPC] Improve BUILD_VECTOR of 4 i32s 2018-10-26 18:09:36 +00:00
RISCV [RISCV] Eliminate unnecessary masking of promoted shift amounts 2018-10-12 23:18:52 +00:00
SPARC [Sparc] Remove the support for builtin setjmp/longjmp 2018-09-27 13:32:54 +00:00
SystemZ [SystemZ] Pass the DAG pointer from SystemZAddressingMode::dump(). 2018-10-26 00:02:33 +00:00
Thumb Revert "Revert "[ConstHoist] Do not rebase single (or few) dependent constant"" 2018-09-26 00:59:09 +00:00
Thumb2 CGP: Clear data structures at the end of a loop iteration instead of the beginning. 2018-10-23 21:23:18 +00:00
WebAssembly Reland "[WebAssembly] LSDA info generation" 2018-10-25 23:55:10 +00:00
WinCFGuard [COFF] Emit @feat.00 on 64-bit and set the CFG bit when emitting guardcf tables 2018-09-19 09:58:30 +00:00
WinEH
X86 [X86] Stop promoting vector and/or/xor/andn to vXi64. 2018-10-26 17:21:26 +00:00
XCore