diff mbox

handling address mode changes inside extract_bit_field

Message ID CABXYE2UFtqOF+yOXp65nkK7jC-f+WTd1gfVxX_3z123aNctOsQ@mail.gmail.com
State New
Headers show

Commit Message

Jim Wilson June 8, 2017, 5:07 p.m. UTC
I've got a testcase to add for this patch.  Sorry about the delay, I
took some time off to deal with a medical problem.

This was tested with and without the extract_bit_field patch.  The
testcase fails without the patch and works with the patch.

Jim

Comments

Jeff Law June 23, 2017, 4:05 p.m. UTC | #1
On 06/08/2017 11:07 AM, Jim Wilson wrote:
> I've got a testcase to add for this patch.  Sorry about the delay, I
> took some time off to deal with a medical problem.
> 
> This was tested with and without the extract_bit_field patch.  The
> testcase fails without the patch and works with the patch.
Thanks.  Please go ahead and install this.

Sorry for the delay on my side as well.  stack-clash has had me buried
since late May and I'm just starting to dig out a bit.

jeff
diff mbox

Patch

	gcc/testsuite/
	PR middle-end/79794
	* gcc.target/aarch64/pr79794.c: New.

Index: gcc/testsuite/gcc.target/aarch64/pr79794.c
===================================================================
--- gcc/testsuite/gcc.target/aarch64/pr79794.c	(nonexistent)
+++ gcc/testsuite/gcc.target/aarch64/pr79794.c	(working copy)
@@ -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);
+}