Closed
Description
This is similar to #44998, in that LLVM's SLPVectorizer is involved, but I think it's easier to solve by tweaking the codegen for egal:
struct DefaultOr{T}
x::T
default::Bool
end
@eval struct Torture
$((Expr(:(::), Symbol("x$i"), DefaultOr{Float64}) for i = 1:897)...)
end
egal_any(x::Torture, y::Any) = x === y
julia> @time code_llvm(egal_any, Tuple{Torture, Any})
22.034327 seconds (5.48 M allocations: 206.847 MiB, 0.40% gc time, 88.69% compilation time: <1% of which was recompilation)