llvm-project/llvm/test/CodeGen
Simon Pilgrim ad45efc445 [X86][SSE] Consistently prefer lowering to PACKUS over PACKSS
We have some combines/lowerings that attempt to use PACKSS-then-PACKUS and others that use PACKUS-then-PACKSS.

PACKUS is much easier to combine with if we know the upper bits are zero as ComputeKnownBits can easily see through BITCASTs etc. especially now that rL333995 and rL334007 have landed. It also effectively works at byte level which further simplifies shuffle combines.

The only (minor) annoyances are that ComputeKnownBits can sometimes take longer as it doesn't fail as quickly as ComputeNumSignBits (but I'm not seeing any actual regressions in tests) and PACKUSDW only became available after SSE41 so we have more codegen diffs between targets.

llvm-svn: 334276
2018-06-08 10:29:00 +00:00
..
AArch64 [NFC][X86][AArch64] Reorganize/cleanup BZHI test patterns 2018-06-06 19:38:10 +00:00
AMDGPU AMDGPU: Error on LDS global address in functions 2018-06-08 08:05:54 +00:00
ARC
ARM [AArch64, ARM] Add support for Samsung Exynos M4 2018-06-06 18:56:00 +00:00
AVR
BPF [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
Generic [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
Hexagon [Hexagon] Implement vector-pair zero as V6_vsubw_dv 2018-06-06 19:34:40 +00:00
Inputs
Lanai Remove SETCCE use from Lanai's backend 2018-06-03 12:56:24 +00:00
MIR [MIRParser] Add parser support for 'true' and 'false' i1s. 2018-06-05 00:17:13 +00:00
MSP430 Emit a left-shift instead of a power-of-two multiply for jump-tables 2018-05-16 08:58:26 +00:00
Mips [mips] Add testcase for i64, i128 addition for the DSP ASE 2018-06-06 13:30:39 +00:00
NVPTX [DAG] fold FP binops with undef operands to NaN 2018-05-21 23:54:19 +00:00
Nios2
PowerPC propagate fast math flags via IR on fma and sub expressions 2018-06-07 22:49:09 +00:00
RISCV [RISCV] Add peepholes for Global Address lowering patterns 2018-05-29 19:34:54 +00:00
SPARC [Sparc] Select correct register class for FP register constraints 2018-05-30 06:07:55 +00:00
SystemZ [BranchFolding] Fix live-in's when hoisting code 2018-06-07 07:20:33 +00:00
Thumb Reapply ARM: Do not spill CSR to stack on entry to noreturn functions 2018-04-07 10:57:03 +00:00
Thumb2 [Thumb2] fix typo in test from r332548 2018-05-17 03:24:25 +00:00
WebAssembly [WebAssembly] Update to the new names for the memory intrinsics. 2018-05-31 22:35:25 +00:00
WinCFGuard
WinEH [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
X86 [X86][SSE] Consistently prefer lowering to PACKUS over PACKSS 2018-06-08 10:29:00 +00:00
XCore [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00