[PATCH] testsuite: Add testcase for recently fixed PR [PR101159]

Richard Biener rguenther@suse.de
Tue Jun 22 13:15:49 GMT 2021


On Tue, 22 Jun 2021, Jakub Jelinek wrote:

> On Tue, Jun 22, 2021 at 11:00:51AM +0200, Richard Biener wrote:
> > 2021-06-22  Richard Biener  <rguenther@suse.de>
> > 
> > 	PR tree-optimization/101159
> > 	* tree-vect-patterns.c (vect_recog_popcount_pattern): Add
> > 	missing NULL vectype check.
> 
> The following patch adds the testcase for it, IMHO it can't hurt and
> from my experience testcases often trigger other bugs later on (rather
> than the original bugs reappearing, though even that happens),
> and also fixes a couple of typos in the new function.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK.

> 2021-06-22  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR tree-optimization/101159
> 	* tree-vect-patterns.c (vect_recog_widen_minus_pattern): Fix some
> 	comment typos.
> 
> 	* gcc.c-torture/compile/pr101159.c: New test.
> 
> --- gcc/tree-vect-patterns.c.jj	2021-06-22 12:19:09.168846556 +0200
> +++ gcc/tree-vect-patterns.c	2021-06-22 12:41:35.334932438 +0200
> @@ -1300,7 +1300,7 @@ vect_recog_widen_minus_pattern (vec_info
>     TYPE1 B;
>     UTYPE2 temp_in;
>     TYPE3 temp_out;
> -   temp_in = (TYPE2)A;
> +   temp_in = (UTYPE2)A;
>  
>     temp_out = __builtin_popcount{,l,ll} (temp_in);
>     B = (TYPE1) temp_out;
> @@ -1372,8 +1372,8 @@ vect_recog_popcount_pattern (vec_info *v
>    if (!rhs_origin)
>      return NULL;
>  
> -  /* Input and outout of .POPCOUNT should be same-precision integer.
> -     Also A should be unsigned or same presion as temp_in,
> +  /* Input and output of .POPCOUNT should be same-precision integer.
> +     Also A should be unsigned or same precision as temp_in,
>       otherwise there would be sign_extend from A to temp_in.  */
>    if (TYPE_PRECISION (unprom_diff.type) != TYPE_PRECISION (lhs_type)
>        || (!TYPE_UNSIGNED (unprom_diff.type)
> @@ -1384,7 +1384,7 @@ vect_recog_popcount_pattern (vec_info *v
>  
>    vect_pattern_detected ("vec_regcog_popcount_pattern", popcount_stmt);
>    vec_type = get_vectype_for_scalar_type (vinfo, lhs_type);
> -  /* Do it only the backend existed popcount<vector_mode>2.  */
> +  /* Do it only if the backend has popcount<vector_mode>2 pattern.  */
>    if (!vec_type
>        || !direct_internal_fn_supported_p (IFN_POPCOUNT, vec_type,
>  					  OPTIMIZE_FOR_SPEED))
> --- gcc/testsuite/gcc.c-torture/compile/pr101159.c.jj	2021-06-22 12:41:54.742665843 +0200
> +++ gcc/testsuite/gcc.c-torture/compile/pr101159.c	2021-06-22 12:38:15.267680653 +0200
> @@ -0,0 +1,10 @@
> +/* PR tree-optimization/101159 */
> +
> +unsigned long a;
> +long b;
> +
> +void
> +foo (void)
> +{
> +  a += __builtin_popcountl (b);
> +}
> 
> 
> 	Jakub
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)


More information about the Gcc-patches mailing list