https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101788

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
What forwprop does is

   <bb 2> [local count: 1073741824]:
   __asm__ __volatile__("" : "=w" y);
-  y.0_1 = y;
-  _6 = BIT_FIELD_REF <y.0_1, 32, 32>;
-  _7 = BIT_FIELD_REF <y.0_1, 32, 64>;
-  _8 = BIT_FIELD_REF <y.0_1, 32, 96>;
-  _9 = BIT_FIELD_REF <y.0_1, 32, 128>;
-  _10 = BIT_FIELD_REF <y.0_1, 32, 160>;
-  _11 = BIT_FIELD_REF <y.0_1, 32, 192>;
-  _12 = BIT_FIELD_REF <y.0_1, 32, 224>;
-  _13 = BIT_FIELD_REF <y.0_1, 32, 0>;
+  _13 = BIT_FIELD_REF <y, 32, 0>;
+  _12 = BIT_FIELD_REF <y, 32, 224>;
+  _11 = BIT_FIELD_REF <y, 32, 192>;
+  _10 = BIT_FIELD_REF <y, 32, 160>;
+  _9 = BIT_FIELD_REF <y, 32, 128>;
+  _8 = BIT_FIELD_REF <y, 32, 96>;
+  _7 = BIT_FIELD_REF <y, 32, 64>;
+  _6 = BIT_FIELD_REF <y, 32, 32>;
   _2 = {_6, _7, _8, _9, _10, _11, _12, _13};
   x = _2;

so we're processing a DECL_HARD_REGISTER here I think and we must avoid
touching / changing accesses to such.  I am testing a patch.

Reply via email to