Patchwork RFA: Allow widening multiplication in tree-ssa/slsr-8.c

login
register
mail settings
Submitter Richard Sandiford
Date Jan. 13, 2013, 8:50 a.m.
Message ID <874nilzctx.fsf@talisman.default>
Download mbox | patch
Permalink /patch/211601/
State New
Headers show

Comments

Richard Sandiford - Jan. 13, 2013, 8:50 a.m.
gcc.dg/tree-ssa/slsr-8.c does "(int) index * (size_t) element_size",
which on LP64 targets can use a widening multiplication.  Of course,
for simple element sizes like these, we end up using a shift instead,
but that's a decision that's rightly made later.

Tested on x86_64-linux-gnu, mips64-linux-gnu and mipsisa64-elf.
OK to install?

Richard


gcc/testsuite/
	* gcc.dg/tree-ssa/slsr-8.c: Allow widening multiplications.
Richard Guenther - Jan. 14, 2013, 7:26 a.m.
On Sun, Jan 13, 2013 at 9:50 AM, Richard Sandiford
<rdsandiford@googlemail.com> wrote:
> gcc.dg/tree-ssa/slsr-8.c does "(int) index * (size_t) element_size",
> which on LP64 targets can use a widening multiplication.  Of course,
> for simple element sizes like these, we end up using a shift instead,
> but that's a decision that's rightly made later.
>
> Tested on x86_64-linux-gnu, mips64-linux-gnu and mipsisa64-elf.
> OK to install?

Ok.

Thanks,
Richard.

> Richard
>
>
> gcc/testsuite/
>         * gcc.dg/tree-ssa/slsr-8.c: Allow widening multiplications.
>
> Index: gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
> ===================================================================
> --- gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c      2013-01-13 08:05:03.403375571 +0000
> +++ gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c      2013-01-13 08:46:05.246550444 +0000
> @@ -18,6 +18,7 @@ f (int s, int *c)
>  }
>
>  /* There are 4 ' * ' instances in the decls (since "int * iftmp.0;" is
> -   added), 1 parm, 2 in the code.  */
> -/* { dg-final { scan-tree-dump-times " \\* " 7 "optimized" } } */
> +   added), 1 parm, 2 in the code.  The second one in the code can be
> +   a widening mult.  */
> +/* { dg-final { scan-tree-dump-times " w?\\* " 7 "optimized" } } */
>  /* { dg-final { cleanup-tree-dump "optimized" } } */

Patch

Index: gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c	2013-01-13 08:05:03.403375571 +0000
+++ gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c	2013-01-13 08:46:05.246550444 +0000
@@ -18,6 +18,7 @@  f (int s, int *c)
 }
 
 /* There are 4 ' * ' instances in the decls (since "int * iftmp.0;" is
-   added), 1 parm, 2 in the code.  */
-/* { dg-final { scan-tree-dump-times " \\* " 7 "optimized" } } */
+   added), 1 parm, 2 in the code.  The second one in the code can be
+   a widening mult.  */
+/* { dg-final { scan-tree-dump-times " w?\\* " 7 "optimized" } } */
 /* { dg-final { cleanup-tree-dump "optimized" } } */