# Elementwise operators

**URL:** <https://discourse.julialang.org/t/elementwise-operators/19529>\
**Category:** General Usage\
**Created:** [January 11, 2019, 5:47pm UTC](https://discourse.julialang.org/t/elementwise-operators/19529 "2019-01-11T17:47:59Z")\
**Posts on this page:** 1\
**Showing post:** 2

<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:** [January 11, 2019, 5:56pm UTC](https://discourse.julialang.org/t/elementwise-operators/19529/2 "2019-01-11T17:56:10Z")

</div>

The syntax tree is only the first half of the syntax story. The second half happens in lowering, and that’s where the magic occurs:

```julia
julia> Meta.@lower z=x.*y
:($(Expr(:thunk, CodeInfo(
 1 ─ %1 = (Base.getproperty)(Base.Broadcast, :materialize) │
 │ %2 = (Base.getproperty)(Base.Broadcast, :broadcasted) │
 │ %3 = (%2)(*, x, y) │
 │ %4 = (%1)(%3) │
 │ z = %4 │
 └── return %4 │
))))

```

This belies a good deal of complexity, but that’s the entrance to the rabbit hole.

---

_[View the full topic](https://discourse.julialang.org/t/elementwise-operators/19529)._
