llvm-project/llvm/lib
Craig Topper e72fe654b7 [DAGCombiner] Use getShiftAmountConstant in DAGCombiner::foldSelectOfConstants.
This enables fshl to be matched earlier on X86

  %6 = lshr i32 %3, 1
  %7 = select i1 %4, i32 -2147483648, i32 0
  %8 = or i32 %6, %7

X86 uses i8 for shift amounts. SelectionDAGBuilder creates the
ISD::SRL with an i8 shift type. DAGCombiner turns the select into
an ISD::SHL. Prior to this patch it would use i32 for the shift
amount. fshl matching failed because the shift amounts have different
types. LegalizeDAG fixes the ISD::SHL shift amount to i8. This
allowed fshl matching to succeed.

With this patch, the ISD::SHL will be created with an i8 shift
amount. This allows the fshl to match immediately.

No test case beause we still end up with a fshl either way.
2022-02-13 19:09:26 -08:00
..
Analysis [IVDescriptors] Support FOR where we have multiple sink pointed 2022-02-14 09:30:35 +08:00
AsmParser [LLParser][OpaquePtr] Support forward reference to unnamed function 2022-02-10 12:20:34 +01:00
BinaryFormat AMDGPU {NFC}: Add code object v5 support and generate metadata for implicit kernel args 2022-01-31 18:07:47 -08:00
Bitcode [Bitcode] Add partial support for opaque pointer auto-upgrade 2022-02-11 09:32:46 +01:00
Bitstream [Bitstream] Check that there is enough space for blob 2022-02-07 12:16:13 +01:00
CodeGen [DAGCombiner] Use getShiftAmountConstant in DAGCombiner::foldSelectOfConstants. 2022-02-13 19:09:26 -08:00
DWARFLinker [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
DWP Cleanup LLVMObject headers 2022-02-10 21:13:44 +01:00
DebugInfo Cleanup LLVMObject headers 2022-02-10 21:13:44 +01:00
Debuginfod [Debuginfod] [Symbolizer] Break debuginfod out of libLLVM. 2022-02-08 19:14:18 +00:00
Demangle [demangler] Remove StdQualifiedName 2022-02-07 07:49:30 -08:00
ExecutionEngine Cleanup LLVMObject headers 2022-02-10 21:13:44 +01:00
Extensions
FileCheck [FileCheck] Allow literal '['s before "[[var...]]" 2022-01-13 09:47:37 +00:00
Frontend [OpenMP][IRBuilder] Handle floats for atomic update and fix AllocaIP for update/capture 2022-02-10 13:16:10 +05:30
FuzzMutate [NFC] Remove uses of PointerType::getElementType() 2022-01-25 09:44:52 +01:00
Fuzzer
IR [NFC][IR] Value: assert this->takeName(this) 2022-02-13 21:47:37 +03:00
IRReader
InterfaceStub [llvm] Remove redundant member initialization (NFC) 2022-01-07 17:45:09 -08:00
LTO [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
LineEditor [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
Linker [NFC] Replace some deprecated getAlignment() calls with getAlign() 2021-12-09 08:43:19 -08:00
MC Cleanup MCParser headers 2022-02-11 10:39:29 +01:00
MCA [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
Object [ObjectYAML][MachO] Add LC_FUNCTION_STARTS support 2022-02-13 09:24:47 -08:00
ObjectYAML [ObjectYAML][MachO] Add LC_FUNCTION_STARTS support 2022-02-13 09:24:47 -08:00
Option [llvm] Use range-based for loops (NFC) 2021-12-09 09:37:29 -08:00
Passes [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
ProfileData [CSSPGO] Do not recount callee samples when computing profile summary for nested CS profile. 2022-02-11 09:05:51 -08:00
Remarks Cleanup LLVMRemarks includes 2022-01-31 11:16:28 +01:00
Support Revert "[lld/coff] Make lld-link work in a non-MSVC shell, add /winsysroot:" 2022-02-11 13:07:23 -08:00
TableGen Fix a typo (occured => occurred) 2022-02-08 21:35:26 +01:00
Target [X86] combineArithReduction - pull out (near) duplicate v4i8/v8i8 widening code. NFC. 2022-02-13 21:02:50 +00:00
Testing
TextAPI Cleanup LLVMTextAPI headers 2022-01-26 14:21:25 +01:00
ToolDrivers
Transforms [Transforms] Use default member initialization in MemmoveVerifier (NFC) 2022-02-13 10:34:03 -08:00
WindowsManifest [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
XRay [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
CMakeLists.txt Revert "try to fix windows build after 73e585e44d" and 2022-02-11 23:47:53 -08:00