Commit f101d09c by Evgeny Stupachenko Committed by Ilya Enkovich

tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to…

tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to loads group of size 3.

gcc/
	* tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
	permutations to loads group of size 3.

gcc/testsuite/

	* gcc.target/i386/pr52252-atom-1.c: Delete.

From-SVN: r218160
parent 3403c4c7
2014-11-28 Evgeny Stupachenko <evstupac@gmail.com>
* tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
permutations to loads group of size 3.
2014-11-28 Jiong Wang <jiong.wang@arm.com>
* config/arm/arm.md (copysignsf3): New pattern.
2014-11-28 Evgeny Stupachenko <evstupac@gmail.com>
* gcc.target/i386/pr52252-atom-1.c: Delete.
2014-11-28 Jiong Wang <jiong.wang@arm.com>
* gcc.target/arm/copysign_softfloat_1.c: New copysign/copysignf
......
/* { dg-do compile } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -ftree-vectorize -mssse3 -mtune=slm" } */
#define byte unsigned char
void
pair_mul_sum(byte *in, byte *out, int size)
{
int j;
for(j = 0; j < size; j++)
{
byte a = in[0];
byte b = in[1];
byte c = in[2];
byte d = in[3];
out[0] = (byte)(a * b) + (byte)(b * c) + (byte)(c * d) + (byte)(d * a);
in += 4;
out += 1;
}
}
/* { dg-final { scan-assembler "perm2i128|palignr" } } */
......@@ -5617,6 +5617,7 @@ vect_transform_grouped_load (gimple stmt, vec<tree> dr_chain, int size,
get chain for loads group using vect_shift_permute_load_chain. */
mode = TYPE_MODE (STMT_VINFO_VECTYPE (vinfo_for_stmt (stmt)));
if (targetm.sched.reassociation_width (VEC_PERM_EXPR, mode) > 1
|| exact_log2 (size) != -1
|| !vect_shift_permute_load_chain (dr_chain, size, stmt,
gsi, &result_chain))
vect_permute_load_chain (dr_chain, size, stmt, gsi, &result_chain);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment