From 3261d8ba5951220758af8ab4ef5c5529f26f0ca6 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Fri, 27 Dec 2019 16:55:36 +0000
Subject: [PATCH] [AArch64] Fix typo in V_INT_CONTAINER

All VNx2 V_INT_CONTAINER entries should map to VNx2DI.  The lower-case
version was already correct.

2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.

gcc/testsuite/
	* gcc.target/aarch64/sve/mixed_size_11.c: New test.

From-SVN: r279743
---
 gcc/ChangeLog                                       |  4 ++++
 gcc/config/aarch64/iterators.md                     |  2 +-
 gcc/testsuite/ChangeLog                             |  4 ++++
 .../gcc.target/aarch64/sve/mixed_size_11.c          | 13 +++++++++++++
 4 files changed, 22 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/mixed_size_11.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e30f6bbef78b..922e4048a785 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry.
+
 2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
 
 	* tree-vect-loop.c (vectorizable_reduction): Check whether the
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 1ca5ed1ef1bc..2d658822d06f 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -1151,7 +1151,7 @@
 				   (VNx2DI "VNx2DI")
 				   (VNx8HF "VNx8HI") (VNx4HF "VNx4SI")
 				   (VNx2HF "VNx2DI")
-				   (VNx4SF "VNx4SI") (VNx2SF "VNx2SI")
+				   (VNx4SF "VNx4SI") (VNx2SF "VNx2DI")
 				   (VNx2DF "VNx2DI")])
 
 ;; Lower-case version of V_INT_CONTAINER.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d47dd3bdc8db..eec8b0b91dcb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.target/aarch64/sve/mixed_size_11.c: New test.
+
 2019-12-27  Richard Sandiford  <richard.sandiford@arm.com>
 
 	* gcc.target/aarch64/sve/mixed_size_10.c: New test.
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_11.c b/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_11.c
new file mode 100644
index 000000000000..25dcd9b9ca14
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_11.c
@@ -0,0 +1,13 @@
+/* { dg-options "-O3 -msve-vector-bits=256 -fno-tree-loop-distribution" } */
+
+float
+f (float *restrict x, float *restrict y, long *indices)
+{
+  float res = 0.0;
+  for (int i = 0; i < 100; ++i)
+    {
+      res += x[i - 4];
+      x[i] = y[indices[i]];
+    }
+  return res;
+}
-- 
GitLab