@@ -151,20 +151,25 @@ using LoopVectorization, OffsetArrays, Test
151
151
H
152
152
end
153
153
154
- function issue ! (output, input, idx)
154
+ function issue279 ! (output, input, idx)
155
155
@turbo for j in axes (output, 2 ), i in axes (output, 1 )
156
156
output[i, j, idx] = input[1 , 1 , i, j, idx]
157
157
end
158
158
output
159
159
end
160
160
161
- function issue_plain ! (output, input, idx)
161
+ function issue279_plain ! (output, input, idx)
162
162
for j in axes (output, 2 ), i in axes (output, 1 )
163
163
output[i, j, idx] = input[1 , 1 , i, j, idx]
164
164
end
165
165
output
166
166
end
167
-
167
+ function issue280! (dest, src)
168
+ @turbo for i in indices ((dest, src), (2 , 2 ))
169
+ dest[1 , i] = src[2 , i]
170
+ dest[2 , i] = src[1 , i]
171
+ end
172
+ end
168
173
169
174
for T ∈ (Float32, Float64, Int32, Int64)
170
175
@show T, @__LINE__
@@ -250,7 +255,16 @@ using LoopVectorization, OffsetArrays, Test
250
255
251
256
input = rand (R, 2 , 2 , 5 , 5 , 1 ); output = Array {T} (undef, size (input)[3 : end ]. .. ); output_plain = similar (output);
252
257
253
- @test issue ! (output, input, 1 ) ≈ issue_plain ! (output_plain, input, 1 )
258
+ @test issue279 ! (output, input, 1 ) ≈ issue279_plain ! (output_plain, input, 1 )
254
259
260
+ src = rand (R, 2 , 17 ); dest = similar (src);
261
+ issue280! (dest, src)
262
+ @test dest ≈ vcat (view (src,2 ,:)' ,view (src,1 ,:)' )
263
+ if VERSION ≥ v " 1.6"
264
+ src2 = reinterpret (reshape,R,Vector {Tuple{T,T}} (undef, 17 )); src2 .= src;
265
+ dest2 = reinterpret (reshape,R,Vector {Tuple{T,T}} (undef, 17 ));
266
+ issue280! (dest2, src2)
267
+ @test dest2 ≈ vcat (view (src,2 ,:)' ,view (src,1 ,:)' )
268
+ end
255
269
end
256
270
end
0 commit comments