llvm-6502/test/Transforms/SLPVectorizer/X86
Sanjay Patel b89304eb7c Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802).
The SLP vectorizer should propagate IR-level optimization hints/flags (nsw, nuw, exact, fast-math)
when converting scalar instructions into vectors. But this isn't a simple copy - we need to take
the intersection (the logical 'and') of the sets of flags on the scalars.

The solution is further complicated because we can have non-uniform (non-SIMD) vector ops after:
http://reviews.llvm.org/D4015
http://llvm.org/viewvc/llvm-project?view=revision&revision=211339

The vast majority of changed files are existing tests that were not propagating IR flags, but I've
also added a new test file for focused testing of IR flag possibilities.

Differential Revision: http://reviews.llvm.org/D5172



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217051 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-03 17:40:30 +00:00
..
addsub.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
align.ll SLPVectorizer: Use the type of the value loaded/stored to get the ABI alignment 2014-08-07 22:47:27 +00:00
barriercall.ll
call.ll Vectorize intrinsic math function calls in SLPVectorizer. 2014-05-03 09:59:54 +00:00
cast.ll
cmp_sel.ll
compare-reduce.ll
consecutive-access.ll Implement sext(C1 + C2*X) --> sext(C1) + sext(C2*X) and 2014-05-24 08:09:57 +00:00
continue_vectorizing.ll Continue slp vectorization even the BB already has vectorized store radar://16641956 2014-04-29 19:37:20 +00:00
crash_7zip.ll
crash_binaryop.ll Fix: SLPVectorizer tried to move an instruction which was replaced by a vector instruction. 2014-08-28 07:04:02 +00:00
crash_bullet3.ll
crash_bullet.ll
crash_dequeue.ll
crash_flop7.ll
crash_gep.ll Revert r210342 and r210343, add test case for the crasher. 2014-08-26 19:06:41 +00:00
crash_lencod.ll
crash_mandeltext.ll
crash_netbsd_decompress.ll
crash_scheduling.ll fix bug 20513 - Crash in SLP Vectorizer 2014-08-02 19:39:42 +00:00
crash_sim4b1.ll
crash_smallpt.ll
crash_vectorizeTree.ll SLPVectorizer: improved scheduling algorithm. 2014-08-01 09:20:42 +00:00
cross_block_slp.ll
cse.ll SLPVectorizer: When sorting by domination for CSE don't assert on unreachable code. 2014-05-09 23:28:49 +00:00
cycle_dup.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
debug_info.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
diamond.ll
external_user.ll SLPVectorizer: An in-tree vectorized entry cannot also be a scalar external use 2013-12-05 15:14:40 +00:00
extract_in_tree_user.ll Generate extract for in-tree uses if the use is scalar operand in vectorized instruction. radar://18144665 2014-09-02 21:00:39 +00:00
extract.ll
extractcost.ll SLP Vectorizer: Extract cost will only be added once even if the scalar has multiple external uses. 2013-11-22 01:57:02 +00:00
flag.ll
gep.ll [SLP] Re-enable vectorization of GEP expressions (re-apply r210342 with a fix). 2014-08-27 15:01:18 +00:00
hoist.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
horizontal.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
implicitfloat.ll
in-tree-user.ll SLPVectorizer: improved scheduling algorithm. 2014-08-01 09:20:42 +00:00
insert-element-build-vector.ll Fix broken FileCheck prefixes 2014-05-23 19:06:24 +00:00
intrinsic.ll Allow vectorization of intrinsics such as powi,cttz and ctlz in Loop and SLP Vectorizer. 2014-05-30 04:31:24 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
long_chains.ll
loopinvariant.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
metadata.ll Trivial test commit. 2014-03-05 02:09:51 +00:00
multi_block.ll
multi_user.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
non-vectorizable-intrinsic.ll SLPVectorizer: Only vectorize intrinsics whose operands are widened equally 2014-04-09 14:20:47 +00:00
odd_store.ll
operandorder.ll
opt.ll opt: Mirror vectorization presets of clang 2013-12-03 16:33:06 +00:00
ordering.ll
phi3.ll
phi_landingpad.ll
phi_overalignedtype.ll
phi.ll Fix broken CHECK lines. 2014-01-11 21:06:00 +00:00
powof2div.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
pr16571.ll
pr16628.ll
pr16899.ll
pr18060.ll PR1860 - We can't save a list of ExtractElement instructions to CSE because some of these instructions 2013-11-26 22:24:25 +00:00
pr19657.ll Fix PR19657 (scalar loads not combined into vector load) 2014-06-06 06:20:08 +00:00
propagate_ir_flags.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
reduction2.ll
reduction.ll
rgb_phi.ll
saxpy.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
scheduling.ll Preserve IR flags (nsw, nuw, exact, fast-math) in SLP vectorizer (PR20802). 2014-09-03 17:40:30 +00:00
simple-loop.ll
simplebb.ll SLPVectorizer: Don't vectorize volatile memory operations 2013-10-16 17:52:40 +00:00
tiny-tree.ll SLPVectorizer: Try vectorizing 'splat' stores 2014-02-24 19:52:29 +00:00
unreachable.ll fix: SLPVectorizer crashes for unreachable blocks containing not schedulable instructions. 2014-08-22 01:18:39 +00:00
value-bug.ll SLPVectorizer: Bring back the insertelement patch (r205965) with fixes 2014-05-04 17:10:15 +00:00
vector.ll