llvm-project/llvm/lib/CodeGen/SelectionDAG
Craig Topper 62b62356fa [X86] Make foldLogicOfSetCCs work better for vectors pre legal types/operations
Summary:
There's a check in the code to only check getSetCCResultType after LegalOperations or if the type is MVT::i1. But the i1 check is only allowing scalar types through. I think it should check that the scalar type is MVT::i1 so that it will work for vectors.

The changed test already does this combine with AVX512VL where getSetCCResultType returns vXi1. But with avx512f and no VLX getSetCCResultType returns a type matching the width of the input type.

Reviewers: spatel, RKSimon

Reviewed By: spatel

Subscribers: llvm-commits

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

llvm-svn: 323631
2018-01-29 07:52:55 +00:00
..
CMakeLists.txt Remove trailing whitespace to trigger re-cmaking 2017-10-02 21:54:38 +00:00
DAGCombiner.cpp [X86] Make foldLogicOfSetCCs work better for vectors pre legal types/operations 2018-01-29 07:52:55 +00:00
FastISel.cpp Use phi ranges to simplify code. No functionality change intended. 2017-12-30 15:27:33 +00:00
FunctionLoweringInfo.cpp Use phi ranges to simplify code. No functionality change intended. 2017-12-30 15:27:33 +00:00
InstrEmitter.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
InstrEmitter.h
LLVMBuild.txt
LegalizeDAG.cpp [LegalizeDAG] Fix ATOMIC_CMP_SWAP_WITH_SUCCESS legalization. 2018-01-17 22:04:36 +00:00
LegalizeFloatTypes.cpp [SelectionDAG][X86] Don't use ->getValueType(0) after a call to getOperand to get the type of the operand. 2017-12-23 02:54:50 +00:00
LegalizeIntegerTypes.cpp [SelectionDAG] Make DAGTypeLegalizer::PromoteSetCCOperands handle SETEQ/SETNE correctly for vector types. 2018-01-27 08:41:03 +00:00
LegalizeTypes.cpp Add optional SelectionDAG* parameter to SValue::dump and SDValue::dumpr 2017-12-20 15:15:04 +00:00
LegalizeTypes.h [SelectionDAG] Don't promote mask operand when widening mstore and mscatter. 2017-12-05 23:08:30 +00:00
LegalizeTypesGeneric.cpp [SelectionDAG] Replace a std::vector<SDValue> with a SmallVector. 2018-01-26 07:15:22 +00:00
LegalizeVectorOps.cpp [SelectionDAG] Fix codegen of vector stores with non byte-sized elements. 2018-01-20 16:05:10 +00:00
LegalizeVectorTypes.cpp [NFC] fix trivial typos in comments and documents 2018-01-26 08:15:29 +00:00
ResourcePriorityQueue.cpp Silence a bunch of implicit fallthrough warnings 2017-12-19 22:05:25 +00:00
SDNodeDbgValue.h Doxygenify comments. 2017-10-24 17:23:40 +00:00
ScheduleDAGFast.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
ScheduleDAGRRList.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
ScheduleDAGSDNodes.cpp Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
ScheduleDAGSDNodes.h [Target] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-11 01:45:03 +00:00
ScheduleDAGVLIW.cpp [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
SelectionDAG.cpp [SelectionDAG] Teach computeKnownBits about ATOMIC_CMP_SWAP_WITH_SUCCESS boolean return value 2018-01-19 20:47:14 +00:00
SelectionDAGAddressAnalysis.cpp [DAG] Teach findBaseOffset to interpret indexes of indexed memory operations 2018-01-26 16:51:27 +00:00
SelectionDAGBuilder.cpp [NFC] fix trivial typos in comments and documents 2018-01-29 05:17:03 +00:00
SelectionDAGBuilder.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
SelectionDAGDumper.cpp [CodeGen] Rename functions PrintReg* to printReg* 2017-11-28 12:42:37 +00:00
SelectionDAGISel.cpp [SelectionDAGISel] Add a debug print before call to Select. Adjust where blank lines are printed during isel process to make things more sensibly grouped. 2018-01-26 19:34:20 +00:00
SelectionDAGPrinter.cpp Remove redundant includes from lib/CodeGen. 2017-12-13 21:30:47 +00:00
SelectionDAGTargetInfo.cpp [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
StatepointLowering.cpp Use getStoreSize() in various places instead of 'BitSize >> 3'. 2017-11-28 14:44:32 +00:00
StatepointLowering.h [CodeGen] Fix some Clang-tidy modernize-use-default-member-init and Include What You Use warnings; other minor fixes (NFC). 2017-09-27 23:26:01 +00:00
TargetLowering.cpp [TargetLowering] Teach TargetLowering::SimplifySetCC to simplify setcc of vXi1 vectors into logic ops. 2018-01-27 09:10:58 +00:00