I ran into this issue for a `QRPackedQ`

from a `qr`

with pivoting.

MWE:

```
x = rand(64,64);
y = rand(64,64);
z = rand(64,64);
F = qr(x, Val(true));
@time mul!(x, F.Q, y);
@time mul!(x, Matrix(F.Q), y);
@time mul!(x, y, y);
# even worse if we want to use an adjoint
@time mul!(x, F.Q', y);
@time mul!(x, Matrix(F.Q)', y);
@time mul!(x, y', y);
```

which on my machine gives

```
0.318706 seconds (32.79 k allocations: 273.067 MiB, 7.32% gc time)
0.000707 seconds (9 allocations: 80.922 KiB)
0.000030 seconds (4 allocations: 160 bytes)
# adjoint
10.129926 seconds (1.08 M allocations: 8.798 GiB, 6.68% gc time)
0.000769 seconds (10 allocations: 80.938 KiB)
0.000039 seconds (5 allocations: 176 bytes)
```

(`typeof(F.Q) == LinearAlgebra.QRPackedQ{Float64,Array{Float64,2}}`

)

EDIT: https://github.com/JuliaLang/julia/issues/31146