llvm-project/llvm/test/CodeGen
Craig Topper 35d513c7e4 [X86] Type legalize v2f32 loads by using an f64 load and a scalar_to_vector.
On 64-bit targets the generic legalize will use an i64 load and a scalar_to_vector for us. But on 32-bit targets i64 isn't legal and the generic legalizer will end up emitting two 32-bit loads. We have DAG combines that try to put those two loads back together with pretty good success.

This patch instead uses f64 to avoid the splitting entirely. I've made it do the same for 64-bit mode for consistency and to keep the load in the fp domain.

There are a few things in here that look like regressions in 32-bit mode, but I believe they bring us closer to the 64-bit mode codegen. And that the 64-bit mode code could be better. I think those issues should be looked at separately.

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

llvm-svn: 344291
2018-10-11 20:36:06 +00:00
..
AArch64 [NFC][X86][AArch64] extract-bits.ll: add tests with constants+storing results. 2018-10-10 20:50:52 +00:00
AMDGPU [AMDGPU] Legalize VGPR Rsrc operands for MUBUF instructions 2018-10-08 18:47:01 +00:00
ARC
ARM [ARM] Account for implicit IT when calculating inline asm size 2018-10-08 09:38:28 +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 Revert r344197 "[MC][ELF] compute entity size for explicit sections" 2018-10-11 18:43:08 +00:00
Hexagon [Hexagon] Restrict compound instructions with constant value. 2018-10-11 19:48:15 +00:00
Inputs
Lanai
MIR [codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL 2018-10-01 21:59:45 +00:00
MSP430 [DAGCombiner] Add X / X -> 1 & X % X -> 0 folds (test tweaks) 2018-08-29 11:18:14 +00:00
Mips [DAG] Fix Big Endian in Load-Store forwarding 2018-10-11 18:28:59 +00:00
NVPTX [NVPTX] Implement isLegalToVectorizeLoadChain 2018-08-27 17:29:43 +00:00
Nios2
PowerPC [DAG] Fix Big Endian in Load-Store forwarding 2018-10-11 18:28:59 +00:00
RISCV [RISCV] Re-generate test/CodeGen/RISCV/vararg.ll after r344142 2018-10-11 11:11:58 +00:00
SPARC [Sparc] Remove the support for builtin setjmp/longjmp 2018-09-27 13:32:54 +00:00
SystemZ [DAGCombine] Improve Load-Store Forwarding 2018-10-10 14:15:52 +00:00
Thumb Revert "Revert "[ConstHoist] Do not rebase single (or few) dependent constant"" 2018-09-26 00:59:09 +00:00
Thumb2 [ARM] Do not fuse VADD and VMUL on the Cortex-M4 and Cortex-M33 2018-09-24 12:02:50 +00:00
WebAssembly [WebAssembly] Saturating float to int intrinsics 2018-10-11 00:01:25 +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] Type legalize v2f32 loads by using an f64 load and a scalar_to_vector. 2018-10-11 20:36:06 +00:00
XCore