Skip to content

Commit a09be85

Browse files
committed
Define vmaterialize!(dest, ::Product).
1 parent 8d6d8d9 commit a09be85

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/broadcast.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ end
247247
# function vmaterialize!(
248248
@generated function vmaterialize!(
249249
dest::StridedArray{T,N}, bc::BC, ::Val{Mod}
250-
) where {T <: NativeTypes, N, BC <: Broadcasted, Mod}
250+
) where {T <: NativeTypes, N, BC <: Union{Broadcasted,Product}, Mod}
251251
# we have an N dimensional loop.
252252
# need to construct the LoopSet
253253
# @show typeof(dest)
@@ -277,7 +277,7 @@ end
277277
end
278278
@generated function vmaterialize!(
279279
dest′::Union{Adjoint{T,A},Transpose{T,A}}, bc::BC, ::Val{Mod}
280-
) where {T <: NativeTypes, N, A <: StridedArray{T,N}, BC <: Broadcasted, Mod}
280+
) where {T <: NativeTypes, N, A <: StridedArray{T,N}, BC <: Union{Broadcasted,Product}, Mod}
281281
# we have an N dimensional loop.
282282
# need to construct the LoopSet
283283
loopsyms = [gensym(:n) for n 1:N]

test/broadcast.jl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,19 @@
7878
A = rand(R,M,K); B = rand(R,K,N); C = rand(R,M,N);
7979
At = copy(A');
8080
D1 = C .+ A * B;
81-
D2 = @avx C .+ A *ˡ B;
81+
D2 = @avx C .+ A .*ˡ B;
8282
@test D1 D2
83-
fill!(D2, -999999); D2 = @avx C .+ At' *ˡ B;
83+
fill!(D2, -999999); D2 = @avx C .+ At' .*ˡ B;
8484
@test D1 D2
85+
fill!(D2, -999999); @test A * B (@. D2 = A *ˡ B)
8586
D1 .= view(C, 1, :)' .+ A * B;
8687
fill!(D2, -999999);
87-
@avx D2 .= view(C, 1, :)' .+ A *ˡ B;
88+
@avx D2 .= view(C, 1, :)' .+ A .*ˡ B;
8889
@test D1 D2
8990
C3d = rand(R,3,M,N);
9091
D1 .= view(C3d, 1, :, :) .+ A * B;
9192
fill!(D2, -999999);
92-
@avx D2 .= view(C3d, 1, :, :) .+ A *ˡ B;
93+
@avx D2 .= view(C3d, 1, :, :) .+ A .*ˡ B;
9394
@test D1 D2
9495

9596
D1 .= 9999;

0 commit comments

Comments
 (0)