use mutating assignment
This commit is contained in:
parent
07d4567a52
commit
ce45d487a3
@ -81,7 +81,7 @@ def for{vars,begin,end,block} = {
|
|||||||
i:u64 = begin
|
i:u64 = begin
|
||||||
while (i < end) {
|
while (i < end) {
|
||||||
exec{i, vars, block}
|
exec{i, vars, block}
|
||||||
i = i+1
|
++i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
def forNZ{vars,begin,end,block} = {
|
def forNZ{vars,begin,end,block} = {
|
||||||
@ -89,7 +89,7 @@ def forNZ{vars,begin,end,block} = {
|
|||||||
assert{i!=end}
|
assert{i!=end}
|
||||||
while (i < end) {
|
while (i < end) {
|
||||||
exec{i, vars, block}
|
exec{i, vars, block}
|
||||||
i = i+1
|
++i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,8 +19,8 @@ def b_setBatch{sz, x:*u64, n:(Size), v} = {
|
|||||||
am:u64 = 64/sz;
|
am:u64 = 64/sz;
|
||||||
w:u64 = load{x,n/am}
|
w:u64 = load{x,n/am}
|
||||||
sh:u64 = (n&(am-1)) * sz
|
sh:u64 = (n&(am-1)) * sz
|
||||||
w = w & ~(ones{u64,sz}<<sh)
|
w&= ~(ones{u64,sz}<<sh)
|
||||||
w = w | (vc<<sh)
|
w|= (vc<<sh)
|
||||||
store{x, n/am, w}
|
store{x, n/am, w}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,16 +29,16 @@ def b_setBatch{sz, x:*u64, n:(Size), v & sz==4} = {
|
|||||||
|
|
||||||
#w:u64 = cast_i{u64, load{x8,n/2}}
|
#w:u64 = cast_i{u64, load{x8,n/2}}
|
||||||
#sh:u64 = (n&1) * 4
|
#sh:u64 = (n&1) * 4
|
||||||
#w = w & ~(15<<sh)
|
#w&= ~(15<<sh)
|
||||||
#w = w | (cast_i{u64,v}<<sh)
|
#w|= (cast_i{u64,v}<<sh)
|
||||||
|
|
||||||
w:u8 = load{x8,n/2}
|
w:u8 = load{x8,n/2}
|
||||||
if ((n&1)==1) {
|
if ((n&1)==1) {
|
||||||
w = w & ~(cast{u8,15}<<4)
|
w&= ~(cast{u8,15}<<4)
|
||||||
w = w | (cast_i{u8,v}<<4)
|
w|= (cast_i{u8,v}<<4)
|
||||||
} else {
|
} else {
|
||||||
w = w & ~(cast{u8,15})
|
w&= ~(cast{u8,15})
|
||||||
w = w | (cast_i{u8,v}<<0)
|
w|= (cast_i{u8,v}<<0)
|
||||||
}
|
}
|
||||||
|
|
||||||
store{x8, n/2, cast_i{u8,w}}
|
store{x8, n/2, cast_i{u8,w}}
|
||||||
|
|||||||
@ -67,10 +67,10 @@ def any2bit{VT, unr, op, wS, wV, xS, xV, dst:*u64, len:(Size)} = {
|
|||||||
assert{am>0}
|
assert{am>0}
|
||||||
while (ri < am) {
|
while (ri < am) {
|
||||||
r:u64 = 0
|
r:u64 = 0
|
||||||
@unroll (j to unr) r = r | (promote{u64, getmask{op{wV{xi+j}, xV{xi+j}}}} << (j*vcount{VT}))
|
@unroll (j to unr) r|= promote{u64, getmask{op{wV{xi+j}, xV{xi+j}}}} << (j*vcount{VT})
|
||||||
b_setBatch{bulk, dst, ri, r}
|
b_setBatch{bulk, dst, ri, r}
|
||||||
xi = xi+unr
|
xi+= unr
|
||||||
ri = ri+1
|
ri+= 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
aa2bit{VT, unr, op}(dst:*u64, wr:*void, xr:*void, len:Size) : void = {
|
aa2bit{VT, unr, op}(dst:*u64, wr:*void, xr:*void, len:Size) : void = {
|
||||||
|
|||||||
@ -93,7 +93,7 @@ def maskedLoopPositive{bulk, l:L, step} = {
|
|||||||
i:L = 0
|
i:L = 0
|
||||||
while(i < (l-1)/bulk) {
|
while(i < (l-1)/bulk) {
|
||||||
step{i, maskNone}
|
step{i, maskNone}
|
||||||
i = i + 1
|
++i
|
||||||
}
|
}
|
||||||
step{i, maskAfter{l - i*bulk}}
|
step{i, maskAfter{l - i*bulk}}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user