1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Transforms/LoopVectorize
Sanjay Patel 244e402b5c [InstCombine] reassociate splatted vector ops
bo (splat X), (bo Y, OtherOp) --> bo (splat (bo X, Y)), OtherOp

This patch depends on the splat analysis enhancement in D73549.
See the test with comment:
; Negative test - mismatched splat elements
...as the motivation for that first patch.

The motivating case for reassociating splatted ops is shown in PR42174:
https://bugs.llvm.org/show_bug.cgi?id=42174

In that example, a slight change in order-of-associative math results
in a big difference in IR and codegen. This patch gets all of the
unnecessary shuffles out of the way, but doesn't address the potential
scalarization (see D50992 or D73480 for that).

Differential Revision: https://reviews.llvm.org/D73703
2020-02-03 09:08:36 -05:00
..
AArch64 [AArch64TTI] AArch64 supports NT vector stores through STNP. 2020-01-22 16:45:24 -08:00
AMDGPU
ARM [ARM] Use reduction intrinsics for larger than legal reductions 2020-01-24 17:07:24 +00:00
Hexagon
PowerPC [PowerPC][LoopVectorize] Extend getRegisterClassForType to consider double and other floating point type 2020-01-06 18:44:59 +00:00
SystemZ
X86 [ValueTracking] Add DemandedElts support to computeKnownBits/ComputeNumSignBits (PR36319) 2020-02-01 12:45:46 +00:00
XCore
12-12-11-if-conv.ll
2012-10-20-infloop.ll
2012-10-22-isconsec.ll
2016-07-27-loop-vec.ll
align.ll
assume.ll [LV] Allow assume calls in predicated blocks. 2020-01-16 10:11:35 +00:00
bsd_regex.ll
bzip_reverse_loops.ll
calloc.ll
cast-induction.ll
check-prof-info.ll [LV] Vectorizer should adjust trip count in profile information 2020-01-20 18:36:28 +07:00
conditional-assignment.ll
consec_no_gep.ll
consecutive-ptr-uniforms.ll
control-flow.ll
cpp-new-array.ll
dbg.value.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
dead_instructions.ll
debugloc.ll
demanded-bits-of-pointer-instruction.ll
diag-missing-instr-debug-loc.ll
diag-with-hotness-info-2.ll
diag-with-hotness-info.ll
disable_nonforced_enable.ll
disable_nonforced.ll
discriminator.ll
ee-crash.ll
exact.ll
explicit_outer_detection.ll
explicit_outer_nonuniform_inner.ll
explicit_outer_uniform_diverg_branch.ll
fcmp-vectorize.ll
first-order-recurrence-complex.ll
first-order-recurrence-multiply-recurrences.ll
first-order-recurrence.ll [LV] Do not try to sink dead instructions. 2020-01-28 08:28:03 -08:00
fix-reduction-dbg.ll
flags.ll
float-induction.ll
float-minmax-instruction-flag.ll
float-reduction.ll
fneg.ll
followup.ll
funcall.ll
gcc-examples.ll
gep_with_bitcast.ll
global_alias.ll
hints-trans.ll
hoist-loads.ll
i8-induction.ll
icmp-uniforms.ll
if-conv-crash.ll
if-conversion-edgemasks.ll
if-conversion-nest.ll
if-conversion-reduction.ll
if-conversion.ll
if-pred-non-void.ll
if-pred-not-when-safe.ll
if-pred-stores.ll
if-reduction.ll
incorrect-dom-info.ll
increment.ll
induction_plus.ll
induction-step.ll
induction.ll [InstCombine] reassociate splatted vector ops 2020-02-03 09:08:36 -05:00
infiniteloop.ll
int_sideeffect.ll
interleaved-accesses-1.ll
interleaved-accesses-2.ll
interleaved-accesses-3.ll
interleaved-accesses-alias.ll
interleaved-accesses-masked-group.ll
interleaved-accesses-pred-stores.ll
interleaved-accesses-uniform-load.ll
interleaved-accesses.ll
interleaved-acess-with-remarks.ll
intrinsic.ll
invariant-store-vectorization.ll
iv_outside_user.ll
lcssa-crash.ll
libcall-remark.ll
lifetime.ll
loop-form.ll
loop-legality-checks.ll
loop-scalars.ll
loop-vect-memdep.ll
loop-vect-option.ll
memdep.ll
metadata-unroll.ll
metadata-width.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
metadata.ll
middle-block-dbg.ll
miniters.ll
minmax_reduction.ll
multi-use-reduction-bug.ll
multiple-address-spaces.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
multiple-strides-vectorization.ll
no_array_bounds.ll
no_idiv_reduction.ll
no_int_induction.ll
no_outside_user.ll
no_switch_disable_vectorization.ll
no_switch.ll
no-interleave-up-front.ll
noalias-md-licm.ll
noalias-md.ll
nofloat-report.ll
nofloat.ll
non-const-n.ll
nontemporal.ll
nsw-crash.ll
nuw.ll
opt.ll
optsize.ll
outer_loop_test1.ll
outer_loop_test2.ll
partial-lcssa.ll
phi-cost.ll
phi-hang.ll
pr25281.ll
pr28541.ll
pr30654-phiscev-sext-trunc.ll
pr30806-phi-scev.ll
pr30806.ll
pr31098.ll
pr31190.ll
pr32859.ll
pr33706.ll
pr34681.ll
pr35743.ll
pr35773.ll
pr36311.ll
pr36983.ll
pr37248.ll
pr37515.ll
pr38697.ll
pr38800.ll
pr39099.ll
pr39417-optsize-scevchecks.ll
pr43166-fold-tail-by-masking.ll
pr44488-predication.ll [LV] Fix predication for branches with matching true and false succs. 2020-01-22 18:34:11 -08:00
preserve-dbg-loc-and-loop-metadata.ll
ptr_loops.ll
ptr-induction.ll
read-only.ll
reduction-order.ll [LV] Remove nondeterminacy by changing LoopVectorizationLegality::Reductions 2020-01-27 16:53:20 -08:00
reduction-small-size.ll
reduction.ll
remove_metadata.ll
reverse_induction.ll
reverse_iter.ll
runtime-check-address-space.ll
runtime-check-readonly-address-space.ll
runtime-check-readonly.ll
runtime-check.ll
runtime-limit.ll
safegep.ll
same-base-access.ll
scalar_after_vectorization.ll
scalar-select.ll
scev-exitlim-crash.ll
simple-unroll.ll
skip-iterations.ll
small-loop.ll
start-non-zero.ll
store-shuffle-bug.ll
struct_access.ll
tail-folding-counting-down.ll [LV] Still vectorise when tail-folding can't find a primary inducation variable 2020-01-09 09:14:00 +00:00
tbaa-nodep.ll
tripcount.ll [LV] Vectorizer should adjust trip count in profile information 2020-01-20 18:36:28 +07:00
undef-inst-bug.ll
unroll_novec.ll
unroll-novec-memcheck-metadata.ll
unroll.ll
unsafe-dep-remark.ll
unsized-pointee-crash.ll
value-ptr-bug.ll
vect-phiscev-sext-trunc.ll
vect.omp.persistence.ll
vect.stats.ll
vector-geps.ll
vector-intrinsic-call-cost.ll
vectorize-once.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
version-mem-access.ll
vplan_hcfg_stress_test.ll
vplan-stress-test-no-explict-vf.ll
write-only.ll
zero-sized-pointee-crash.ll