blob: b958612173bd5e5f554962337e3c54f18e187b53 [file]
/* { dg-do compile } */
/* { dg-options "-O2 -favoid-store-forwarding -fdump-rtl-avoid_store_forwarding" } */
typedef union {
char arr_8[8];
int long_value;
} DataUnion1;
long no_ssll_1 (DataUnion1 *data, char x)
{
data->arr_8[4] = x;
return data->long_value;
}
long no_ssll_2 (DataUnion1 *data, char x)
{
data->arr_8[5] = x;
return data->long_value;
}
typedef union {
char arr_8[8];
short long_value[4];
} DataUnion2;
long no_ssll_3 (DataUnion2 *data, char x)
{
data->arr_8[4] = x;
return data->long_value[1];
}
long no_ssll_4 (DataUnion2 *data, char x)
{
data->arr_8[0] = x;
return data->long_value[1];
}
/* { dg-final { scan-rtl-dump-times "Store forwarding detected" 0 "avoid_store_forwarding" } } */
/* { dg-final { scan-rtl-dump-times "Store forwarding avoided" 0 "avoid_store_forwarding" } } */