Propogation of fpclass assumptions vis a vis fast-math flags

See discussion on ⚙ D47963 [LangRef] nnan and ninf produce poison. . The LangRef text was changed to “poison” as part of the general effort to clarify the various meanings of “undefined” in the reference. I suggested something more conservative at the time… but I didn’t really have any examples where the “poison” behavior would cause problems. I think it makes sense to revisit if it’s causing practical issues for users.

The most obvious option for this is “freeze”, but there probably isn’t any way for clang to generate that without blocking a bunch of important optimizations.