llvm-project/llvm/test/CodeGen
Nikolai Bozhenov f02ac0eeb2 [X86] Replace AND+IMM64 with SRL/SHL
Emit SHRQ/SHLQ instead of ANDQ with a 64 bit constant mask if the result
is unused and the mask has only higher/lower bits set. For example, with
this patch LLVM emits

  shrq $41, %rdi
  je

instead of

  movabsq $0xFFFFFE0000000000, %rcx
  testq   %rcx, %rdi
  je

This reduces number of instructions, code size and register pressure.
The transformation is applied only for cases where the mask cannot be
encoded as an immediate value within TESTQ instruction.

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

llvm-svn: 291806
2017-01-12 19:54:27 +00:00
..
AArch64 Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
AMDGPU AMDGPU: Skip fneg/select combine if it can fold into other 2017-01-12 18:58:15 +00:00
ARM Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
AVR [AVR] Implement TargetLoweing::getRegisterByName 2017-01-07 23:39:47 +00:00
BPF Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Generic PR 31534: When emitting both DWARF unwind tables and debug information, 2017-01-05 20:55:28 +00:00
Hexagon Fix two bugs in the pipeliner in renaming phis in the prolog and epilog 2016-12-22 18:49:55 +00:00
Inputs
Lanai [lanai] Simplify small section check in LowerGlobalAddress and treat ldata sections specially. 2016-12-15 16:56:16 +00:00
MIR [AArch64] Fold some filled/spilled subreg COPYs 2017-01-05 21:51:42 +00:00
MSP430 Revert "In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled." 2016-12-14 16:43:44 +00:00
Mips Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
NVPTX [TM] Restore default TargetOptions in TargetMachine::resetTargetOptions. 2017-01-10 23:43:04 +00:00
PowerPC Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
SPARC Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
SystemZ Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
Thumb Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
Thumb2 Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
WebAssembly Revert "CodeGen: Allow small copyable blocks to "break" the CFG." 2017-01-11 19:55:19 +00:00
WinEH Avoid infinite loops in branch folding 2016-12-12 23:05:38 +00:00
X86 [X86] Replace AND+IMM64 with SRL/SHL 2017-01-12 19:54:27 +00:00
XCore Revert "In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled." 2016-12-14 16:43:44 +00:00