https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116768
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a testcase which does NOT need -mavx to fail and fails on aarch64 too: ``` #define numwords 2 typedef struct { unsigned words[numwords]; } Child; typedef struct { Child child; } Parent; Parent my_or(Parent x, const Parent *y) { const Child *y_child = &y->child; for (int i = 0; i < numwords; i++) { x.child.words[i] |= y_child->words[i]; } return x; } int main() { Parent bs[4]; __builtin_memset(bs, 0, sizeof(bs)); bs[0].child.words[0] = 1; for (int i = 1; i <= 3; i++) { bs[i] = my_or(bs[i], &bs[i - 1]); } return bs[2].child.words[0]; } ```