llvm-project/llvm/test/CodeGen
Craig Topper 273f755da3 [X86] Fold (movmsk (setne (and X, (1 << C)), 0)) -> (movmsk (X << C))
Summary:
MOVMSK only care about the sign bit so we don't need the setcc to fill the whole element with 0s/1s. We can just shift the bit we're looking for into the sign bit. This saves a constant pool load.

Inspired by PR38840.

Reviewers: RKSimon, spatel

Reviewed By: RKSimon

Subscribers: lebedev.ri, llvm-commits

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

llvm-svn: 342326
2018-09-15 16:23:33 +00:00
..
AArch64 [AArch64] Add integer abs testcases for D51873. 2018-09-13 17:11:25 +00:00
AMDGPU [AMDGPU] Ensure trig range reduction only used for subtargets that require it 2018-09-14 10:27:19 +00:00
ARC
ARM Revert r342210 "[ARM] bottom-top mul support in ARMParallelDSP" 2018-09-14 18:44:37 +00:00
AVR [AVR] Redefine the 'LSL' instruction as an alias of 'ADD' 2018-09-01 12:23:00 +00:00
BPF bpf: add missing RegState to notify MachineInstr verifier necessary register usage 2018-07-27 16:58:52 +00:00
Generic [MC/Dwarf] Unclamp DWARF linetables format on Darwin. 2018-09-13 13:13:50 +00:00
Hexagon [Hexagon] Use shuffles when lowering "gather" shufflevectors 2018-09-12 22:14:52 +00:00
Inputs
Lanai
MIR add IR flags to MI 2018-09-11 21:35:32 +00:00
MSP430 [DAGCombiner] Add X / X -> 1 & X % X -> 0 folds (test tweaks) 2018-08-29 11:18:14 +00:00
Mips [MIPS] Fix illegal type assert in single-float mode 2018-09-11 15:32:47 +00:00
NVPTX [NVPTX] Implement isLegalToVectorizeLoadChain 2018-08-27 17:29:43 +00:00
Nios2
PowerPC [PowerPC] Fix the calling convention for i1 arguments on PPC32 2018-09-14 21:26:05 +00:00
RISCV [RISCV] atomic_store_nn have a different layout to regular store 2018-08-27 07:08:18 +00:00
SPARC [Sparc] Use ANDN instead of AND if constant can be encoded more efficiently 2018-08-30 14:05:26 +00:00
SystemZ [DAGCombiner] Add X / X -> 1 & X % X -> 0 folds (test tweaks) 2018-08-29 11:18:14 +00:00
Thumb CodeGen: Make computeRegisterLiveness search forward first 2018-08-30 07:18:10 +00:00
Thumb2 [SelectionDAG] Improve the legalisation lowering of UMULO. 2018-08-16 18:39:39 +00:00
WebAssembly [WebAssembly][NFC] Generalize operand numbers in SIMD tests 2018-09-15 01:12:48 +00:00
WinCFGuard Rename the cfguard module flag to cfguardtable 2018-08-10 09:48:53 +00:00
WinEH
X86 [X86] Fold (movmsk (setne (and X, (1 << C)), 0)) -> (movmsk (X << C)) 2018-09-15 16:23:33 +00:00
XCore [DAGCombiner] extend(ifpositive(X)) -> shift-right (not X) 2018-07-15 16:27:07 +00:00