https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80246
Bug ID: 80246
Summary: Builtin's for POWER's dxex[q] and diex[q] use the
wrong types
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: bergner at gcc dot gnu.org
Target Milestone: ---
The DFP builtins for extract exponent (dxex and dxexq) return a decimal float
type when the actual value returned by the hardware instructions is a 64-bit
signed binary integer (albeit in a FP register). The return type of the
builtins should match the type of the value returned and not register type it
is returned in, since moving the return value when it's in a FP variable to an
integer variable produces bad and/or incorrect code.
A similar issue affects the DFP insert exponent builtins (diex, diexq), but
this time it is related to using the wrong type for the input argument that
represents the exponent.