@@ -327,6 +327,8 @@ (define_relaxed_memory_constraint "Utq"
"@internal
An address valid for loading or storing a 128-bit AdvSIMD register"
(and (match_code "mem")
+ (match_test "aarch64_legitimate_address_p (GET_MODE (op),
+ XEXP (op, 0), 1)")
(match_test "aarch64_legitimate_address_p (V2DImode,
XEXP (op, 0), 1)")))
new file mode 100644
@@ -0,0 +1,13 @@
+/* { dg-options "-O" } */
+
+typedef double v2df __attribute__((vector_size(16)));
+
+#define N 4096
+void consume (void *);
+v2df
+foo (void)
+{
+ double x[N+2];
+ consume (x);
+ return (v2df) { x[N], x[N + 1] };
+}