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.
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) abort() ;
__builtin_
}
The movv1qi pattern emits halfword load instructions instead of character loads.