Skip to content

Commit 63e5a8f

Browse files
committedAug 31, 2021
Correct compat, fixes #12
1 parent db1e16a commit 63e5a8f

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed
 

‎Project.toml

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "TriangularSolve"
22
uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf"
33
authors = ["chriselrod <elrodc@gmail.com> and contributors"]
4-
version = "0.1.4"
4+
version = "0.1.5"
55

66
[deps]
77
CloseOpenIntervals = "fb6a15b2-703c-40df-9091-08a04967cfa9"
@@ -18,13 +18,14 @@ CloseOpenIntervals = "0.1"
1818
IfElse = "0.1"
1919
LayoutPointers = "0.1.2"
2020
LoopVectorization = "0.12.30"
21-
Polyester = "0.3, 0.4"
21+
Polyester = "0.4"
2222
Static = "0.2, 0.3"
23-
VectorizationBase = "0.20, 0.21"
23+
VectorizationBase = "0.21"
2424
julia = "1.5"
2525

2626
[extras]
27+
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
2728
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
2829

2930
[targets]
30-
test = ["Test"]
31+
test = ["Aqua", "Test"]

‎src/TriangularSolve.jl

+12-8
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,14 @@ end
139139
end
140140
@inline store_small_kern!(spa, ::Nothing, v, spu, i, n, ::Val{false}) = vstore!(spa, v / vload(spu, (n,n)), i)
141141

142-
function BdivU_small_kern!(spa::AbstractStridedPointer{T}, sp, spb::AbstractStridedPointer{T}, spu::AbstractStridedPointer{T}, N, mask, ::Val{UNIT}) where {T,UNIT}
143-
W = VectorizationBase.pick_vector_width(T)
142+
function BdivU_small_kern!(spa::AbstractStridedPointer{T}, sp, spb::AbstractStridedPointer{T}, spu::AbstractStridedPointer{T}, N, mask::AbstractMask{W}, ::Val{UNIT}) where {T,UNIT,W}
143+
# W = VectorizationBase.pick_vector_width(T)
144144
for n CloseOpen(N)
145-
Amn = vload(spb, (MM(W, StaticInt(0)),n), mask)
145+
Amn = vload(spb, (MM{W}(StaticInt(0)),n), mask)
146146
for k SafeCloseOpen(n)
147-
Amn = vfnmadd_fast(vload(spa, (MM(W, StaticInt(0)),k), mask), vload(spu, (k,n)), Amn)
147+
Amn = vfnmadd_fast(vload(spa, (MM{W}(StaticInt(0)),k), mask), vload(spu, (k,n)), Amn)
148148
end
149-
store_small_kern!(spa, sp, Amn, spu, (MM(W, StaticInt(0)),n), n, mask, Val{UNIT}())
149+
store_small_kern!(spa, sp, Amn, spu, (MM{W}(StaticInt(0)),n), n, mask, Val{UNIT}())
150150
end
151151
end
152152
function BdivU_small_kern_u!(spa::AbstractStridedPointer{T}, sp, spb::AbstractStridedPointer{T}, spu::AbstractStridedPointer{T}, N, ::StaticInt{U}, ::Val{UNIT}) where {T,U,UNIT}
@@ -240,7 +240,7 @@ end
240240
end
241241
end
242242

243-
function rdiv_U!(spc::AbstractStridedPointer{T}, spa, spu, M, N, ::StaticInt{1}, ::Val{UNIT}) where {T,UNIT}
243+
function rdiv_U!(spc::AbstractStridedPointer{T}, spa::AbstractStridedPointer, spu::AbstractStridedPointer, M, N, ::StaticInt{1}, ::Val{UNIT}) where {T,UNIT}
244244
WS = pick_vector_width(T)
245245
W = Int(WS)
246246
UF = unroll_factor(WS)
@@ -291,8 +291,12 @@ const LDIVBUFFERS = Vector{UInt8}[]
291291
si = StrideIndex{2,(1,2),1}((VectorizationBase.static_sizeof(T), RSUF), (StaticInt(0),StaticInt(0)))
292292
stridedpointer(ptr, si, StaticInt{0}())
293293
end
294+
_canonicalize(x) = signed(x)
295+
_canonicalize(::StaticInt{N}) where {N} = StaticInt{N}()
294296
function div_dispatch!(C::AbstractMatrix{T}, A, U, ::Val{UNIT}, ::Val{THREAD}) where {UNIT,T,THREAD}
295-
M, N = size(A)
297+
_M, _N = size(A)
298+
M = _canonicalize(_M)
299+
N = _canonicalize(_N)
296300
((N == 0) | (M == 0)) && return nothing
297301
_spa, spap = stridedpointer_preserve(A)
298302
_spc, spcp = stridedpointer_preserve(C)
@@ -475,7 +479,7 @@ function unroll_factor(::StaticInt{W}) where {W}
475479
ifelse(Static.lt(num_blocks, StaticInt{1}()), StaticInt{1}(), num_blocks)
476480
end
477481

478-
function rdiv_U!(spc::AbstractStridedPointer{T}, spa, spu, M, N, ::StaticInt, ::Val{UNIT}) where {T,UNIT}
482+
function rdiv_U!(spc::AbstractStridedPointer{T}, spa::AbstractStridedPointer, spu::AbstractStridedPointer, M, N, ::StaticInt{var"#UNUSED#"}, ::Val{UNIT}) where {T,UNIT,var"#UNUSED#"}
479483
WS = pick_vector_width(T)
480484
W = Int(WS)
481485
UF = unroll_factor(WS)

‎test/runtests.jl

+4
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ end
2828
test_solve(Float32)
2929
end
3030
end
31+
32+
using Aqua
33+
Aqua.test_all(TriangularSolve)
34+

0 commit comments

Comments
 (0)