PR 69400: Invalid 128-bit modulus result

Jakub Jelinek jakub@redhat.com
Fri Jan 22 10:10:00 GMT 2016


On Fri, Jan 22, 2016 at 09:43:52AM +0000, Richard Sandiford wrote:
> gcc/
> 	PR tree-optimization/69400
> 	* wide-int.cc (wi_pack): Take the precision as argument and
> 	perform canonicalization here rather than in the callers.
> 	Use the main loop to handle all full-width HWIs.  Add a
> 	zero HWI if in_len isn't a full result.
> 	(wi::divmod_internal): Update accordingly.
> 	(wi::mul_internal): Likewise.  Simplify.
> 
> gcc/testsuite/
> 	PR tree-optimization/69400
> 	* gcc.dg/plugin/wide-int_plugin.c (test_wide_int_mod_trunc): New
> 	function.
> 	(plugin_init): Call it.

I'd prefer to see also the testcase from the PR in the testsuite in addition
to the unit test.  Just make it /* { dg-do run { target int128 } } */
and put into gcc.dg/torture/

> --- a/gcc/wide-int.cc
> +++ b/gcc/wide-int.cc
> @@ -1215,29 +1215,31 @@ wi_unpack (unsigned HOST_HALF_WIDE_INT *result, const HOST_WIDE_INT *input,
>  }
>  
>  /* The inverse of wi_unpack.  IN_LEN is the the number of input

I know you haven't touched this line and it is preexisting, but when
touching this, please also fix the "the the".

Ok with those changes.

	Jakub



More information about the Gcc-patches mailing list