forked from OSchip/llvm-project
7ff57705ba
We have a vector compare reduction problem seen in PR39665 comment 2: https://bugs.llvm.org/show_bug.cgi?id=39665#c2 Or slightly reduced here: define i1 @cmp2(<2 x double> %a0) { %a = fcmp ogt <2 x double> %a0, <double 1.0, double 1.0> %b = extractelement <2 x i1> %a, i32 0 %c = extractelement <2 x i1> %a, i32 1 %d = and i1 %b, %c ret i1 %d } SLP would not attempt to turn this into a vector reduction because there is an artificial lower limit on that transform. We can not completely remove that limit without inducing regressions though, so this patch just hacks an extra attempt at creating a 2-way reduction to the end of the analysis. As shown in the test file, we are still not getting some of the motivating cases, so follow-on patches will be needed to solve those cases. Differential Revision: https://reviews.llvm.org/D59710 |
||
---|---|---|
.. | ||
OperandBundles | ||
NamedMDNode.ll | ||
NamedMDNode2.ll | ||
README.txt | ||
alias2.ll | ||
aliases.ll | ||
alignment.ll | ||
attributes.ll | ||
basictest.ll | ||
callingconventions.ll | ||
calltest.ll | ||
casttest.ll | ||
cfgstructures.ll | ||
cold.ll | ||
comdat.ll | ||
const_pv.ll | ||
constexpr.ll | ||
constpointer.ll | ||
elf-deplibs.ll | ||
elf-linker-options.ll | ||
escaped_label.ll | ||
exception.ll | ||
float.ll | ||
fold-fpcast.ll | ||
forwardreftest.ll | ||
fp-intrinsics.ll | ||
global_pv.ll | ||
global_section.ll | ||
globalredefinition3.ll | ||
globalvars.ll | ||
indirectcall.ll | ||
indirectcall2.ll | ||
inlineasm.ll | ||
instructions.ll | ||
intrinsic-noduplicate.ll | ||
intrinsics.ll | ||
load_module.ll | ||
md_on_instruction.ll | ||
memorymarkers.ll | ||
metadata.ll | ||
minsize_attr.ll | ||
newcasts.ll | ||
optnone-llc.ll | ||
optnone-opt.ll | ||
optnone.ll | ||
packed.ll | ||
packed_struct.ll | ||
paramattrs.ll | ||
ppcld.ll | ||
prefixdata.ll | ||
prologuedata.ll | ||
properties.ll | ||
prototype.ll | ||
recursivetype.ll | ||
seh-nounwind.ll | ||
simplecalltest.ll | ||
small.ll | ||
smallest.ll | ||
sparcld.ll | ||
strip_names.ll | ||
terminators.ll | ||
testalloca.ll | ||
testconstants.ll | ||
testlogical.ll | ||
testtype.ll | ||
testvarargs.ll | ||
undefined.ll | ||
unreachable.ll | ||
varargs.ll | ||
varargs_new.ll | ||
vector-cast-constant-exprs.ll | ||
weak_constant.ll | ||
weirdnames.ll | ||
x86ld.ll |
README.txt
This directory contains test cases for individual source features of LLVM. It is designed to make sure that the major components of LLVM support all of the features of LLVM, for very small examples. Entire programs should not go here. Regression tests for individual bug fixes should go into the test/Regression dir.