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;
> +  }
> +}

Reply via email to