https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92768

--- Comment #11 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 3 Dec 2019, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92768
> 
> Jakub Jelinek <jakub at gcc dot gnu.org> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |jakub at gcc dot gnu.org
> 
> --- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> The vector builder calls operand_equal_p, which in turn does:
>       case REAL_CST:
>         if (real_identical (&TREE_REAL_CST (arg0), &TREE_REAL_CST (arg1)))
>           return true;
> 
> 
>         if (!HONOR_SIGNED_ZEROS (arg0))
>           {
>             /* If we do not distinguish between signed and unsigned zero,
>                consider them equal.  */
>             if (real_zerop (arg0) && real_zerop (arg1))
>               return true;
>           }
>         return false;
> So, what could be done is temporarily enable flag_signed_zeros in the vector
> builder.

Alternatively add another flag to operand_equal_p to say whether
exact literal equality is asked for.

Reply via email to