@@ -326,22 +326,26 @@ function add_compute_ifelse!(
326
326
end
327
327
vparents = Operation[cond, iffalse]
328
328
setdiffv! (reduceddeps, deps, loopdependencies (iftrue))
329
- add_reduction_update_parent! (
330
- vparents, deps, reduceddeps, ls,
331
- iftrue, Instruction (:LoopVectorization ,:ifelse ), 2 , elementbytes
332
- )
329
+ if any (in (deps), reduceddeps)
330
+ return add_reduction_update_parent! (
331
+ vparents, deps, reduceddeps, ls,
332
+ iftrue, Instruction (:LoopVectorization ,:ifelse ), 2 , elementbytes
333
+ )
334
+ end
333
335
elseif name (iffalse) === LHS
334
336
vparents = Operation[cond, iftrue]
335
337
setdiffv! (reduceddeps, deps, loopdependencies (iffalse))
336
- add_reduction_update_parent! (
337
- vparents, deps, reduceddeps, ls,
338
- iffalse, Instruction (:LoopVectorization ,:ifelse ), 3 , elementbytes
339
- )
340
- else
341
- vparents = Operation[cond, iftrue, iffalse]
342
- op = Operation (length (operations (ls)), LHS, elementbytes, :ifelse , compute, deps, reduceddeps, vparents)
343
- pushop! (ls, op, LHS)
338
+ if any (in (deps), reduceddeps)
339
+ return add_reduction_update_parent! (
340
+ vparents, deps, reduceddeps, ls,
341
+ iffalse, Instruction (:LoopVectorization ,:ifelse ), 3 , elementbytes
342
+ )
343
+ end
344
344
end
345
+ vparents = Operation[cond, iftrue, iffalse]
346
+ op = Operation (length (operations (ls)), LHS, elementbytes, :ifelse , compute, deps, reduceddeps, vparents)
347
+ pushop! (ls, op, LHS)
348
+
345
349
end
346
350
347
351
# adds x ^ (p::Real)
0 commit comments