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 <s...@gentoo.org> > PR tree-optimization/105312 > PR target/105573 > * gcc/testsuite/gcc.target/sparc/pr105573.c: New test. > > Signed-off-by: Sam James <s...@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; > + } > +}