How to make norm(::AbstractVector) faster in my case?

It’s a bit obscure but this is the crucial bit:

Defining that seems to be sufficient:

julia> Base.unsafe_convert(::Type{Ptr{T}}, A::Dummy{T}) where {T} =
           Base.unsafe_convert(Ptr{T}, A.coeffs)

julia> @btime norm($x)  # was 15.625 μs
  min 12.416 μs, mean 12.647 μs (0 allocations)
99.28318f0

julia> @btime norm($(x.coeffs))
  min 12.416 μs, mean 12.562 μs (0 allocations)
99.28318f0

julia> @which pointer(x)  # no method added here
pointer(x::AbstractArray{T}) where T in Base at abstractarray.jl:1170

julia> @btime $(rand(10^4, 10^4)) * $x;  # was 23.167 ms without BLAS
  min 13.536 ms, mean 14.144 ms (4 allocations, 156.34 KiB)