> + // Emit some helper functions for dealing with FCMP instruction's > + // predicates > + Out << "static inline int llvm_fcmp_ord(double X, double Y) { "; > + Out << "return X == X && Y == Y; }\n"; > + Out << "static inline int llvm_fcmp_uno(double X, double Y) { "; > + Out << "return X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_ueq(double X, double Y) { "; > + Out << "return X == Y || X != X || Y != Y; }\n";
These would be more obvious if written as: return X == Y || llvm_fcmp_uno(X, Y) > + Out << "static inline int llvm_fcmp_ult(double X, double Y) { "; > + Out << "return X < Y || X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_ugt(double X, double Y) { "; > + Out << "return X > Y || X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_ule(double X, double Y) { "; > + Out << "return X <= Y || X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_uge(double X, double Y) { "; > + Out << "return X >= Y || X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_une(double X, double Y) { "; > + Out << "return X != Y || X != X || Y != Y; }\n"; > + Out << "static inline int llvm_fcmp_oeq(double X, double Y) { "; > + Out << "return X == Y && X == X && Y == Y; }\n"; > + Out << "static inline int llvm_fcmp_olt(double X, double Y) { "; > + Out << "return X < Y && X == X && Y == Y; }\n"; > + Out << "static inline int llvm_fcmp_ogt(double X, double Y) { "; > + Out << "return X > Y && X == X && Y == Y; }\n"; > + Out << "static inline int llvm_fcmp_ole(double X, double Y) { "; > + Out << "return X <= Y && X == X && Y == Y; }\n"; > + Out << "static inline int llvm_fcmp_oge(double X, double Y) { "; > + Out << "return X >= Y && X == X && Y == Y; }\n"; You can drop the 2nd and 3rd term of each of thse. > + Out << "static inline int llvm_fcmp_one(double X, double Y) { "; > + Out << "return X != Y && X == X && Y == Y; }\n"; This one is needed though. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits