aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CBackend/Writer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/CBackend/Writer.cpp')
-rw-r--r--lib/Target/CBackend/Writer.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index c50b5a40e9..330a7bc53f 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -1693,6 +1693,8 @@ void CWriter::lowerIntrinsics(Function &F) {
case Intrinsic::longjmp:
case Intrinsic::prefetch:
case Intrinsic::dbg_stoppoint:
+ case Intrinsic::powi_f32:
+ case Intrinsic::powi_f64:
// We directly implement these intrinsics
break;
default:
@@ -1785,6 +1787,14 @@ void CWriter::visitCallInst(CallInst &I) {
writeOperand(I.getOperand(1));
Out << ')';
return;
+ case Intrinsic::powi_f32:
+ case Intrinsic::powi_f64:
+ Out << "__builtin_powi(";
+ writeOperand(I.getOperand(1));
+ Out << ", ";
+ writeOperand(I.getOperand(2));
+ Out << ')';
+ return;
case Intrinsic::setjmp:
#if defined(HAVE__SETJMP) && defined(HAVE__LONGJMP)
Out << "_"; // Use _setjmp on systems that support it!