+2016-03-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/sync.md (arm_atomic_loaddi2_ldrd): Fix output template
+ for non-unified syntax.
+
2016-03-31 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/70460
[(match_operand:DI 1 "arm_sync_memory_operand" "Q")]
VUNSPEC_LDRD_ATOMIC))]
"ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE"
- "ldrd%?\t%0, %H0, %C1"
+ "ldr%(d%)\t%0, %H0, %C1"
[(set_attr "predicable" "yes")
(set_attr "predicable_short_it" "no")])
+2016-03-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * gcc.target/arm/atomic_loaddi_relaxed_cond.c: New test.
+
2016-03-31 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/70460
--- /dev/null
+/* { dg-do assemble } */
+/* { dg-options "-std=c11 -O" } */
+/* { dg-require-effective-target arm_arch_v8a_ok } */
+/* { dg-add-options arm_arch_v8a } */
+
+/* Check that if we conditionalise the atomic load we put the condition
+ code in the right place to create valid assembly. */
+
+#include <stdatomic.h>
+
+atomic_ullong foo;
+int glob;
+
+int
+main (int argc, char *argv[])
+{
+ if (argc > 2)
+ atomic_load_explicit (&foo, memory_order_relaxed);
+ return glob;
+}