You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@assert AV ==-1#FIXME: these asserts should be replaced with checks that prevent using `unrolled_curly` in these cases (also to be reflected in cost modeling, to avoid those)
AU ==-1&&throw(LoopError("Failed to find $(u₁loopsym) in args of $(repr(op))."))
221
-
vecnotunrolled = AU != AV
222
-
conditional_memory_op =isconditionalmemop(op)
223
-
if mask || conditional_memory_op
224
-
M =one(UInt)
225
-
# `isu₁unrolled(last(parents(op)))` === is condop unrolled?
226
-
# isu₁unrolled(last(parents(op)))
227
-
if vecnotunrolled || conditional_memory_op || (interleave >0) # mask all
228
-
M = (M << u₁) - M
229
-
else# mask last
230
-
M <<= (u₁ -1)
188
+
u₁loopsym = u₁loop.itersymbol
189
+
vloopsym = vloop.itersymbol
190
+
indices =getindicesonly(op)
191
+
vstep =step(vloop)
192
+
li = op.ref.loopedindex
193
+
# @assert all(loopedindex)
194
+
# @unpack u₁, u₁loopsym, vloopsym = td
195
+
AV = AU =-1
196
+
for (n,ind) ∈enumerate(indices)
197
+
# @show AU, op, n, ind, vloopsym, u₁loopsym
198
+
if li[n]
199
+
if ind === vloopsym
200
+
@assert AV ==-1#FIXME: these asserts should be replaced with checks that prevent using `unrolled_curly` in these cases (also to be reflected in cost modeling, to avoid those)
201
+
AV = n
202
+
end
203
+
if ind === u₁loopsym
204
+
if AU ≠-1
205
+
u₁loopsym === CONSTANTZEROINDEX &&continue
206
+
throw(ArgumentError("Two of the same index $ind?"))
0 commit comments