Message ID | 20241110125550.787007-6-hjl.tools@gmail.com |
---|---|
State | New |
Headers | show |
Series | Improve outgoing integer argument promotion | expand |
On Sun, Nov 10, 2024 at 1:56 PM H.J. Lu <hjl.tools@gmail.com> wrote: > > Since the C frontend no longer promotes char and short arguments, expect > in-branch clones for x86. This is OK once the prerequisites are approved. Richard. > PR middle-end/14907 > * gcc.dg/vect/vect-simd-clone-16c.c: Expect in-branch clones for > x86. > * gcc.dg/vect/vect-simd-clone-16d.c: Likewise. > * gcc.dg/vect/vect-simd-clone-17c.c: Likewise. > * gcc.dg/vect/vect-simd-clone-17d.c: Likewise. > * gcc.dg/vect/vect-simd-clone-18c.c: Likewise. > * gcc.dg/vect/vect-simd-clone-18d.c: Likewise. > > Signed-off-by: H.J. Lu <hjl.tools@gmail.com> > --- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c | 5 +---- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c | 4 +--- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c | 5 +---- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c | 5 +---- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c | 5 +---- > gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c | 5 +---- > 6 files changed, 6 insertions(+), 23 deletions(-) > > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c > index 4fdf25d06c6..628d4575673 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c > @@ -7,11 +7,8 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=short. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > - > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c > index 55d3c0afae5..d1f85b0703e 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c > @@ -7,11 +7,9 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=char. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c > index 6afa2fd595e..6148abee806 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c > @@ -7,11 +7,8 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=short. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > - > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c > index 56177880b6b..63687984598 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c > @@ -7,11 +7,8 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=char. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > - > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c > index e56e6bca4a0..ee049e7d003 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c > @@ -7,11 +7,8 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=short. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > - > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c > index 87e7379733e..bad9bcb731f 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c > @@ -7,11 +7,8 @@ > > /* Ensure the the in-branch simd clones are used on targets that support them. > Some targets use another call for the epilogue loops. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ > +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ > /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ > > -/* x86_64 fails to use in-branch clones for TYPE=char. */ > -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ > - > /* The LTO test produces two dump files and we scan the wrong one. */ > /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ > -- > 2.47.0 >
diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c index 4fdf25d06c6..628d4575673 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c @@ -7,11 +7,8 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=short. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ - /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c index 55d3c0afae5..d1f85b0703e 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c @@ -7,11 +7,9 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=char. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c index 6afa2fd595e..6148abee806 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c @@ -7,11 +7,8 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=short. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ - /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c index 56177880b6b..63687984598 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c @@ -7,11 +7,8 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=char. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ - /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c index e56e6bca4a0..ee049e7d003 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c @@ -7,11 +7,8 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=short. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ - /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c index 87e7379733e..bad9bcb731f 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c +++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c @@ -7,11 +7,8 @@ /* Ensure the the in-branch simd clones are used on targets that support them. Some targets use another call for the epilogue loops. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { ! { x86_64-*-* || { i?86-*-* || aarch64*-*-* } } } } } } */ +/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 2 "vect" { target { !aarch64*-*-* } } } } */ /* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 3 "vect" { target { aarch64*-*-* } } } } */ -/* x86_64 fails to use in-branch clones for TYPE=char. */ -/* { dg-final { scan-tree-dump-times {[\n\r] [^\n]* = foo\.simdclone} 0 "vect" { target x86_64-*-* i?86-*-* } } } */ - /* The LTO test produces two dump files and we scan the wrong one. */ /* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
Since the C frontend no longer promotes char and short arguments, expect in-branch clones for x86. PR middle-end/14907 * gcc.dg/vect/vect-simd-clone-16c.c: Expect in-branch clones for x86. * gcc.dg/vect/vect-simd-clone-16d.c: Likewise. * gcc.dg/vect/vect-simd-clone-17c.c: Likewise. * gcc.dg/vect/vect-simd-clone-17d.c: Likewise. * gcc.dg/vect/vect-simd-clone-18c.c: Likewise. * gcc.dg/vect/vect-simd-clone-18d.c: Likewise. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> --- gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c | 5 +---- gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c | 4 +--- gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c | 5 +---- gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c | 5 +---- gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c | 5 +---- gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c | 5 +---- 6 files changed, 6 insertions(+), 23 deletions(-)