llvm-project/llvm/test/Transforms/SLPVectorizer/X86
Sanjoy Das 3336f681e3 [Verifier] Add verification for TBAA metadata
Summary:
This change adds some verification in the IR verifier around struct path
TBAA metadata.

Other than some basic sanity checks (e.g. we get constant integers where
we expect constant integers), this checks:

 - That by the time an struct access tuple `(base-type, offset)` is
   "reduced" to a scalar base type, the offset is `0`.  For instance, in
   C++ you can't start from, say `("struct-a", 16)`, and end up with
   `("int", 4)` -- by the time the base type is `"int"`, the offset
   better be zero.  In particular, a variant of this invariant is needed
   for `llvm::getMostGenericTBAA` to be correct.

 - That there are no cycles in a struct path.

 - That struct type nodes have their offsets listed in an ascending
   order.

 - That when generating the struct access path, you eventually reach the
   access type listed in the tbaa tag node.

Reviewers: dexonsmith, chandlerc, reames, mehdi_amini, manmanren

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 289402
2016-12-11 20:07:15 +00:00
..
addsub.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
align.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
arith-fp.ll [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. 2016-12-08 11:57:51 +00:00
atomics.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
bad_types.ll [SLP] Don't vectorize loads of non-packed types (like i1, i2). 2015-09-30 21:05:43 +00:00
barriercall.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
bitreverse.ll [CostModel][X86][SSE] Updated costs for vector BITREVERSE ops on SSSE3+ targets 2016-06-11 19:23:02 +00:00
bswap.ll [X86][SSE] Add cost model for BSWAP of vectors 2016-06-20 23:08:21 +00:00
call.ll Fixed the lost FastMathFlags for CALL operations in SLPVectorizer. 2016-11-16 00:55:50 +00:00
cast.ll [SLPVectorizer][X86] Regenerated SEXT/ZEXT cast vectorization tests 2016-05-06 22:22:18 +00:00
cmp_sel.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
commutativity.ll Fix SLPVectorizer commutativity reordering 2015-11-06 20:17:51 +00:00
compare-reduce.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
consecutive-access.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
continue_vectorizing.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_7zip.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
crash_binaryop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_bullet.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_bullet3.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
crash_cmpop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_dequeue.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_flop7.ll
crash_gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_lencod.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_mandeltext.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
crash_netbsd_decompress.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
crash_scheduling.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
crash_sim4b1.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
crash_smallpt.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
crash_vectorizeTree.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
cross_block_slp.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
cse.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
ctlz.ll [VectorLegalizer] Expansion of CTLZ using CTPOP when possible 2016-11-08 14:10:28 +00:00
ctpop.ll [X86][SSE] Add cost model values for CTPOP of vectors 2016-07-20 10:41:28 +00:00
cttz.ll [X86][SSE] Add initial costs for vector CTTZ/CTLZ 2016-08-04 10:51:41 +00:00
cycle_dup.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
debug_info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
diamond.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
external_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
extract.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
extract_in_tree_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
extractcost.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
fabs.ll [SLPVectorizer][X86] Added fabs tests 2016-10-01 16:54:01 +00:00
fcopysign.ll [AVX-512] Support FCOPYSIGN for v16f32 and v8f64 2016-11-18 02:25:34 +00:00
flag.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
fma.ll [SLPVectorizer][X86] Added fma vectorization tests 2016-07-08 17:19:13 +00:00
fptosi.ll [SLPVectorizer][X86] Tests to show missed buildvector sitofp/fptosi vectorizations 2016-12-06 13:29:55 +00:00
fptoui.ll [SLPVectorizer][X86] Added fptosi/fptoui tests 2016-10-01 19:35:59 +00:00
fround.ll [SLPVectorizer][X86] Added ceil/floor/nearbyint/rint/trunc vectorization tests 2016-06-22 14:07:46 +00:00
funclet.ll [SLPVectorizer] Add operand bundles to vectorized functions 2016-04-29 07:09:51 +00:00
gep.ll [PM] Port SLPVectorizer to the new PM 2016-06-15 08:43:40 +00:00
gep_mismatch.ll [SLPVectorizer] Handle GEP with differing constant index types 2016-06-08 21:55:16 +00:00
hoist.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
horizontal-list.ll [SLPVectorizer] Improved support of partial tree vectorization. 2016-11-29 08:21:14 +00:00
horizontal.ll [SLP] Add more tests for SLP Vectorizer. 2016-11-23 20:10:32 +00:00
implicitfloat.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
in-tree-user.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
insert-element-build-vector.ll [SLP] Fix for PR6246: vectorization for scalar ops on vector elements. 2016-12-08 11:57:51 +00:00
insertvalue.ll [SLPVectorizer] Extend SLP Vectorizer to deal with aggregates. 2016-04-28 16:11:45 +00:00
intrinsic.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
jumbled-load.ll [SLP] Add new and update existing lit testfor providing more context to incoming patch for vectorization of jumbled load 2016-11-27 03:35:31 +00:00
lit.local.cfg
long_chains.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
loopinvariant.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
metadata.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
multi_block.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
multi_user.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
non-vectorizable-intrinsic.ll
odd_store.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
operandorder.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
opt.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
ordering.ll Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT. 2016-02-26 19:40:34 +00:00
phi.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
phi3.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
phi_landingpad.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
phi_overalignedtype.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
powof2div.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr16571.ll
pr16628.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
pr16899.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
pr18060.ll
pr19657.ll [SLPVectorizer] Try different vectorization factors for store chains 2015-07-08 23:40:55 +00:00
pr23510.ll [SLP vectorizer]: Choose the best consecutive candidate to pair with a store instruction. 2015-07-30 17:40:39 +00:00
pr27163.ll [SLPVectorizer] Don't insert an extractelement before a catchswitch 2016-04-01 17:28:15 +00:00
propagate_ir_flags.ll Fixed the lost FastMathFlags for CALL operations in SLPVectorizer. 2016-11-16 00:55:50 +00:00
reduction.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
reduction2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
reduction_loads.ll [SLP] Add new and update existing lit testfor providing more context to incoming patch for vectorization of jumbled load 2016-11-27 03:35:31 +00:00
reduction_unrolled.ll [SLP] Fixed cost model for horizontal reduction. 2016-12-01 18:42:42 +00:00
return.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
rgb_phi.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
saxpy.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
schedule_budget.ll SLPVectorizer: add a test to check if the minimum region size works. 2015-09-30 17:28:19 +00:00
scheduling.ll [SLPVectorizer] Fix for PR25748: reduction vectorization after loop 2016-10-07 09:39:22 +00:00
simple-loop.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
simplebb.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
sitofp.ll [SLPVectorizer][X86] Tests to show missed buildvector sitofp/fptosi vectorizations 2016-12-06 13:29:55 +00:00
sqrt.ll Rename tests 2016-09-18 20:25:41 +00:00
tiny-tree.ll [SLP] Vectorize for all-constant entries. 2015-06-19 17:40:15 +00:00
uitofp.ll [SLPVectorizer][X86] Add 512-bit sitofp/uitofp tests 2016-10-10 14:28:06 +00:00
unreachable.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
value-bug.ll
vector.ll
vector_gep.ll Vector GEP test: renamed + some comments 2016-07-06 08:11:23 +00:00