@@ -4,12 +4,16 @@ using Test
4
4
5
5
@testset " Miscellaneous" begin
6
6
7
- Unum, Tnum = LoopVectorization. VectorizationBase. REGISTER_COUNT == 16 ? (3 , 3 ) : (4 , 4 )
7
+ Unum, Tnum = LoopVectorization. VectorizationBase. REGISTER_COUNT == 16 ? (3 , 4 ) : (4 , 4 )
8
8
dot3q = :(for m ∈ 1 : M, n ∈ 1 : N
9
9
s += x[m] * A[m,n] * y[n]
10
10
end );
11
11
lsdot3 = LoopVectorization. LoopSet (dot3q);
12
- @test LoopVectorization. choose_order (lsdot3) == ([:n , :m ], :n , :m , :m , Unum, Tnum)# &-2
12
+ if LoopVectorization. VectorizationBase. REGISTER_COUNT == 32
13
+ @test LoopVectorization. choose_order (lsdot3) == ([:n , :m ], :n , :m , :m , Unum, Tnum)# &-2
14
+ else
15
+ @test LoopVectorization. choose_order (lsdot3) == ([:n , :m ], :m , :n , :m , Unum, Tnum)# &-2
16
+ end
13
17
14
18
@static if VERSION < v " 1.4"
15
19
dot3 (x, A, y) = dot (x, A * y)
@@ -57,7 +61,11 @@ using Test
57
61
B[j,i] = A[j,i] - x[j]
58
62
end )
59
63
lssubcol = LoopVectorization. LoopSet (subcolq);
60
- @test LoopVectorization. choose_order (lssubcol) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
64
+ if LoopVectorization. VectorizationBase. REGISTER_COUNT == 32
65
+ @test LoopVectorization. choose_order (lssubcol) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
66
+ else
67
+ @test LoopVectorization. choose_order (lssubcol) == ([:j , :i ], :j , :i , :j , 3 , 4 )# &-2
68
+ end
61
69
# # @avx is SLOWER!!!!
62
70
# # need to fix!
63
71
function mysubcol! (B, A, x)
@@ -82,8 +90,11 @@ using Test
82
90
x[j] += A[j,i] - 0.25
83
91
end )
84
92
lscolsum = LoopVectorization. LoopSet (colsumq);
85
- @test LoopVectorization. choose_order (lscolsum) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
86
-
93
+ if LoopVectorization. VectorizationBase. REGISTER_COUNT == 32
94
+ @test LoopVectorization. choose_order (lscolsum) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
95
+ else
96
+ @test LoopVectorization. choose_order (lscolsum) == (Symbol[:j ,:i ], :j , :i , :j , 3 , 4 )
97
+ end
87
98
# my colsum is wrong (by 0.25), but slightly more interesting
88
99
function mycolsum! (x, A)
89
100
@. x = 0
@@ -119,8 +130,12 @@ using Test
119
130
lsvar = LoopVectorization. LoopSet (varq);
120
131
# LoopVectorization.choose_order(lsvar)
121
132
# @test LoopVectorization.choose_order(lscolsum) == (Symbol[:j,:i], :j, Symbol("##undefined##"), :j, 4, -1)
122
- @test LoopVectorization. choose_order (lsvar) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
123
-
133
+ if LoopVectorization. VectorizationBase. REGISTER_COUNT == 32
134
+ @test LoopVectorization. choose_order (lsvar) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 6 )
135
+ else
136
+ @test LoopVectorization. choose_order (lsvar) == (Symbol[:j ,:i ], :j , :i , :j , 4 , 4 )
137
+ end
138
+
124
139
function myvar! (s², A, x̄)
125
140
@. s² = 0
126
141
@inbounds for i ∈ 1 : size (A,2 )
0 commit comments