* is a binary operator that performs the multiplication, its a regular function call. Only dotted operations fuse under broadcast. I’m afraid I don’t know any other method of catching such allocations other than measuring them explicitly using, e.g. @time.
You can also use Meta.@lower to see what an expression lowers to, I have a feeling it might reveal the temporary array, if not, @code_typed might
4 Likes