diff --git a/test/FrontendC/2005-07-20-SqrtNoErrno.c b/test/FrontendC/2005-07-20-SqrtNoErrno.c index 3ca70b9556f..a321a3884e8 100644 --- a/test/FrontendC/2005-07-20-SqrtNoErrno.c +++ b/test/FrontendC/2005-07-20-SqrtNoErrno.c @@ -1,10 +1,11 @@ -// RUN: %llvmgcc %s -S -o - -fno-math-errno | grep llvm.sqrt +// RUN: %llvmgcc %s -S -o - -fno-math-errno | FileCheck %s // llvm.sqrt has undefined behavior on negative inputs, so it is // inappropriate to translate C/C++ sqrt to this. -// XFAIL: * #include float foo(float X) { - // Check that this compiles to llvm.sqrt when errno is ignored. +// CHECK: foo +// CHECK: sqrtf(float %1) nounwind readonly + // Check that this is marked readonly when errno is ignored. return sqrtf(X); } diff --git a/test/FrontendC/2009-09-24-SqrtErrno.c b/test/FrontendC/2009-09-24-SqrtErrno.c new file mode 100644 index 00000000000..09fc8764ea5 --- /dev/null +++ b/test/FrontendC/2009-09-24-SqrtErrno.c @@ -0,0 +1,12 @@ +// RUN: %llvmgcc %s -S -o - -fmath-errno | FileCheck %s +// llvm.sqrt has undefined behavior on negative inputs, so it is +// inappropriate to translate C/C++ sqrt to this. +#include + +float foo(float X) { +// CHECK: foo +// CHECK-NOT: readonly +// CHECK: return + // Check that this is not marked readonly when errno is used. + return sqrtf(X); +}