Testcase for FSF GCC bug 79794.
authorJim Wilson <jim.wilson@linaro.org>
Fri, 23 Jun 2017 21:01:32 +0000 (21:01 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 23 Jun 2017 21:01:32 +0000 (14:01 -0700)
gcc/testsuite/
PR middle-end/79794
* gcc.target/aarch64/pr79794.c: New.

From-SVN: r249612

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/pr79794.c [new file with mode: 0644]

index a2694780368b07cb8f245009720ebf637154e058..c9d75b712f315c66ec1013618c6f704819ae1a74 100644 (file)
@@ -1,3 +1,8 @@
+2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
+
+       PR middle-end/79794
+       * gcc.target/aarch64/pr79794.c: New.
+
 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR target/80510
diff --git a/gcc/testsuite/gcc.target/aarch64/pr79794.c b/gcc/testsuite/gcc.target/aarch64/pr79794.c
new file mode 100644 (file)
index 0000000..363d2db
--- /dev/null
@@ -0,0 +1,25 @@
+/* PR middle-end/79794  */
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+/* { dg-final { scan-assembler-not "umov" } } */
+
+struct node_struct
+{
+  float _Complex gap;
+  unsigned long long state;
+};
+
+struct reg_struct
+{
+  int size;
+  struct node_struct *node;
+};
+
+void
+func(int target, struct reg_struct *reg)
+{
+  int i;
+
+  for(i=0; i<reg->size; i++)
+    reg->node[i].state ^= ((unsigned long long) 1 << target);
+}