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

            Bug ID: 77918
           Summary: S390: Floating point comparisons don't raise invalid
                    for unordered opperands.
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stli at linux dot vnet.ibm.com
  Target Milestone: ---

The C comparison operators <, >, <=, >= (as opposed to the isgreater, etc.
macros) are specified to raise the invalid exception on comparisons involving a
NaN (quiet or signaling). However, gcc on s390 is generating e.g. the cebr
(Short BFP COMPARE) instruction rather than kebr (Short BFP COMPARE AND
SIGNAL). The first one does not raise the invalid exception unless it
encounters a signaling NaN. The latter one raise the invalid exception if one
operand is quiet or signaling NaN. I haven't checked if invalid is raised if
gcc is using vector instructions.

Reply via email to