llvm-project/llvm/test/CodeGen/Generic
shkzhang 4e9778e346 [CodeGen] [ExpandReduction] Fix the bug for ExpandReduction() when vector size isn't power of 2
Summary:
For below test case, we will get assert error except for AArch64 and ARM:

declare i8 @llvm.experimental.vector.reduce.and.i8.v3i8(<3 x i8> %a)
define i8 @test_v3i8(<3 x i8> %a) nounwind {
  %b = call i8 @llvm.experimental.vector.reduce.and.i8.v3i8(<3 x i8> %a)
  ret i8 %b
}
In the function getShuffleReduction (), we can see it needs the vector size must be power of 2.

This patch is fix below error when the number of element is not power of 2 for those llvm.experimental.vector.reduce.* function.

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D68625
2019-11-02 23:59:12 -04:00
..
2002-04-14-UnexpectedUnsignedType.ll
2002-04-16-StackFrameSizeAlignment.ll
2003-05-27-phifcmpd.ll
2003-05-27-useboolinotherbb.ll
2003-05-27-usefsubasbool.ll
2003-05-28-ManyArgs.ll
2003-05-30-BadFoldGEP.ll
2003-05-30-BadPreselectPhi.ll
2003-07-06-BadIntCmp.ll
2003-07-07-BadLongConst.ll
2003-07-08-BadCastToBool.ll
2003-07-29-BadConstSbyte.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
2004-05-09-LiveVarPartialRegister.ll
2005-01-18-SetUO-InfLoop.ll
2005-04-09-GlobalInPHI.ll
2005-10-18-ZeroSizeStackObject.ll
2005-10-21-longlonggtu.ll
2005-12-01-Crash.ll
2005-12-12-ExpandSextInreg.ll
2006-01-12-BadSetCCFold.ll
2006-01-18-InvalidBranchOpcodeAssert.ll
2006-02-12-InsertLibcall.ll
2006-03-01-dagcombineinfloop.ll
2006-04-26-SetCCAnd.ll
2006-04-28-Sign-extend-bool.ll
2006-05-06-GEP-Cast-Sink-Crash.ll
2006-06-12-LowerSwitchCrash.ll
2006-06-13-ComputeMaskedBitsCrash.ll
2006-06-28-SimplifySetCCCrash.ll
2006-07-03-schedulers.ll
2006-08-30-CoalescerCrash.ll
2006-09-02-LocalAllocCrash.ll
2006-09-06-SwitchLowering.ll
2006-10-27-CondFolding.ll
2006-10-29-Crash.ll
2006-11-20-DAGCombineCrash.ll
2007-01-15-LoadSelectCycle.ll
2007-02-25-invoke.ll
2007-04-08-MultipleFrameIndices.ll
2007-04-13-SwitchLowerBadPhi.ll
2007-04-17-lsr-crash.ll
2007-04-27-InlineAsm-X-Dest.ll
2007-04-27-LargeMemObject.ll
2007-04-30-LandingPadBranchFolding.ll
2007-05-03-EHTypeInfo.ll
2007-05-15-InfiniteRecursion.ll
2007-12-17-InvokeAsm.ll
2007-12-31-UnusedSelector.ll
2008-01-25-dag-combine-mul.ll
2008-01-30-LoadCrash.ll
2008-02-04-Ctlz.ll
2008-02-04-ExtractSubvector.ll
2008-02-20-MatchingMem.ll
2008-02-25-NegateZero.ll
2008-02-26-NegatableCrash.ll
2008-08-07-PtrToInt-SmallerInt.ll
2009-03-17-LSR-APInt.ll
2009-03-29-SoftFloatVectorExtract.ll
2009-04-10-SinkCrash.ll
2009-04-28-i128-cmp-crash.ll
2009-11-16-BadKillsCrash.ll
2010-07-27-DAGCombineCrash.ll
2010-11-04-BigByval.ll
2010-ZeroSizedArg.ll
2011-01-06-BigNumberCrash.ll
2011-07-07-ScheduleDAGCrash.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
2012-06-08-APIntCrash.ll
2013-03-20-APFloatCrash.ll
2014-02-05-OpaqueConstants.ll
APIntLoadStore.ll
APIntParam.ll
APIntSextParam.ll
APIntZextParam.ll
BasicInstrs.ll
ConstantExprLowering.ll
DbgValueAggregate.ll [GlobalISel] Handle multiple registers in dbg.value intrinsic 2019-08-20 16:28:37 +00:00
ForceStackAlign.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
MachineBranchProb.ll Rename ExpandISelPseudo->FinalizeISel, delay register reservation 2019-06-19 00:25:39 +00:00
PBQP.ll
add-with-overflow-24.ll
add-with-overflow-128.ll
add-with-overflow.ll
addr-label.ll
annotate.ll
asm-large-immediate.ll
assume.ll
badCallArgLRLLVM.ll
badFoldGEP.ll
badarg6.ll
bool-to-double.ll
bswap.ll Support generic lowering of vector bswap 2017-11-30 11:06:22 +00:00
builtin-expect.ll
call-ret0.ll
call-ret42.ll
call-void.ll
call2-ret0.ll
cast-fp.ll
cfi-sections.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
constindices.ll
crash.ll
dag-combine-crash.ll
dag-combine-ossfuzz-crash.ll [DAGCombiner] Fix for oss-fuzz bug 2018-04-17 07:22:34 +00:00
dbg_value.ll
div-neg-power-2.ll
donothing.ll
dont-remove-empty-preheader.ll
dwarf-md5.ll [MC/Dwarf] Unclamp DWARF linetables format on Darwin. 2018-09-13 13:13:50 +00:00
dwarf-source.ll [MC/Dwarf] Unclamp DWARF linetables format on Darwin. 2018-09-13 13:13:50 +00:00
edge-bundles-blockIDs.ll
empty-insertvalue.ll
empty-load-store.ll
empty-phi.ll
exception-handling.ll
expand-experimental-reductions.ll [CodeGen] [ExpandReduction] Fix the bug for ExpandReduction() when vector size isn't power of 2 2019-11-02 23:59:12 -04:00
externally_available.ll
fastcall.ll
fneg-fabs.ll [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
fp-to-int-invalid.ll
fp_to_int.ll
fpowi-promote.ll
fwdtwice.ll
global-ret0.ll
hello.ll
i128-addsub.ll
i128-arith.ll
icmp-illegal.ll
inline-asm-mem-clobber.ll
inline-asm-special-strings.ll
intrinsics.ll Implement strip.invariant.group 2018-07-02 04:49:30 +00:00
invalid-memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
isunord.ll
lit.local.cfg [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
live-debug-label.ll [CodeGen] Fix bugs in LiveDebugVariables when debug labels are generated. 2019-01-18 07:17:09 +00:00
llc-start-stop-instance-errors.ll MIR: Add method to stop after specific runs of passes 2018-12-04 17:45:12 +00:00
llc-start-stop.ll Revert "Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline."" 2019-09-10 10:39:09 +00:00
llvm-ct-intrinsics.ll
multiple-return-values-cross-block-with-invoke.ll [Hexagon] Unxfail passing tests 2017-04-13 16:05:35 +00:00
negintconst.ll
nested-select.ll
no-target.ll
opt-codegen-no-target-machine.ll [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
overflow.ll
overloaded-intrinsic-name.ll
pr2625.ll
pr3288.ll
pr12507.ll
pr24662.ll Fix constant folding of fp2int to large integers 2017-03-19 16:50:25 +00:00
pr33094.ll Handle ConstantExpr correctly in SelectionDAGBuilder 2017-07-09 16:01:04 +00:00
print-add.ll
print-after.ll
print-arith-fp.ll
print-arith-int.ll
print-int.ll
print-machineinstrs.ll [SystemZ] Fix trap issue and enable expensive checks. 2017-06-23 14:30:46 +00:00
print-mul-exp.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
print-mul.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
print-shift.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
ptr-annotate.ll
ret0.ll
ret42.ll
select-cc.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
select.ll
selection-dag-determinism.ll Fix nondeterminism introduced in r353954 2019-03-26 12:18:08 +00:00
shift-int64.ll
stacksave-restore.ll
storetrunc-fp.ll
switch-lower-feature.ll
switch-lower.ll
trap.ll
undef-phi.ll
v-split.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
vector-casts.ll
vector-constantexpr.ll
vector-identity-shuffle.ll
vector-redux.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
vector.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
zero-sized-array.ll