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