Index: libc/src/math/x86_64/cos.cpp =================================================================== --- libc/src/math/x86_64/cos.cpp +++ libc/src/math/x86_64/cos.cpp @@ -13,7 +13,7 @@ LLVM_LIBC_FUNCTION(double, cos, (double x)) { double result; - __asm__ __volatile__("fcos" : "=t"(result) : "f"(x)); + __asm__ __volatile__("fcos" : "=t"(result) : "f"(x) : "cc"); return result; } Index: libc/src/math/x86_64/sin.cpp =================================================================== --- libc/src/math/x86_64/sin.cpp +++ libc/src/math/x86_64/sin.cpp @@ -13,7 +13,7 @@ LLVM_LIBC_FUNCTION(double, sin, (double x)) { double result; - __asm__ __volatile__("fsin" : "=t"(result) : "f"(x)); + __asm__ __volatile__("fsin" : "=t"(result) : "f"(x) : "cc"); return result; } Index: libc/src/math/x86_64/sqrtl.cpp =================================================================== --- libc/src/math/x86_64/sqrtl.cpp +++ libc/src/math/x86_64/sqrtl.cpp @@ -13,7 +13,7 @@ LLVM_LIBC_FUNCTION(long double, sqrtl, (long double x)) { long double result; - __asm__ __volatile__("fsqrt" : "=t"(result) : "t"(x)); + __asm__ __volatile__("fsqrt" : "=t"(result) : "f"(x) : "cc"); return result; } Index: libc/src/math/x86_64/tan.cpp =================================================================== --- libc/src/math/x86_64/tan.cpp +++ libc/src/math/x86_64/tan.cpp @@ -16,7 +16,7 @@ double one; // The fptan instruction pushes the number 1 on to the FP stack after // computing tan. So, we read out the one before popping the actual result. - __asm__ __volatile__("fptan" : "=t"(one) : "f"(x)); + __asm__ __volatile__("fptan" : "=t"(one) : "f"(x) : "cc"); __asm__ __volatile__("fstpl %0" : "=m"(result)); return result; }