llvm-project/llvm/test/Analysis
Craig Topper d1498ed8df [CostModel][X86] Fix overcounting arithmetic cost in illegal types in getArithmeticReductionCost/getMinMaxReductionCost
We were overcounting the number of arithmetic operations needed at each level before we reach a legal type. We were using the full vector type for that level, but we are going to split the input vector at that level in half. So the effective arithmetic operation cost at that level is half the width.

So for example on 8i32 on an sse target. Were were calculating the cost of an 8i32 op which is likely 2 for basic integer. Then after the loop we count 2 more v4i32 ops. For a total arith cost of 4. But if you look at the assembly there would only be 3 arithmetic ops.

There are still more bugs in this code that I'm going to work on next. The non pairwise code shouldn't count extract subvectors in the loop. There are no extracts, the types are split in registers. For pairwise we need to use 2 two src permute shuffles.

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

llvm-svn: 348621
2018-12-07 18:20:56 +00:00
..
AliasSet [Analysis] Make LocationSize pretty-printing more descriptive 2018-10-10 01:35:22 +00:00
AssumptionCache
BasicAA [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
BlockFrequencyInfo [BFI] Use rounding while computing profile counts. 2018-08-16 00:26:59 +00:00
BranchProbabilityInfo [BPI] Apply invoke heuristic before loop branch heuristic 2018-06-08 13:03:21 +00:00
CFLAliasAnalysis Revert r332657: "[AA] cfl-anders-aa with field sensitivity" 2018-05-17 21:56:39 +00:00
CallGraph Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
ConstantFolding [IR] Don't assume all functions are 4 byte aligned 2018-12-07 08:34:59 +00:00
CostModel [CostModel][X86] Fix overcounting arithmetic cost in illegal types in getArithmeticReductionCost/getMinMaxReductionCost 2018-12-07 18:20:56 +00:00
Delinearization Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
DemandedBits Reapply "[DemandedBits][BDCE] Support vectors of integers" 2018-12-07 15:38:13 +00:00
DependenceAnalysis [DA] Delinearise AddRecs if we can prove they don't wrap 2018-06-25 15:13:26 +00:00
DivergenceAnalysis [DA] GPUDivergenceAnalysis for unstructured GPU kernels 2018-11-30 22:55:20 +00:00
DominanceFrontier
Dominators [Dominators] Don't compute DFS InOut numbers eagerly. 2017-06-30 01:28:21 +00:00
GlobalsModRef [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
IVUsers Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
LazyCallGraph
LazyValueAnalysis [LVI] run transfer function for binary operator even when the RHS isn't a constant 2018-11-21 05:24:12 +00:00
LegacyDivergenceAnalysis AMDGPU: Fix tests using old number for constant address space 2018-09-10 02:54:25 +00:00
Lint [Lint] Upgrade uses of MemoryIntrinic::getAlignment() to new API. (NFCI) 2018-01-31 16:42:15 +00:00
LoopAccessAnalysis [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
LoopInfo
MemoryDependenceAnalysis [MemDep] Fixed handling of invariant.group 2018-05-18 22:40:34 +00:00
MemorySSA llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
MustExecute [MustExecute] Fix algorithmic bug in isGuaranteedToExecute. PR38514 2018-08-17 06:19:17 +00:00
PhiValues Add a PhiValuesAnalysis pass to calculate the underlying values of phis 2018-06-28 14:13:06 +00:00
PostDominators [Dominators] Include infinite loops in PostDominatorTree 2017-08-15 18:14:57 +00:00
ProfileSummary [ProfileSummary] Add options to override hot and cold count thresholds. 2018-11-02 17:39:31 +00:00
RegionInfo [Dominators] Include infinite loops in PostDominatorTree 2017-08-15 18:14:57 +00:00
ScalarEvolution [test] Fix ScalarEvolution test to allow __func__ with prototype 2018-12-02 16:49:28 +00:00
ScopedNoAliasAA
StackSafetyAnalysis [stack-safety] Inter-Procedural Analysis implementation 2018-11-26 23:05:58 +00:00
TypeBasedAliasAnalysis [FunctionAttrs] Infer WriteOnly Function Attribute 2018-08-23 15:05:22 +00:00
ValueTracking InstCombine: move hasOneUse check to the top of foldICmpAddConstant 2018-09-10 14:26:44 +00:00
alias-analysis-uses.ll