[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