unroll non-overflowing dyarith loops for aarch64
This commit is contained in:
parent
afe6707654
commit
86c2aa7e2c
@ -140,10 +140,10 @@ def arithAAimpl{vw, mode, F, W, X, R, w, x, r, len} = {
|
|||||||
|
|
||||||
def run = runner{match{overflow, 0}, R, F}
|
def run = runner{match{overflow, 0}, R, F}
|
||||||
|
|
||||||
maskedLoop{bulk, len, {i, M} => {
|
muLoop{bulk, tern{(mode==0) & hasarch{'AARCH64'}, 2, 1}, len, {is, M} => {
|
||||||
cw:= loadBatch{*W~~w, i, ty_sc{W, TY}}
|
def cw = loadBatch{*W~~w, is, ty_sc{W, TY}}
|
||||||
cx:= loadBatch{*X~~x, i, ty_sc{X, TY}}
|
def cx = loadBatch{*X~~x, is, ty_sc{X, TY}}
|
||||||
storeBatch{*R~~r, i, TY~~run{F, {} => overflow{i}, M, cw, cx}, M}
|
storeBatch{*R~~r, is, each{{w1, x1} => TY~~run{F, {} => overflow{tupsel{0, is}}, M, w1, x1}, cw, cx}, M}
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user