1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3
4 #include <arm_sve.h>
5
6 /* Make sure that LDFF1s can be reordered. The load of x should come due
7 to its longer dependence chain. */
8 svint8_t
foo(int8_t * ptr1,int8_t * ptr2)9 foo (int8_t *ptr1, int8_t *ptr2)
10 {
11 svsetffr ();
12 svbool_t pg = svptrue_b8 ();
13 svint8_t y = svldff1 (pg, ptr2);
14 svint8_t x = svldff1 (pg, ptr1);
15 x = svadd_x (pg, x, x);
16 x = svmul_x (pg, x, x);
17 x = svadd_x (pg, x, y);
18 return x;
19 }
20
21 /* { dg-final { scan-assembler {\tldff1b\tz[0-9]+\.b, p[0-7]/z, \[x0\]\n.*\tldff1b\tz[0-9]+\.b, p[0-7]/z, \[x1\]\n} } } */
22