llvm-project/llvm/test/Transforms/LoopVectorize
Hal Finkel 6532c20faa Move late partial-unrolling thresholds into the processor definitions
The old method used by X86TTI to determine partial-unrolling thresholds was
messy (because it worked by testing target features), and also would not
correctly identify the target CPU if certain target features were disabled.
After some discussions on IRC with Chandler et al., it was decided that the
processor scheduling models were the right containers for this information
(because it is often tied to special uop dispatch-buffer sizes).

This does represent a small functionality change:
 - For generic x86-64 (which uses the SB model and, thus, will get some
   unrolling).
 - For AMD cores (because they still currently use the SB scheduling model)
 - For Haswell (based on benchmarking by Louis Gerbarg, it was decided to bump
   the default threshold to 50; we're working on a test case for this).
Otherwise, nothing has changed for any other targets. The logic, however, has
been moved into BasicTTI, so other targets may now also opt-in to this
functionality simply by setting LoopMicroOpBufferSize in their processor
model definitions.

llvm-svn: 208289
2014-05-08 09:14:44 +00:00
..
AArch64 Add missing config file for newly added test case introduced by r206563. 2014-04-18 09:05:50 +00:00
ARM LoopVectorizer: Enable unrolling of conditional stores and the load/store 2014-02-02 03:12:34 +00:00
ARM64 This commit allows vectorized loops to be unrolled by a factor of 2 for AArch64. 2014-04-18 07:57:54 +00:00
PowerPC [LoopVectorizer] Count dependencies of consecutive pointers as uniforms 2014-04-02 02:34:49 +00:00
X86 Move late partial-unrolling thresholds into the processor definitions 2014-05-08 09:14:44 +00:00
XCore Name the XCore target-specific subdirectories canonically. 2013-09-18 14:08:30 +00:00
12-12-11-if-conv.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-10-20-infloop.ll Force a fixed unroll count on the target independent tests. 2013-01-05 00:58:48 +00:00
2012-10-22-isconsec.ll TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
align.ll LoopVectorizer: Use abi alignment for accesses with no alignment 2013-11-15 23:09:33 +00:00
bsd_regex.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
bzip_reverse_loops.ll TBAA: remove !tbaa from testing cases if not used. 2013-05-02 18:11:35 +00:00
calloc.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
cast-induction.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
cpp-new-array.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
dbg.value.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
debugloc.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
ee-crash.ll LoopVectorizer: Don't attempt to vectorize extractelement instructions 2013-10-25 20:40:15 +00:00
flags.ll LoopVectorizer: Preserve fast-math flags 2014-03-05 21:10:47 +00:00
float-reduction.ll LoopVectorizer: Preserve fast-math flags 2014-03-05 21:10:47 +00:00
funcall.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
gcc-examples.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
global_alias.ll InstCombine: Teach most integer add/sub/mul/div combines how to deal with vectors. 2014-01-19 15:24:22 +00:00
hoist-loads.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
i8-induction.ll TBAA: remove !tbaa from testing cases if not used. 2013-04-30 17:52:57 +00:00
if-conv-crash.ll LoopVectorize: Handle single edge PHIs 2013-05-18 18:38:34 +00:00
if-conversion-edgemasks.ll LoopVectorize: Cache edge masks created during if-conversion 2013-06-27 20:31:06 +00:00
if-conversion-nest.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
if-conversion-reduction.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
if-conversion.ll LoopVectorizer: Don't if-convert constant expressions that can trap 2013-12-17 01:11:01 +00:00
if-pred-stores.ll LoopVectorizer: Keep track of conditional store basic blocks 2014-02-08 20:41:13 +00:00
increment.ll Correct word hyphenations 2013-12-05 05:44:44 +00:00
induction.ll Fix broken CHECK lines. 2014-01-11 21:06:00 +00:00
induction_plus.ll LoopVectorizer: Perform redundancy elimination on induction variables 2013-11-01 22:18:19 +00:00
infiniteloop.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
intrinsic.ll Revert "LoopVectorizer: Only allow vectorization of intrinsics." 2013-09-23 14:54:39 +00:00
lcssa-crash.ll LoopVectorize: LoopSimplify can't canonicalize loops with an indirectbr in it, don't assert on those cases. 2013-05-24 18:05:35 +00:00
lifetime.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
memdep.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
metadata-unroll.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
metadata-width.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
minmax_reduction.ll Scalarize select vector arguments when extracted. 2013-11-04 20:36:06 +00:00
multi-use-reduction-bug.ll LoopVectorizer: A reduction that has multiple uses of the reduction value is not 2014-01-19 03:18:31 +00:00
multiple-address-spaces.ll TBAA: remove !tbaa from testing cases when they are not needed. 2013-09-30 18:17:35 +00:00
no_idiv_reduction.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
no_int_induction.ll Teach LoopVectorize about address space sizes 2013-08-22 02:42:55 +00:00
no_outside_user.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
nofloat.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
non-const-n.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
nsw-crash.ll LoopVectorizer: Fix a bug in the vectorization of BinaryOperators. The BinaryOperator can be folded to an Undef, and we don't want to set NSW flags to undef vals. 2013-01-10 17:34:39 +00:00
opt.ll opt: Mirror vectorization presets of clang 2013-12-03 16:33:06 +00:00
phi-hang.ll LoopVectorize: Use a set to avoid longer cycles in the reduction chain too. 2013-04-18 14:29:13 +00:00
ptr_loops.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
read-only.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
reduction.ll LoopVectorize: External uses must use the last value in a reduction cycle 2013-10-07 21:05:43 +00:00
reverse_induction.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
reverse_iter.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
runtime-check-address-space.ll Don't use runtime bounds check between address spaces. 2013-10-02 22:38:17 +00:00
runtime-check-readonly-address-space.ll Don't use runtime bounds check between address spaces. 2013-10-02 22:38:17 +00:00
runtime-check-readonly.ll LoopVectorizer: Handle strided memory accesses by versioning 2014-01-10 18:20:32 +00:00
runtime-check.ll LoopVectorizer: If dependency checks fail try runtime checks 2013-11-01 03:05:07 +00:00
runtime-limit.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
safegep.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
same-base-access.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
scalar-select.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
scev-exitlim-crash.ll Fix missing CHECK-LABELs 2013-10-02 20:29:00 +00:00
simple-unroll.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
small-loop.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
start-non-zero.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
store-shuffle-bug.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
struct_access.ll LoopVectorize: Look for consecutive acces in GEPs with trailing zero indices 2013-11-01 14:09:50 +00:00
undef-inst-bug.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
unroll_novec.ll [vectorizer] Add an override for the target instruction cost and use it 2014-01-27 11:41:50 +00:00
value-ptr-bug.ll Fix known typos 2014-01-24 17:20:08 +00:00
vect.omp.persistence.ll vect.omp.persistence.ll REQUIRES asserts due to -debug-only. 2014-04-15 10:12:47 +00:00
vect.stats.ll [CLNUP] Test commit. Remove newline. 2014-04-24 08:42:58 +00:00
vectorize-once.ll Mark vector loops as already vectorized 2013-10-24 14:50:51 +00:00
version-mem-access.ll LoopVectorize: Only strip casts from integer types when replacing symbolic 2014-01-15 03:35:46 +00:00
write-only.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00