/* This test is a copy of gcc.dg/torture/pr34330.c: here we are looking for specific patterns being matched in the AArch64 backend. */ /* { dg-do compile } */ /* { dg-options "-Os -ftree-vectorize -dp" } */ /* { dg-require-effective-target lp64 } */ struct T { int t; struct { short s1, s2, s3, s4; } *s; }; void foo (int *a, int *b, int *c, int *d, struct T *e) { int i; for (i = 0; i < e->t; i++) { e->s[i].s1 = a[i]; e->s[i].s2 = b[i]; e->s[i].s3 = c[i]; e->s[i].s4 = d[i]; } } /* { dg-final { scan-assembler-times "add_lsl_di" 3 } } */