Skip to content

Commit e5856fe

Browse files
committed
Use Aqua in tests and fix a few ambiguities.
1 parent f07b9fd commit e5856fe

File tree

8 files changed

+22
-20
lines changed

8 files changed

+22
-20
lines changed

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ VectorizationBase = "0.14.10"
2424
julia = "1.5"
2525

2626
[extras]
27+
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
2728
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
2829
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
2930
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
3031

3132
[targets]
32-
test = ["InteractiveUtils", "Random", "Test"]
33+
test = ["Aqua", "InteractiveUtils", "Random", "Test"]

src/LoopVectorization.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import LinearAlgebra # for check_args
3333
using Base.FastMath: add_fast, sub_fast, mul_fast, div_fast
3434

3535
using ArrayInterface
36-
using ArrayInterface: OptionallyStaticUnitRange, Zero, One, static_length
36+
using ArrayInterface: OptionallyStaticUnitRange, Zero, One#, static_length
3737
const Static = ArrayInterface.StaticInt
3838

3939

src/broadcast.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ function add_broadcast_loops!(ls::LoopSet, loopsyms::Vector{Symbol}, destsym::Sy
349349
push!(axes_tuple.args, Nrange)
350350
pushpreamble!(ls, Expr(:(=), Nlower, Expr(:call, lv(:maybestaticfirst), Nrange)))
351351
pushpreamble!(ls, Expr(:(=), Nupper, Expr(:call, lv(:maybestaticlast), Nrange)))
352-
pushpreamble!(ls, Expr(:(=), Nlen, Expr(:call, lv(:static_length), Nrange)))
352+
pushpreamble!(ls, Expr(:(=), Nlen, Expr(:call, lv(:maybestaticlength), Nrange)))
353353
end
354354
end
355355
# size of dest determines loops
@@ -421,7 +421,7 @@ end
421421
end
422422
@inline function vmaterialize!(
423423
dest′::Union{Adjoint{T,A},Transpose{T,A}}, bc::Broadcasted{Base.Broadcast.DefaultArrayStyle{0},Nothing,typeof(identity),Tuple{T2}}, ::Val{Mod}
424-
) where {T <: NativeTypes, N, A <: AbstractArray{T,N}, T2 <: NativeTypes, Mod}
424+
) where {T <: NativeTypes, N, A <: AbstractArray{T,N}, T2 <: Number, Mod}
425425
arg = T(first(bc.args))
426426
dest = parent(dest′)
427427
@avx for i eachindex(dest)

src/graphs.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -512,20 +512,20 @@ function range_loop!(ls::LoopSet, r::Expr, itersym::Symbol)::Loop
512512
pushprepreamble!(ls, Expr(:(=), rangename, Expr(:call, :(:), staticexpr(liiv), supper)))
513513
Loop(itersym, liiv, supper, rangename, lenname)
514514
end
515-
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:static_length), rangename)))
515+
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:maybestaticlength), rangename)))
516516
elseif uii # only upper bound is an integer
517517
uiiv = convert(Int, upper::Integer)::Int
518518
rangename = gensym!(ls, "range"); lenname = gensym!(ls, "length")
519519
slower = add_loop_bound!(ls, itersym, lower, false)
520520
pushprepreamble!(ls, Expr(:(=), rangename, Expr(:call, :(:), slower, staticexpr(uiiv))))
521521
loop = Loop(itersym, slower, uiiv, rangename, lenname)
522-
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:static_length), rangename)))
522+
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:maybestaticlength), rangename)))
523523
else # neither are integers
524524
L = add_loop_bound!(ls, itersym, lower, false)
525525
U = add_loop_bound!(ls, itersym, upper, true)
526526
rangename = gensym!(ls, "range"); lenname = gensym!(ls, "length")
527527
pushprepreamble!(ls, Expr(:(=), rangename, Expr(:call, :(:), L, U)))
528-
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:static_length), rangename)))
528+
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:maybestaticlength), rangename)))
529529
loop = Loop(itersym, L, U, rangename, lenname)
530530
end
531531
loop
@@ -547,7 +547,7 @@ end
547547
function misc_loop!(ls::LoopSet, r::Union{Expr,Symbol}, itersym::Symbol)::Loop
548548
rangename = gensym!(ls, "looprange" * string(itersym)); lenname = gensym!(ls, "looplen" * string(itersym));
549549
pushprepreamble!(ls, Expr(:(=), rangename, Expr(:call, lv(:canonicalize_range), static_literals!(r))))
550-
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:static_length), rangename)))
550+
pushprepreamble!(ls, Expr(:(=), lenname, Expr(:call, lv(:maybestaticlength), rangename)))
551551
L = add_loop_bound!(ls, itersym, Expr(:call, lv(:maybestaticfirst), rangename), false)
552552
U = add_loop_bound!(ls, itersym, Expr(:call, lv(:maybestaticlast), rangename), true)
553553
Loop(itersym, L, U, rangename, lenname)

