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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:77a50c772771f681085922b493922516c3c03e9a

commit r14-2085-g77a50c772771f681085922b493922516c3c03e9a
Author: liuhongt <hongtao....@intel.com>
Date:   Sun Jun 25 11:35:09 2023 +0800

    Don't use intermiediate type for FIX_TRUNC_EXPR when ftrapping-math.

    > > Hmm, good question.  GENERIC has a direct truncation to unsigned char
    > > for example, the C standard generally says if the integral part cannot
    > > be represented then the behavior is undefined.  So I think we should be
    > > safe here (0x1.0p32 doesn't fit an int).
    >
    > We should be following Annex F (unspecified value plus "invalid"
exception
    > for out-of-range floating-to-integer conversions rather than undefined
    > behavior).  But we don't achieve that very well at present (see bug 93806
    > comments 27-29 for examples of how such conversions produce wobbly
    > values).

    That would mean guarding this with !flag_trapping_math would be the
appropriate
    thing to do.

    gcc/ChangeLog:

            PR tree-optimization/110371
            PR tree-optimization/110018
            * tree-vect-stmts.cc (vectorizable_conversion): Don't use
            intermiediate type for FIX_TRUNC_EXPR when ftrapping-math.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr110018-1.c: Add -fno-trapping-math to
dg-options.
            * gcc.target/i386/pr110018-2.c: Ditto.
  • [Bug middle-end/110018] Missing... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to