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.