blob: 4894fdbd079dbea9bee1a687a60c68834eb95468 [file] [log] [blame]
/* PR target/90358 */
/* { dg-do run { target { sse4_runtime } } } */
/* { dg-options "-O3 -msse4" } */
struct s { unsigned int a, b, c; };
void __attribute__ ((noipa))
foo (struct s *restrict s1, struct s *restrict s2, int n)
{
for (int i = 0; i < n; ++i)
{
s1[i].b = s2[i].b;
s1[i].c = s2[i].c;
s2[i].c = 0;
}
}
#define N 12
int
main ()
{
struct s s1[N], s2[N];
for (unsigned int j = 0; j < N; ++j)
{
s2[j].a = j * 5;
s2[j].b = j * 5 + 2;
s2[j].c = j * 5 + 4;
}
foo (s1, s2, N);
for (unsigned int j = 0; j < N; ++j)
if (s1[j].b != j * 5 + 2)
__builtin_abort ();
return 0;
}