From f101d09c2a3edf21e053dc7e8c49cedf23a7a2cd Mon Sep 17 00:00:00 2001 From: Evgeny Stupachenko Date: Fri, 28 Nov 2014 14:45:26 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 4 ++++ .../gcc.target/i386/pr52252-atom-1.c | 22 ------------------- gcc/tree-vect-data-refs.c | 1 + 4 files changed, 10 insertions(+), 22 deletions(-) delete mode 100644 gcc/testsuite/gcc.target/i386/pr52252-atom-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 10fec954f9f..e77895161ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-28 Evgeny Stupachenko + + * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift + permutations to loads group of size 3. + 2014-11-28 Jiong Wang * config/arm/arm.md (copysignsf3): New pattern. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8d4a7889ff2..14302b71688 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-11-28 Evgeny Stupachenko + + * gcc.target/i386/pr52252-atom-1.c: Delete. + 2014-11-28 Jiong Wang * gcc.target/arm/copysign_softfloat_1.c: New copysign/copysignf diff --git a/gcc/testsuite/gcc.target/i386/pr52252-atom-1.c b/gcc/testsuite/gcc.target/i386/pr52252-atom-1.c deleted file mode 100644 index 020e9834470..00000000000 --- a/gcc/testsuite/gcc.target/i386/pr52252-atom-1.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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" } } */ diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 35d0e0fa803..3eb20fc9685 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -5617,6 +5617,7 @@ vect_transform_grouped_load (gimple stmt, vec 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); -- 2.30.2