Fix a codegen fault in which log2 or exp2 could be dead-code eliminated even though...
[oota-llvm.git] / test / CodeGen / X86 / log2_not_readnone.ll
diff --git a/test/CodeGen/X86/log2_not_readnone.ll b/test/CodeGen/X86/log2_not_readnone.ll
new file mode 100644 (file)
index 0000000..a971b0b
--- /dev/null
@@ -0,0 +1,15 @@
+; RUN: llc -march x86 %s -o - | FileCheck %s
+
+; Log2 and exp2 are string-matched to intrinsics. If they are not declared
+; readnone, they can't be changed to intrinsics (because they can change errno).
+
+declare double @log2(double)
+declare double @exp2(double)
+
+define void @f() {
+       ; CHECK: calll log2
+       %1 = call double @log2(double 0.000000e+00)
+       ; CHECK: calll exp2
+       %2 = call double @exp2(double 0.000000e+00)
+       ret void
+}