Skip to content

Commit e77b070

Browse files
committed
Prefetch in more cases.
1 parent 76bfeca commit e77b070

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "LoopVectorization"
22
uuid = "bdcacae8-1622-11e9-2a5c-532679323890"
33
authors = ["Chris Elrod <elrodc@gmail.com>"]
4-
version = "0.8.10"
4+
version = "0.8.11"
55

66
[deps]
77
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"

src/lower_load.jl

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ end
6767
function prefetchisagoodidea(ls::LoopSet, op::Operation, td::UnrollArgs)
6868
# return false
6969
@unpack u₁, u₁loopsym, u₂loopsym, vectorized, u₂max, suffix = td
70+
length(loopdependencies(op)) 1 && return 0
7071
vectorized loopdependencies(op) || return 0
7172
u₂loopsym === Symbol("##undefined##") && return 0
7273
dontskip = (VectorizationBase.CACHELINE_SIZE ÷ VectorizationBase.REGISTER_SIZE) - 1
@@ -78,7 +79,7 @@ function prefetchisagoodidea(ls::LoopSet, op::Operation, td::UnrollArgs)
7879
loopedindex = op.ref.loopedindex
7980
if length(loopedindex) > 1 && first(loopedindex)
8081
indices = getindices(op)
81-
if first(indices) === vectorized && last(indices) === innermostloopsym
82+
if first(indices) === vectorized && first(indices) !== innermostloopsym
8283
# We want at least 4 reuses per load
8384
uses = ifelse(isu₁unrolled(op), 1, u₁)
8485
uses = ifelse(isu₂unrolled(op), uses, uses * u₂max)

0 commit comments

Comments
 (0)