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.