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
align.ll
barriercall.ll
call.ll
cast.ll
cmp_sel.ll
compare-reduce.ll
consecutive-access.ll
continue_vectorizing.ll
crash_7zip.ll
crash_binaryop.ll
crash_bullet3.ll
crash_bullet.ll
crash_dequeue.ll
crash_flop7.ll
crash_gep.ll
crash_lencod.ll
crash_mandeltext.ll
crash_netbsd_decompress.ll
crash_scheduling.ll
crash_sim4b1.ll
crash_smallpt.ll
crash_vectorizeTree.ll
cross_block_slp.ll
cse.ll
cycle_dup.ll
debug_info.ll
diamond.ll
external_user.ll
extract_in_tree_user.ll
extract.ll
extractcost.ll
flag.ll
gep.ll
hoist.ll
horizontal.ll
implicitfloat.ll
in-tree-user.ll
insert-element-build-vector.ll
intrinsic.ll
lit.local.cfg
long_chains.ll
loopinvariant.ll
metadata.ll
multi_block.ll
multi_user.ll
non-vectorizable-intrinsic.ll
odd_store.ll
operandorder.ll
opt.ll
ordering.ll
phi3.ll
phi_landingpad.ll
phi_overalignedtype.ll
phi.ll
powof2div.ll
pr16571.ll
pr16628.ll
pr16899.ll
pr18060.ll
pr19657.ll
propagate_ir_flags.ll
reduction2.ll
reduction.ll
rgb_phi.ll
saxpy.ll
scheduling.ll
simple-loop.ll
simplebb.ll
tiny-tree.ll
unreachable.ll
value-bug.ll
vector.ll