function _precompile_()
    ccall(:jl_generating_output, Cint, ()) == 1 || return nothing

    precompile(Tuple{Type{LoopVectorization.ArrayRefStruct},LoopVectorization.LoopSet,LoopVectorization.ArrayReferenceMeta,Vector{Symbol},Vector{Int64}})
    precompile(Tuple{Type{LoopVectorization.LoopSet},Expr,Symbol})
    precompile(Tuple{Type{LoopVectorization.LoopSet},Symbol})
    precompile(Tuple{Type{Vector{Tuple{Int64,LoopVectorization.NumberType}}},Vector{Int64}})
    # precompile(Tuple{typeof(Base._mapreduce),Base.ComposedFunction{Type{Float64},typeof(length)},typeof(Base.mul_prod),IndexLinear,Vector{LoopVectorization.Loop}})
    precompile(Tuple{typeof(LoopVectorization._avx_loopset),Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Any})
    precompile(Tuple{typeof(LoopVectorization.add_broadcast!),LoopVectorization.LoopSet,Symbol,Symbol,Vector{Symbol},Type{Vector{Float64}},Int64})
    precompile(Tuple{typeof(LoopVectorization.add_compute!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,LoopVectorization.ArrayReferenceMetaPosition})
    precompile(Tuple{typeof(LoopVectorization.add_compute!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,Nothing})
    precompile(Tuple{typeof(LoopVectorization.add_constant!),LoopVectorization.LoopSet,Float64,Vector{Symbol},Symbol,Int64})
    precompile(Tuple{typeof(LoopVectorization.add_if!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,LoopVectorization.ArrayReferenceMetaPosition})
    precompile(Tuple{typeof(LoopVectorization.add_load!),LoopVectorization.LoopSet,LoopVectorization.Operation,Bool,Bool})
    precompile(Tuple{typeof(LoopVectorization.add_mref!),LoopVectorization.LoopSet,LoopVectorization.ArrayReferenceMeta,Int64,Type{VectorizationBase.PermutedDimsStridedPointer{(4, 2, 3, 1),(4, 2, 3, 1),Float64,VectorizationBase.PermutedDimsStridedPointer{(3, 1, 4, 2),(2, 4, 1, 3),Float64,VectorizationBase.PackedStridedPointer{Float64,3}}}},Symbol})
    precompile(Tuple{typeof(LoopVectorization.add_pow!),LoopVectorization.LoopSet,Symbol,Expr,Float64,Int64,Int64})
    precompile(Tuple{typeof(LoopVectorization.add_pow!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,Int64})
    precompile(Tuple{typeof(LoopVectorization.argmeta_and_consts_description),LoopVectorization.LoopSet,Vector{Symbol}})
    precompile(Tuple{typeof(LoopVectorization.array_reference_meta!),LoopVectorization.LoopSet,Symbol,SubArray{Any,1,Vector{Any},Tuple{UnitRange{Int64}},true},Int64,Nothing})
    precompile(Tuple{typeof(LoopVectorization.avx_loopset),Vector{LoopVectorization.Instruction},Vector{LoopVectorization.OperationStruct},Vector{LoopVectorization.ArrayRefStruct},Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Any})
    precompile(Tuple{typeof(LoopVectorization.check_macro_kwarg),Expr})
    precompile(Tuple{typeof(LoopVectorization.cost_vec_buf),LoopVectorization.LoopSet})
    precompile(Tuple{typeof(LoopVectorization.evaluate_cost_tile),LoopVectorization.LoopSet,Vector{Symbol},LoopVectorization.UnrollSymbols})
    precompile(Tuple{typeof(LoopVectorization.evaluate_cost_unroll),LoopVectorization.LoopSet,Vector{Symbol},Symbol,Float64})
    precompile(Tuple{typeof(LoopVectorization.generate_call),LoopVectorization.LoopSet,Tuple{Int8,Int8,Int8},Bool})
    precompile(Tuple{typeof(LoopVectorization.pushop!),LoopVectorization.LoopSet,LoopVectorization.Operation,Symbol})
    precompile(Tuple{typeof(LoopVectorization.reject_candidate),LoopVectorization.Operation,Symbol,Symbol})
    precompile(Tuple{typeof(LoopVectorization.stride_penalty),LoopVectorization.LoopSet,Vector{Symbol}})
    precompile(Tuple{typeof(LoopVectorization.substitute_broadcast),Expr,Symbol})
    precompile(Tuple{typeof(println),IOBuffer,Vector{LoopVectorization.Operation}})
    precompile(Tuple{typeof(push!),LoopVectorization.LoopSet,Expr,Int64,Int64})
end
