Message ID | 20230421193338.3874230-1-sam@gentoo.org |
---|---|
State | New |
Headers | show |
Series | testsuite: Add testcase for sparc ICE [PR105573] | expand |
On Fri, 21 Apr 2023, Sam James wrote: > r11-10018-g33914983cf3734c2f8079963ba49fcc117499ef3 fixed PR105312 and added > a test case for target/arm but the duplicate PR105573 has a test case for > target/sparc that was uncommitted until now. OK. But see below for a question > 2023-04-21 Sam James <sam@gentoo.org> > PR tree-optimization/105312 > PR target/105573 > * gcc/testsuite/gcc.target/sparc/pr105573.c: New test. > > Signed-off-by: Sam James <sam@gentoo.org> > --- > gcc/testsuite/gcc.target/sparc/pr105573.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/sparc/pr105573.c > > diff --git a/gcc/testsuite/gcc.target/sparc/pr105573.c b/gcc/testsuite/gcc.target/sparc/pr105573.c > new file mode 100644 > index 00000000000..9eba2e4beba > --- /dev/null > +++ b/gcc/testsuite/gcc.target/sparc/pr105573.c > @@ -0,0 +1,14 @@ > +/* { dg-do compile } */ > +/* { dg-options "-O2 -mvis3" } */ > + > +int *UINT_sign_args, UINT_sign_steps; > +int *UINT_sign_ip1; > +__attribute__((optimize("O3"))) void UINT_sign() { is the optimize attribute necessary or does -O3 -mvis3 also reproduce the issue? > + char *op1 = (char*) UINT_sign_args; > + int os1 = UINT_sign_steps, i; > + for (; i; i++, op1 += os1) { > + unsigned in = *(unsigned *)UINT_sign_ip1; > + int *out = (int*) op1; > + *out = in > 0; > + } > +}
Richard Biener <rguenther@suse.de> writes: > On Fri, 21 Apr 2023, Sam James wrote: > >> r11-10018-g33914983cf3734c2f8079963ba49fcc117499ef3 fixed PR105312 and added >> a test case for target/arm but the duplicate PR105573 has a test case for >> target/sparc that was uncommitted until now. > > OK. But see below for a question > >> 2023-04-21 Sam James <sam@gentoo.org> >> PR tree-optimization/105312 >> PR target/105573 >> * gcc/testsuite/gcc.target/sparc/pr105573.c: New test. >> >> Signed-off-by: Sam James <sam@gentoo.org> >> --- >> gcc/testsuite/gcc.target/sparc/pr105573.c | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) >> create mode 100644 gcc/testsuite/gcc.target/sparc/pr105573.c >> >> diff --git a/gcc/testsuite/gcc.target/sparc/pr105573.c b/gcc/testsuite/gcc.target/sparc/pr105573.c >> new file mode 100644 >> index 00000000000..9eba2e4beba >> --- /dev/null >> +++ b/gcc/testsuite/gcc.target/sparc/pr105573.c >> @@ -0,0 +1,14 @@ >> +/* { dg-do compile } */ >> +/* { dg-options "-O2 -mvis3" } */ >> + >> +int *UINT_sign_args, UINT_sign_steps; >> +int *UINT_sign_ip1; >> +__attribute__((optimize("O3"))) void UINT_sign() { > > is the optimize attribute necessary or does -O3 -mvis3 also reproduce > the issue? Good point - -O3 -mvis3 is enough, so I've resent w/ that & dropped attribute. I don't have push access so will need someone to push for me. Cheers.
diff --git a/gcc/testsuite/gcc.target/sparc/pr105573.c b/gcc/testsuite/gcc.target/sparc/pr105573.c new file mode 100644 index 00000000000..9eba2e4beba --- /dev/null +++ b/gcc/testsuite/gcc.target/sparc/pr105573.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mvis3" } */ + +int *UINT_sign_args, UINT_sign_steps; +int *UINT_sign_ip1; +__attribute__((optimize("O3"))) void UINT_sign() { + char *op1 = (char*) UINT_sign_args; + int os1 = UINT_sign_steps, i; + for (; i; i++, op1 += os1) { + unsigned in = *(unsigned *)UINT_sign_ip1; + int *out = (int*) op1; + *out = in > 0; + } +}
r11-10018-g33914983cf3734c2f8079963ba49fcc117499ef3 fixed PR105312 and added a test case for target/arm but the duplicate PR105573 has a test case for target/sparc that was uncommitted until now. 2023-04-21 Sam James <sam@gentoo.org> PR tree-optimization/105312 PR target/105573 * gcc/testsuite/gcc.target/sparc/pr105573.c: New test. Signed-off-by: Sam James <sam@gentoo.org> --- gcc/testsuite/gcc.target/sparc/pr105573.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 gcc/testsuite/gcc.target/sparc/pr105573.c