Q: How far IEEE 754 can be violated for the goal of performance increase? As we know, the practice "not fully IEEE 754 conformant, but faster" exists. This is what compilers optionally do (options related to floating-point model or floating-point behavior).
However, which exactly IEEE 754 requirements can never be violated? Is there any addendum describing these aspects (i.e. "how far optimizing IEEE 754 implementations can go?").

A: Wikipedia gives a few directions/clues:

*

*The extended precision formats are optional.


*There are recommendations which are not required.
Other parts of this Wikipedia entry describes required functionality.

A: 
As we know, the practice "not fully IEEE 754 conformant, but faster" exists. This is what compilers optionally do (options related to floating-point model or floating-point behavior). However, which exactly IEEE 754 requirements can never be violated?

This mostly devolves into a discussion about how much you can get away with before the words "not fully" aren't appropriate anymore. If you want to take things very literally, you could just have a sign bit (that conforms to IEEE 754) and nothing else (no exponent, no significant) and still say "not fully compliant" and be technically correct; but in this case most people would complain that the amount of "not fully compliant" is so close to "not compliant" that it's misleading.
To avoid being misleading; "not fully compliant" is closer to "compliant enough for most things in practice", but this really depends on the implementation and should be interpreted as such (e.g. probably should be taken to mean "read the compiler's manual").
Note that often "not fully compliant" actually means it pretends that subnormals are zero, and/or that signaling NaNs aren't supported, and/or that precision is higher than it should be (e.g. 80-bit floating point used for intermediate results causing more accurate final results than you would get if it was fully compliant).
Also; often compilers will offer a third "fast math" option that is even faster (and even less compliant), and don't use the words "not fully compliant" for this case. When that happens it makes sense for "not fully compliant" to be more of a middle ground between "fast math" and "fully compliant".
