1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/lib
Sanjay Patel 194c76c793 [DAGCombiner] match vector compare and select sizes with extload operand (PR37427)
This patch started off much more general and ambitious, but it's been a nightmare 
seeing all the ways x86 vector codegen can go wrong.

So the code is still structured to allow extending easily, but it's currently 
limited in several ways:

1. Only handle cases with an extending load.
2. Only handle cases with a zero constant compare.
3. Ignore setcc with vector bitmask (SetCCWidth != 1) - so AVX512 should be unaffected.

The motivating case from PR37427:
https://bugs.llvm.org/show_bug.cgi?id=37427
...is the 1st test, and that shows the expected win - we eliminated the unnecessary 
intermediate cast.

There's a clear regression in the last test (sgt_zero_fp_select) because we longer 
recognize a 'SHRUNKBLEND' opportunity. I think that general problem is also present 
in sgt_zero, so I'll try to fix that in a follow-up. We need to match a sign-bit 
setcc from a sign-extended operand and remove it.

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

llvm-svn: 334378
2018-06-10 23:09:50 +00:00
..
Analysis [SCEV] Look through zero-extends in howFarToZero 2018-06-08 20:43:07 +00:00
AsmParser [ThinLTO] Print module summary index to assembly 2018-05-26 02:34:13 +00:00
BinaryFormat [WebAssembly] Move toString helpers to BinaryFormat 2018-05-14 22:42:07 +00:00
Bitcode [ThinLTO] Rename index IsAnalysis flag to HaveGVs (NFC) 2018-06-06 22:22:01 +00:00
CodeGen [DAGCombiner] match vector compare and select sizes with extload operand (PR37427) 2018-06-10 23:09:50 +00:00
DebugInfo DWARFAcceleratorTable: Add an iterator-based api for accessing names in the index 2018-06-01 10:33:11 +00:00
Demangle Move Compiler.h from Demangle back to Support 2018-06-04 22:53:38 +00:00
ExecutionEngine [ORC] Add a constructor to create an IRMaterializationUnit from a module and 2018-06-03 19:22:48 +00:00
Fuzzer
FuzzMutate
IR [X86] Remove masking from the 512-bit masked floating point add/sub/mul/div intrinsics. Use a select in IR instead. 2018-06-10 06:01:36 +00:00
IRReader
LineEditor
Linker
LTO [ThinLTO] Rename index IsAnalysis flag to HaveGVs (NFC) 2018-06-06 22:22:01 +00:00
MC [MC] Pass MCSubtargetInfo to fixupNeedsRelaxation and applyFixup 2018-06-06 09:40:06 +00:00
Object [MachO] Add out-of-bounds check to MachOObjectFile.cpp 2018-06-04 17:01:20 +00:00
ObjectYAML [MC] Add assembler support for .cg_profile. 2018-06-02 16:33:01 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes [PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, schedule 2018-05-30 02:46:45 +00:00
ProfileData Support: Simplify endian stream interface. NFCI. 2018-05-18 19:46:24 +00:00
Support Attempt 3: Resubmit "[Support] Expose flattenWindowsCommandLine." 2018-06-10 20:57:14 +00:00
TableGen TableGen: Streamline the semantics of NAME 2018-06-04 14:26:05 +00:00
Target [X86] Miscellaneous fixes to get the load folding table generator to work again. 2018-06-10 21:48:24 +00:00
Testing
ToolDrivers
Transforms Revert rL334371 / D47980: "[InstCombine] Fold (x << y) >> y -> x & (-1 >> y)" 2018-06-10 20:32:03 +00:00
WindowsManifest
XRay
CMakeLists.txt
LLVMBuild.txt