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.