InstCombine: Fold is.fpclass for single infinity to fcmp
llvm.is.fpclass(x, fcPosInf) -> fcmp oeq x, +inf llvm.is.fpclass(x, fcNegInf) -> fcmp oeq x, -inf llvm.is.fpclass(x, ~fcPosInf) -> fcmp one x, +inf llvm.is.fpclass(x, ~fcNegInf) -> fcmp one x, -inf llvm.is.fpclass(x, fcPosInf|fcNan) -> fcmp ueq x, +inf llvm.is.fpclass(x, fcNegInf|fcNan) -> fcmp ueq, -inf llvm.is.fpclass(x, ~fcPosInf & ~fcNan) -> fcmp one, x, +inf llvm.is.fpclass(x, ~fcNegInf & ~fcNan) -> fcmp one, x, -inf This regresses some of the logic of fcmp tests. These should be restored in a future patch to better handle combining logic of fcmp and class.
Loading
Please sign in to comment