This fixes a bug compiling: int test2(float X, float Y) { return !__builtin_isunordered(X, Y); }
because we checked the wrong 'opcode', we compiled it to the same code as: int test1(float X, float Y) { return __builtin_isunordered(X, Y); } Reid/Sheng, please make sure that the corresponding patch makes it into your llvm-gcc changes, thx. -Chris Index: llvm-convert.cpp =================================================================== --- llvm-convert.cpp (revision 121370) +++ llvm-convert.cpp (working copy) @@ -2329,7 +2329,7 @@ Result = IsUnord; // If this is an ORDERED_EXPR, invert the result of the isunordered call. - if (Opc == ORDERED_EXPR) + if (TREE_CODE(exp) == ORDERED_EXPR) Result = BinaryOperator::createNot(Result, "tmp", CurBB); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits