]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/47553 (ARM neon vld1q_lane_u8 & co. don't accept lanes >= 8)
authorRichard Sandiford <richard.sandiford@linaro.org>
Mon, 28 Mar 2011 10:32:09 +0000 (10:32 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 28 Mar 2011 10:32:09 +0000 (10:32 +0000)
gcc/
PR target/47553
* config/arm/predicates.md (neon_lane_number): Accept 0..15.

gcc/testsuite/
PR target/47553
* gcc.target/arm/neon-vld-1.c: New test.

From-SVN: r171597

gcc/ChangeLog
gcc/config/arm/predicates.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/neon-vld-1.c [new file with mode: 0644]

index 2ac82090fc554faf117333ae18d0365d6bd4985b..b254c3308f7bdecb8fb265ceca3c7788c7cc43c9 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR target/47553
+       * config/arm/predicates.md (neon_lane_number): Accept 0..15.
+
 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        PR other/48254
index cdaaca6fecd9808da43972ffd55c3f5ed5b0ac0f..8344200f7c9f8da58f2b30a2063b463b50bc2593 100644 (file)
 ;; TODO: We could check lane numbers more precisely based on the mode.
 (define_predicate "neon_lane_number"
   (and (match_code "const_int")
-       (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 7")))
+       (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 15")))
 
index c309e2ea33d86d3379a99c6983c435183b7c759e..c51ab21dc45e93a498107e9129c8f6239d6bb050 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR target/47553
+       * gcc.target/arm/neon-vld-1.c: New test.
+
 2011-03-25  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/cpp0x/move1.C: New.
diff --git a/gcc/testsuite/gcc.target/arm/neon-vld-1.c b/gcc/testsuite/gcc.target/arm/neon-vld-1.c
new file mode 100644 (file)
index 0000000..f6bf691
--- /dev/null
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-O1" } */
+/* { dg-add-options arm_neon } */
+
+#include <arm_neon.h>
+
+uint8x16_t
+foo (uint8_t *a, uint8x16_t b)
+{
+  vst1q_lane_u8 (a, b, 14);
+  return vld1q_lane_u8 (a + 0x100, b, 15);
+}