llvm-project/llvm/lib/CodeGen/SelectionDAG
David Stuttard 51c1b22806 [DAGCombine] Fix for shuffle to vector extend for non power 2 vectors
Summary:
See https://llvm.org/PR33743 for more details

It seems that for non-power of 2 vector sizes, the algorithm can produce
non-matching sizes for input and result causing an assert.

This usually isn't a problem as the isAnyExtend check will weed these out, but
in some cases (most often with lots of undefined values for the mask indices) it
can pass this check for non power of 2 vectors.

Adding in an extra check that ensures that bit size will match for the result
and input (as required)

Subscribers: nhaehnle

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

llvm-svn: 315307
2017-10-10 12:45:45 +00:00
..
CMakeLists.txt Remove trailing whitespace to trigger re-cmaking 2017-10-02 21:54:38 +00:00
DAGCombiner.cpp [DAGCombine] Fix for shuffle to vector extend for non power 2 vectors 2017-10-10 12:45:45 +00:00
FastISel.cpp Minor refactoring regarding Cast::isNoopCast(), NFC 2017-10-05 07:07:09 +00:00
FunctionLoweringInfo.cpp ISel: Fix FastISel of swifterror values 2017-06-15 17:34:42 +00:00
InstrEmitter.cpp Add llvm.codeview.annotation to implement MSVC __annotation 2017-09-05 20:14:58 +00:00
InstrEmitter.h
LLVMBuild.txt
LegalizeDAG.cpp Remove unused variables. No functionality change. 2017-10-08 19:11:02 +00:00
LegalizeFloatTypes.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeIntegerTypes.cpp Reland "[mips] Fix multiprecision arithmetic." 2017-07-13 11:28:05 +00:00
LegalizeTypes.cpp [DebugInfo] Handle endianness when moving debug info for split integer values (reapplied) 2017-10-03 11:03:02 +00:00
LegalizeTypes.h [SelectionDAG] Teach the vector-types operand scalarizer about SETCC 2017-08-17 08:06:36 +00:00
LegalizeTypesGeneric.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeVectorOps.cpp [CodeGen] Fix some Clang-tidy modernize-use-bool-literals and Include What You Use warnings; other minor fixes (NFC). 2017-09-21 23:20:16 +00:00
LegalizeVectorTypes.cpp Remove unused variables. No functionality change. 2017-10-08 19:11:02 +00:00
ResourcePriorityQueue.cpp Refactoring with range-based for, NFC 2017-05-04 13:35:17 +00:00
SDNodeDbgValue.h [Debug info] Transfer DI to fragment expressions for split integer values. 2017-08-18 18:07:00 +00:00
ScheduleDAGFast.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
ScheduleDAGRRList.cpp Remove usages of deprecated std::unary_function and std::binary_function. 2017-09-14 18:33:25 +00:00
ScheduleDAGSDNodes.cpp [DebugInfo] Sort the SDDbgValue list before assuming it is in IR order 2017-09-25 16:14:53 +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 Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SelectionDAG.cpp [SelectionDAG} Use KnownBits::isUnknown and hasConflict. NFC 2017-10-07 17:07:48 +00:00
SelectionDAGAddressAnalysis.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
SelectionDAGBuilder.cpp [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
SelectionDAGBuilder.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
SelectionDAGDumper.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
SelectionDAGISel.cpp Rename OptimizationDiagnosticInfo.* to OptimizationRemarkEmitter.* 2017-10-09 23:19:02 +00:00
SelectionDAGPrinter.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +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 [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
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 CodeGen: Fix pointer info in expandUnalignedLoad/Store 2017-09-29 23:31:14 +00:00