llvm-6502/test/Transforms/LoopVectorize/X86
Arnold Schwaighofer a4b8b4ccc9 LoopVectorize: Scalarize padded types
This patch disables memory-instruction vectorization for types that need padding
bytes, e.g., x86_fp80 has 10 bytes store size with 6 bytes padding in darwin on
x86_64. Because the load/store vectorization is performed by the bit casting to
a packed vector, which has incompatible memory layout due to the lack of padding
bytes, the present vectorizer produces inconsistent result for memory
instructions of those types.
This patch checks an equality of the AllocSize of a scalar type and allocated
size for each vector element, to ensure that there is no padding bytes and the
array can be read/written using vector operations.

Patch by Daisuke Takahashi!

Fixes PR15758.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180196 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-24 16:16:01 +00:00
..
avx1.ll X86 cost model: Adjust cost for custom lowered vector multiplies 2013-03-02 04:02:52 +00:00
constant-vector-operand.ll LoopVectorizer: Bail out if we don't have datalayout we need it 2013-04-24 16:15:58 +00:00
conversion-cost.ll X86TTI: Add accurate costs for itofp operations, based on the actual instruction counts. 2013-04-01 10:23:49 +00:00
cost-model.ll Loop Vectorizer: Update the cost model of scatter/gather operations and make 2012-12-23 07:23:55 +00:00
gcc-examples.ll Remove the -licm pass from the loop vectorizer test because the loop vectorizer does it now. 2013-01-09 01:20:59 +00:00
illegal-parallel-loop-uniform-write.ll Call the potentially costly isAnnotatedParallel() only once. 2013-04-23 16:44:43 +00:00
lit.local.cfg
min-trip-count-switch.ll Made the min-trip-count-switch test X86-specific to avoid 2013-01-31 10:33:22 +00:00
no-vector.ll
parallel-loops-after-reg2mem.ll Forgot to 'svn add' the LoopVectorizer tests for the new parallel loop metadata, sorry. 2013-02-15 21:50:19 +00:00
parallel-loops.ll Forgot to 'svn add' the LoopVectorizer tests for the new parallel loop metadata, sorry. 2013-02-15 21:50:19 +00:00
reduction-crash.ll Force cpu in test. 2013-03-08 17:01:18 +00:00
small-size.ll Move test that depends on the x86 target into a target-specific directory. 2013-01-16 13:25:56 +00:00
struct-store.ll Fix typo "Makre" -> "Make". 2012-12-24 19:55:47 +00:00
unroll_selection.ll LoopVectorizer: Implement a new heuristics for selecting the unroll factor. 2013-01-20 05:24:29 +00:00
unroll-small-loops.ll Change the cpu type in the test. 2013-01-20 05:20:56 +00:00
vector_ptr_load_store.ll Formatting. 2013-02-05 15:32:16 +00:00
vector-scalar-select-cost.ll LoopVectorizer: Insert some white space to make test case more readable 2013-03-14 21:31:09 +00:00
x86_fp80-vector-store.ll LoopVectorize: Scalarize padded types 2013-04-24 16:16:01 +00:00