@@ -93,15 +93,16 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
9393 mul! (b,At,c,1.0 ,2.0 )
9494 @test b ≈ 5 A' c
9595
96+ expected_transpose_allocs = VERSION < v " 1.5" ? 1 : 0
9697 @test_noalloc mul! (c,A,b)
9798 bmark = @benchmark mul! ($ c,$ A,$ b,$ α,$ β) samples= 10 evals= 10
9899 @test minimum (bmark). allocs == 0
99100 # @test_noalloc mul!(c, A, b, α, β) # records 32 bytes
100101 bmark = @benchmark mul! ($ b,Transpose ($ A),$ c) samples= 10 evals= 10
101- @test minimum (bmark). allocs == 0
102+ @test minimum (bmark). allocs <= expected_transpose_allocs
102103 # @test_noalloc mul!(b, Transpose(A), c) # records 16 bytes
103104 bmark = @benchmark mul! ($ b,Transpose ($ A),$ c,$ α,$ β) samples= 10 evals= 10
104- @test minimum (bmark). allocs == 0
105+ @test minimum (bmark). allocs <= expected_transpose_allocs
105106 # @test_noalloc mul!(b, Transpose(A), c, α, β) # records 48 bytes
106107
107108 # outer product
@@ -116,7 +117,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
116117 @test C ≈ 3 a* b'
117118
118119 b = @benchmark mul! ($ C,$ a,$ b' ) samples= 10 evals= 10
119- @test minimum (b). allocs == 0
120+ @test minimum (b). allocs <= expected_transpose_allocs
120121 # @test_noalloc mul!(C, a, b') # records 16 bytes
121122
122123 # A × B
@@ -144,7 +145,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
144145 @test B ≈ 4 A' C
145146
146147 b = @benchmark mul! ($ B,Transpose ($ A),$ C,$ α,$ β) samples= 10 evals= 10
147- @test minimum (b). allocs == 0
148+ @test minimum (b). allocs <= expected_transpose_allocs
148149 # @test_noalloc mul!(B, Transpose(A), C, α, β) # records 48 bytes
149150
150151 # A*B'
@@ -157,7 +158,7 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
157158 @test C ≈ 4 A* B'
158159
159160 b = @benchmark mul! ($ C,$ A,Transpose ($ B),$ α,$ β) samples= 10 evals= 10
160- @test minimum (b). allocs == 0
161+ @test minimum (b). allocs <= expected_transpose_allocs
161162 # @test_noalloc mul!(C, A, Transpose(B), α, β) # records 48 bytes
162163
163164 # A'B'
@@ -171,15 +172,15 @@ function test_multiply_add(N1,N2,ArrayType=MArray)
171172 @test C ≈ 4 A' B'
172173
173174 b = @benchmark mul! ($ C,Transpose ($ A),Transpose ($ B),$ α,$ β) samples= 10 evals= 10
174- @test minimum (b). allocs == 0
175+ @test minimum (b). allocs <= 2 * expected_transpose_allocs
175176 # @test_noalloc mul!(C, Transpose(A), Transpose(B), α, β) # records 64 bytes
176177
177178 # Transpose Output
178179 C = rand (Mat{N1,N2})
179180 mul! (Transpose (C),Transpose (A),Transpose (B))
180181 @test C' ≈ A' B'
181182 b = @benchmark mul! (Transpose ($ C),Transpose ($ A),Transpose ($ B),$ α,$ β) samples= 10 evals= 10
182- @test minimum (b). allocs == 0
183+ @test minimum (b). allocs <= expected_transpose_allocs * 3
183184 # @test_noalloc mul!(Transpose(C), Transpose(A), Transpose(B), α, β) # records 80 bytes
184185end
185186
0 commit comments