src/mapreduce.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
@inline vreduce(::typeof(*), v::VectorizationBase.AbstractSIMDVector) = vprod(v)
44
@inline vreduce(::typeof(max), v::VectorizationBase.AbstractSIMDVector) = vmaximum(v)
55
@inline vreduce(::typeof(min), v::VectorizationBase.AbstractSIMDVector) = vminimum(v)
6-
@inline vreduce(op, v::VectorizationBase.AbstractSIMDVector) = _vreduce(op, v)
7-
@inline _vreduce(op, v::VectorizationBase.AbstractSIMDVector) = _reduce(op, Vec(v))
8-
_vreduce(op, v::Vec{1}) = VectorizationBase.extractelement(v, 0)
9-
@inline function _vreduce(op, v::Vec{W}) where {W}
6+
@inline vreduce(op, v::VectorizationBase.AbstractSIMDVector) = vec_vreduce(op, v)
7+
@inline vec_reduce(op, v::VectorizationBase.AbstractSIMDVector) = vec_reduce(op, Vec(v))
8+
vec_vreduce(op, v::Vec{1}) = VectorizationBase.extractelement(v, 0)
9+
@inline function vec_vreduce(op, v::Vec{W}) where {W}
1010
a = op(VectorizationBase.extractelement(v,0), VectorizationBase.extractelement(v, 1))
1111
for i 2:W-1
1212
a = op(a, VectorizationBase.extractelement(v, i))

src/operations.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ Base.:(==)(x::ArrayReferenceMeta, y::ArrayReferenceMeta) = (x.ptr === y.ptr) &&
7575
# Errors preferable than silently working?
7676
Base.:(==)(x::ArrayReference, y::ArrayReferenceMeta) = x == y.ref
7777
Base.:(==)(x::ArrayReferenceMeta, y::ArrayReference) = x.ref == y
78-
Base.:(==)(x::ArrayReference, y) = false
79-
Base.:(==)(x::ArrayReferenceMeta, y) = false
78+
# Base.:(==)(x::ArrayReference, y) = false
79+
# Base.:(==)(x::ArrayReferenceMeta, y) = false
8080

8181
abstract type AbstractLoopOperation end
8282

src/reconstruct_loopset.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ function Loop(ls::LoopSet, ex::Expr, sym::Symbol, ::Type{<:AbstractUnitRange})
66
pushpreamble!(ls, Expr(:(=), loopsym, ex))
77
pushpreamble!(ls, Expr(:(=), start, Expr(:call, lv(:first), loopsym)))
88
pushpreamble!(ls, Expr(:(=), stop, Expr(:call, lv(:last), loopsym)))
9-
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:static_length), loopsym)))
9+
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:maybestaticlength), loopsym)))
1010
loop = Loop(sym, 1, 1024, start, stop, loopsym, lensym, false, false)::Loop
1111
pushpreamble!(ls, loopiteratesatleastonce(loop))
1212
loop
@@ -17,7 +17,7 @@ function add_static_upper_loop!(ls::LoopSet, ex::Expr, sym::Symbol, U::Int)
1717
start = gensym(ssym*"_loopstart"); loopsym = gensym(ssym * "_loop"); lensym = gensym(ssym * "_looplen")
1818
pushpreamble!(ls, Expr(:(=), loopsym, ex))
1919
pushpreamble!(ls, Expr(:(=), start, Expr(:call, lv(:first), loopsym)))
20-
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:static_length), loopsym)))
20+
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:maybestaticlength), loopsym)))
2121
loop = Loop(sym, U - 1023, U, start, Symbol(""), loopsym, lensym, false, true)::Loop
2222
pushpreamble!(ls, loopiteratesatleastonce(loop))
2323
loop
@@ -27,7 +27,7 @@ function add_static_lower_loop!(ls::LoopSet, ex::Expr, sym::Symbol, L::Int)
2727
stop = gensym(ssym*"_loopstop"); loopsym = gensym(ssym * "_loop"); lensym = gensym(ssym * "_looplen")
2828
pushpreamble!(ls, Expr(:(=), loopsym, ex))
2929
pushpreamble!(ls, Expr(:(=), stop, Expr(:call, lv(:last), loopsym)))
30-
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:static_length), loopsym)))
30+
pushpreamble!(ls, Expr(:(=), lensym, Expr(:call, lv(:maybestaticlength), loopsym)))
3131
loop = Loop(sym, L, L + 1023, Symbol(""), stop, loopsym, lensym, true, false)::Loop
3232
pushpreamble!(ls, loopiteratesatleastonce(loop))
3333
loop

test/runtests.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Test
1+
using Test, Aqua
22
using LoopVectorization
33

44
using LinearAlgebra
@@ -37,8 +37,9 @@ const RUN_SLOW_TESTS = LoopVectorization.REGISTER_COUNT ≤ 16 || !parse(Bool, g
3737
@show RUN_SLOW_TESTS
3838

3939
@time @testset "LoopVectorization.jl" begin
40-
41-
@test isempty(detect_unbound_args(LoopVectorization))
40+
41+
Aqua.test_all(LoopVectorization)
42+
# @test isempty(detect_unbound_args(LoopVectorization))
4243

4344
@time include("printmethods.jl")
4445

0 commit comments

Comments
 (0)