# Is \`exp\` implemented with an LLVM intrinsic?

**URL:** <https://discourse.julialang.org/t/is-exp-implemented-with-an-llvm-intrinsic/17361>\
**Category:** Internals & Design\
**Created:** [November 9, 2018, 7:56pm UTC](https://discourse.julialang.org/t/is-exp-implemented-with-an-llvm-intrinsic/17361 "2018-11-09T19:56:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [November 9, 2018, 7:56pm UTC](https://discourse.julialang.org/t/is-exp-implemented-with-an-llvm-intrinsic/17361/1 "2018-11-09T19:56:27Z")

</div>

I thought `exp` was now writen in pure Julia code. Is it still calling an LLVM intrinsic?

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [November 9, 2018, 8:08pm UTC](https://discourse.julialang.org/t/is-exp-implemented-with-an-llvm-intrinsic/17361/2 "2018-11-09T20:08:34Z")

</div>

`exp(x)` is written in pure julia code, but the more general `y^x` is an LLVM function call (for `x::Float64, y::Float64`).

---

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [November 9, 2018, 8:11pm UTC](https://discourse.julialang.org/t/is-exp-implemented-with-an-llvm-intrinsic/17361/3 "2018-11-09T20:11:09Z")

</div>

You can locate `exp()` quite easily like this:

```julia
julia> @which exp(1.0)
exp(x::T) where T<:Union{Float32, Float64} in Base.Math at special/exp.jl:75

```

which indeed shows that it is written in pure Julia.
