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

            Bug ID: 113484
           Summary: Add support for _Float16 type on PowerPC
           Product: gcc
           Version: 12.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: john_platts at hotmail dot com
  Target Milestone: ---

POWER9 has instructions for _Float16 to float, _Float16 to double, float to
_Float16, and double to _Float16 conversions, but the _Float16 type is not
currently supported on POWER9 platforms.

There are also currently no intrinsics available for the POWER9 _Float16 to
double (xscvhpdp) and double to _Float16 (xscvdphp) instructions on GCC.

GCC does have intrinsics for POWER9 _Float16 vector to float vector (xvcvhpsp)
and float vector to _Float16 vector (xvcvsphp) instructions, but the
vec_extract_fp32_from_shorth, vec_extract_fp32_from_shortl, and
vec_pack_to_short_fp32 intrinsics use __vector unsigned short to represent
_Float16 values.

Adding support for _Float16 on POWER9 would allow conversions between _Float64
and double to be done using casts instead of having to resort to inline
assembly.

Reply via email to