From: Julian Brown Date: Thu, 5 May 2011 16:39:48 +0000 (+0000) Subject: neon.md (vec_set_internal): Fix misplaced parenthesis in D-register case. X-Git-Tag: releases/gcc-4.4.7~418 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0347e1b918cf130d7e1da2fb68c6971fadf909bb;p=thirdparty%2Fgcc.git neon.md (vec_set_internal): Fix misplaced parenthesis in D-register case. gcc/ * config/arm/neon.md (vec_set_internal): Fix misplaced parenthesis in D-register case. gcc/testsuite/ * gcc.target/arm/neon-vset_lanes8.c: New test. From-SVN: r173445 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5f495e88382d..2e432cf30b4d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-05-05 Julian Brown + + * config/arm/neon.md (vec_set_internal): Fix misplaced + parenthesis in D-register case. + 2011-05-04 Jakub Jelinek Backported from mainline diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md index a3d3e73d2e7e..19699a9a81f5 100644 --- a/gcc/config/arm/neon.md +++ b/gcc/config/arm/neon.md @@ -667,7 +667,7 @@ (match_operand:SI 2 "immediate_operand" "i")))] "TARGET_NEON" { - int elt = ffs ((int) INTVAL (operands[2]) - 1); + int elt = ffs ((int) INTVAL (operands[2])) - 1; if (BYTES_BIG_ENDIAN) elt = GET_MODE_NUNITS (mode) - 1 - elt; operands[2] = GEN_INT (elt); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2e8dd6bf269d..c3edc6533a2a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-05-05 Julian Brown + + * gcc.target/arm/neon-vset_lanes8.c: New test. + 2011-05-04 Jakub Jelinek Backported from mainline diff --git a/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c b/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c new file mode 100644 index 000000000000..e87102edbe2e --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c @@ -0,0 +1,21 @@ +/* Test the `vset_lane_s8' ARM Neon intrinsic. */ + +/* { dg-do run } */ +/* { dg-require-effective-target arm_neon_hw } */ +/* { dg-options "-O0" } */ +/* { dg-add-options arm_neon } */ + +#include "arm_neon.h" +#include +#include + +int8x8_t x = { 1, 2, 3, 4, 5, 6, 7, 8 }; +int8x8_t y = { 1, 2, 3, 16, 5, 6, 7, 8 }; + +int main (void) +{ + x = vset_lane_s8 (16, x, 3); + if (memcmp (&x, &y, sizeof (x)) != 0) + abort(); + return 0; +}