[Bug target/100712] New: The vec_splatid instruction allows the creation of XXSPLTIDP instructions which produces undefined results.

meissner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 21 02:37:11 GMT 2021


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

            Bug ID: 100712
           Summary: The vec_splatid instruction allows the creation of
                    XXSPLTIDP instructions which produces undefined
                    results.
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: meissner at gcc dot gnu.org
  Target Milestone: ---

The vec_splatid builtin from altivec.h (i.e. __builtin_vec_xxspltid) allows the
user to create an XXSPLTIDP instruction where the value is a single precision
denormal value.  Right now the compiler warns about this usage, but it should
really not allow it.

In addition, the warning is buried in rs6000_emit_xxspltidp_v2df (in rs6000.c).
 A better place might be in rs6000_expand_binop_builtin (in rs6000-calls.)
where other usage warnings are given.


More information about the Gcc-bugs mailing list