1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/test/CodeGen
Chad Rosier f28ce785a9 [AArch64] Improve getUsefulBitsForUse for narrow stores.
For narrow stores (e.g., strb, srth) we know the upper bits of the register are
unused/not useful. In some cases we can use this information to eliminate
unnecessary instructions.

For example, without this patch we generate (from the 2nd test case):

 ldr w8, [x0]
 and w8, w8, #0xfff0
 bfxil w8, w2, #16, #4
 strh w8, [x1]

and after the patch the 'and' is removed:

 ldr w8, [x0]
 bfxil w8, w2, #16, #4
 strh w8, [x1]
 ret

During the lowering of the bitfield insert instruction the 'and' is eliminated
because we know the upper 16-bits that are masked off are unused and the lower
4-bits that are masked off are overwritten by the insert itself. Therefore, the
'and' is unnecessary.

Differential Revision: http://reviews.llvm.org/D20175

llvm-svn: 269226
2016-05-11 20:19:54 +00:00
..
AArch64 [AArch64] Improve getUsefulBitsForUse for narrow stores. 2016-05-11 20:19:54 +00:00
AMDGPU AMDGPU: Split private memory tests 2016-05-11 17:24:45 +00:00
ARM ARM: stop emitting blx instructions for most calls on MachO. 2016-05-10 19:17:47 +00:00
BPF
Generic llc: Rework -run-pass option 2016-05-10 01:32:44 +00:00
Hexagon [Hexagon] Use offsets relative to FP+8 in .cfi_offset instructions 2016-05-11 14:53:07 +00:00
Inputs
Lanai [lanai] Add subword scheduling itineraries. 2016-04-20 18:28:55 +00:00
Mips [mips][microMIPS] Implement CFC*, CTC* and LDC* instructions 2016-05-11 12:12:24 +00:00
MIR ARM: fix handling of SUB immediates in peephole opt. 2016-05-02 18:30:08 +00:00
MSP430
NVPTX [NVPTX] Fix sign/zero-extending ldg/ldu instruction selection 2016-05-02 18:12:02 +00:00
PowerPC Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
SPARC [Sparc][LEON] Itineraries unit test. 2016-05-10 09:09:20 +00:00
SystemZ [PR27599] [SystemZ] [SelectionDAG] Fix extension of atomic cmpxchg result. 2016-05-10 16:49:04 +00:00
Thumb ARM: stop emitting blx instructions for most calls on MachO. 2016-05-10 19:17:47 +00:00
Thumb2 ARM: stop emitting blx instructions for most calls on MachO. 2016-05-10 19:17:47 +00:00
WebAssembly [WebAssembl] Implement enough of fast-isel to run the comparison tests. 2016-05-11 16:32:42 +00:00
WinEH
X86 [X86][AVX512] Fixed VPERMILPD/VPERMILPS shuffle comments. 2016-05-11 18:53:44 +00:00
XCore