https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92950
Bug ID: 92950 Summary: Wrong load instructions emitted for movv1qi Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Target Milestone: --- The following testcase abort when being compiled with -O3 -march=z13 on IBM Z: struct a { int b; char c; }; struct a d = {1, 16}; struct a *e = &d; int f = 0; int main() { struct a g = {0, 0 }; f = 0; for (; f <= 1; f++) { g = d; *e = g; } if (d.c != 16) __builtin_abort(); } The movv1qi pattern emits halfword load instructions instead of character loads.