Hi All, The resulting predicate register of a whilelo is not restricted to the lower half of the predicate register file.
As such these tests started failing after recent changes because the whilelo outside the loop is getting assigned p15. This widens the regexp. Tested on aarch64-none-linux-gnu and passes again. Ok for master? Thanks, Tamar gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/live_1.c: Update assembly. --- inline copy of patch -- diff --git a/gcc/testsuite/gcc.target/aarch64/sve/live_1.c b/gcc/testsuite/gcc.target/aarch64/sve/live_1.c index 80ee176d1807bf628ad47551d69ff5d84deda79e..2db6c3c209a9514646e92628f3d2dd58d466539c 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/live_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/live_1.c @@ -27,10 +27,10 @@ TEST_ALL (EXTRACT_LAST) -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].b, } 2 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].h, } 4 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].s, } 4 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].d, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.b, } 2 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.h, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.s, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.d, } 4 } } */ /* { dg-final { scan-assembler-times {\tlastb\tb[0-9]+, p[0-7], z[0-9]+\.b\n} 1 } } */ /* { dg-final { scan-assembler-times {\tlastb\th[0-9]+, p[0-7], z[0-9]+\.h\n} 2 } } */ --
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/live_1.c b/gcc/testsuite/gcc.target/aarch64/sve/live_1.c index 80ee176d1807bf628ad47551d69ff5d84deda79e..2db6c3c209a9514646e92628f3d2dd58d466539c 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/live_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/live_1.c @@ -27,10 +27,10 @@ TEST_ALL (EXTRACT_LAST) -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].b, } 2 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].h, } 4 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].s, } 4 } } */ -/* { dg-final { scan-assembler-times {\twhilelo\tp[0-7].d, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.b, } 2 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.h, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.s, } 4 } } */ +/* { dg-final { scan-assembler-times {\twhilelo\tp[0-9]+.d, } 4 } } */ /* { dg-final { scan-assembler-times {\tlastb\tb[0-9]+, p[0-7], z[0-9]+\.b\n} 1 } } */ /* { dg-final { scan-assembler-times {\tlastb\th[0-9]+, p[0-7], z[0-9]+\.h\n} 2 } } */