diff --git a/src/VectorizationBase.jl b/src/VectorizationBase.jl index 15f8dcc..16b594e 100644 --- a/src/VectorizationBase.jl +++ b/src/VectorizationBase.jl @@ -494,7 +494,23 @@ demoteint(::Type{Int64}, W::StaticInt) = gt(W, pick_vector_width(Int64)) end meta = Expr(:meta, :inline) if VERSION >= v"1.8.0-beta" - push!(meta.args, Expr(:purity, true, true, true, true, false)) + purity = Expr(:purity, + #= consistent =# true, + #= effect_free =# true, + #= nothrow =# true, + #= terminates_globally =# true, + #= terminates_locally =# false) + if VERSION >= v"1.11" + push!(purity.args, + #= notaskstate =# true, + #= inaccessiblememonly =# true, + #= noub =# true, + #= noub_if_noinbounds =# false, + #= consistent_overlay =# false, + #= nortcall =# true, + ) + end + push!(meta.args, purity) end quote $meta diff --git a/src/llvm_types.jl b/src/llvm_types.jl index 6ffedf8..266ceb2 100644 --- a/src/llvm_types.jl +++ b/src/llvm_types.jl @@ -279,6 +279,13 @@ end Expr(:purity, true, true, true, true, false) end VERSION >= v"1.9.0-DEV.1019" && push!(purity.args, true) + VERSION >= v"1.11" && push!(purity.args, + #= inaccessiblememonly =# true, + #= noub =# true, + #= noub_if_noinbounds =# false, + #= consistent_overlay =# false, + #= nortcall =# true, + ) Expr(:meta, purity, :inline) else Expr(:meta, :inline)