Skip to content

Commit 263df7b

Browse files
committed
Fixes for PermutedDimsArrays.
1 parent 88e96c9 commit 263df7b

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "LoopVectorization"
22
uuid = "bdcacae8-1622-11e9-2a5c-532679323890"
33
authors = ["Chris Elrod <[email protected]>"]
4-
version = "0.8.17"
4+
version = "0.8.18"
55

66
[deps]
77
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
@@ -18,7 +18,7 @@ OffsetArrays = "1"
1818
SIMDPirates = "0.8.16"
1919
SLEEFPirates = "0.5.4"
2020
UnPack = "0,1"
21-
VectorizationBase = "0.12.15"
21+
VectorizationBase = "0.12.24"
2222
julia = "1.1"
2323

2424
[extras]

src/reconstruct_loopset.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,18 +138,18 @@ function add_mref!(
138138
ls::LoopSet, ar::ArrayReferenceMeta, i::Int, ::Type{S}, name
139139
) where {S1, S2, T, P, S <: VectorizationBase.PermutedDimsStridedPointer{S1,S2,T,P}}
140140
gensymname = gensym(name)
141-
add_mref!(ls, ar, i, P, gensymname)
142-
pushpreamble!(ls, Expr(:(=), name, Expr(:(.), gensymname, QuoteNode(:ptr))))
143141
li = ar.loopedindex; inds = getindices(ar)
144142
lib = similar(li); indsb = similar(inds)
145143
for i eachindex(li, inds)
146144
lib[i] = li[i]
147145
indsb[i] = inds[i]
148146
end
149147
for i eachindex(li, inds)
150-
li[i] = lib[S1[i]]
151-
inds[i] = indsb[S1[i]]
148+
li[i] = lib[S2[i]]
149+
inds[i] = indsb[S2[i]]
152150
end
151+
add_mref!(ls, ar, i, P, gensymname)
152+
pushpreamble!(ls, Expr(:(=), name, Expr(:(.), gensymname, QuoteNode(:ptr))))
153153
end
154154
function add_mref!(
155155
ls::LoopSet, ar::ArrayReferenceMeta, i::Int, ::Type{OffsetStridedPointer{T,N,P}}, name

test/arraywrappers.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ using LoopVectorization, Test#, OffsetArrays
2424

2525
A = rand(12,13,14,15);
2626
pA = PermutedDimsArray(A, (3,1,4,2));
27+
@test addone!(similar(pA), pA) == pA .+ 1
2728
ppA = PermutedDimsArray(pA, (4,2,3,1));
2829
@test LoopVectorization.check_args(ppA)
2930
@test addone!(similar(ppA), ppA) == ppA .+ 1

test/tensors.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ function contracttest1!(tiJaB_d_temp3, tiJaB_i, Wmnij)
2828
tiJaB_d_temp3[j,i,b,a] = temp
2929
end
3030
end
31+
tiJaB_d_temp3
3132
end
3233
function contracttest2!(tiJaB_d_temp3, tiJaB_i, Wmnij)
3334
rvir = axes(tiJaB_d_temp3, 4)
@@ -43,6 +44,7 @@ function contracttest2!(tiJaB_d_temp3, tiJaB_i, Wmnij)
4344
tiJaB_d_temp3[j,i,b,a] = temp
4445
end
4546
end
47+
tiJaB_d_temp3
4648
end
4749

4850
@testset "Tensors" begin
@@ -58,11 +60,13 @@ end
5860
# C2 = similar(C1); C3 = similar(C1);
5961

6062
contract!(C1, A, B)
61-
contracttest1!(C2, A, B)
62-
contracttest2!(C3, A, B)
63+
@test C1 contracttest1!(C2, A, B)
64+
@test C1 contracttest2!(C3, A, B)
6365

64-
@test C1 C2
65-
@test C1 C3
66+
Apermute = PermutedDimsArray(permutedims(A, (2,4,1,3)), (3,1,4,2));
67+
Bpermute = PermutedDimsArray(permutedims(B, (2,1,4,3)), (2,1,4,3));
68+
@test C1 contracttest1!(C2, Apermute, Bpermute)
69+
@test C1 contracttest2!(C3, Apermute, Bpermute)
6670
end
6771

6872

0 commit comments

Comments
 (0)