1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms/LoopVectorize
Roman Lebedev 296f99155e [NFC?][SCEV][LoopVectorize] Add datalayout to the X86/float-induction-x86.ll test
Summary:
Currently, `SCEVExpander::isHighCostExpansionHelper()` has the following logic:
```
  if (auto *UDivExpr = dyn_cast<SCEVUDivExpr>(S)) {
    // If the divisor is a power of two and the SCEV type fits in a native
    // integer (and the LHS not expensive), consider the division cheap
    // irrespective of whether it occurs in the user code since it can be
    // lowered into a right shift.
    if (auto *SC = dyn_cast<SCEVConstant>(UDivExpr->getRHS()))
      if (SC->getAPInt().isPowerOf2()) {
        if (isHighCostExpansionHelper(UDivExpr->getLHS(), L, At,
                                      BudgetRemaining, TTI, Processed))
          return true;
        const DataLayout &DL =
            L->getHeader()->getParent()->getParent()->getDataLayout();
        unsigned Width = cast<IntegerType>(UDivExpr->getType())->getBitWidth();
        return DL.isIllegalInteger(Width);
      }
```

Since this test does not have a datalayout specified,
`SCEVExpander::isHighCostExpansionHelper()` says that
`[[TMP2:%.*]] = lshr exact i64 [[TMP1]], 5` is high-cost, and didn't perform it.

But future patches will change that logic to solely rely on cost-model,
without any such datalayout checks, so i think it is best to show
that that change is ephemeral, and can already happen without costmodel changes.

Reviewers: reames, fhahn, sanjoy, craig.topper, RKSimon

Reviewed By: RKSimon

Subscribers: javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73717
2020-02-12 12:27:38 +03: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 [LV] Pick correct BB as insert point when fixing PHI for FORs. 2019-12-07 19:32:00 +00:00
X86 [NFC?][SCEV][LoopVectorize] Add datalayout to the X86/float-induction-x86.ll test 2020-02-12 12:27:38 +03: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 Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
demanded-bits-of-pointer-instruction.ll
diag-missing-instr-debug-loc.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
diag-with-hotness-info-2.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
diag-with-hotness-info.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
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 [IVDescriptors] Skip FOR where we have multiple sink points for now. 2019-11-28 22:18:47 +01:00
first-order-recurrence-multiply-recurrences.ll Recommit f0c2a5a "[LV] Generalize conditions for sinking instrs for first order recurrences." 2019-11-24 21:21:55 +00:00
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 [InstCombine] Revert rL341831: relax one-use check in foldICmpAddConstant() (PR44100) 2019-12-02 18:06:15 +03:00
if-conversion-reduction.ll
if-conversion.ll
if-pred-non-void.ll
if-pred-not-when-safe.ll
if-pred-stores.ll [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
if-reduction.ll
incorrect-dom-info.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
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 [LV] Apply sink-after & interleave-groups as VPlan transformations (NFCI) 2019-11-09 20:52:25 +02:00
interleaved-accesses.ll [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
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 [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
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 [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
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 [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
reduction.ll [LV] Strip wrap flags from vectorized reductions 2019-12-20 14:48:53 +02:00
remove_metadata.ll
reverse_induction.ll
reverse_iter.ll
runtime-check-address-space.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
runtime-check-readonly-address-space.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
runtime-check-readonly.ll
runtime-check.ll [InstCombine] Revert rL341831: relax one-use check in foldICmpAddConstant() (PR44100) 2019-12-02 18:06:15 +03:00
runtime-limit.ll
safegep.ll
same-base-access.ll
scalar_after_vectorization.ll
scalar-select.ll
scev-exitlim-crash.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
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