gcc/
PR target/46329
* config/arm/arm.c (arm_legitimate_constant_p_1): Return false
for all Neon struct constants.
gcc/testsuite/
2011-04-04 Richard Earnshaw <rearnsha@arm.com>
Richard Sandiford <richard.sandiford@linaro.org>
PR target/46329
* gcc.target/arm/pr46329.c: New test.
From-SVN: r172815
+2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/46329
+ * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
+ for all Neon struct constants.
+
2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
* target.def (legitimate_constant_p): New hook.
When generating pic allow anything. */
static bool
-arm_legitimate_constant_p_1 (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x)
+arm_legitimate_constant_p_1 (enum machine_mode mode, rtx x)
{
+ /* At present, we have no support for Neon structure constants, so forbid
+ them here. It might be possible to handle simple cases like 0 and -1
+ in future. */
+ if (TARGET_NEON && VALID_NEON_STRUCT_MODE (mode))
+ return false;
+
return flag_pic || !label_mentioned_p (x);
}
+2011-04-21 Richard Earnshaw <rearnsha@arm.com>
+ Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/46329
+ * gcc.target/arm/pr46329.c: New test.
+
2011-04-21 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
--- /dev/null
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_neon } */
+
+int __attribute__ ((vector_size (32))) x;
+void
+foo (void)
+{
+ x <<= x;
+}