Dedicated width-overflow loop for SIMD transpose
This commit is contained in:
parent
5a2bc15f2a
commit
699faea69c
@ -162,7 +162,10 @@ fn transpose{T, k, kh}(r0:*void, x0:*void, w:u64, h:u64) : void = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wo!=0 and we==w) { ws := w-wo; call_base{rp+h*ws, xp+ws, wo, h } }
|
if (we==w) @for(ws from w-wo to w) {
|
||||||
|
xpo:=xp+ws; rpo:=rp+h*ws
|
||||||
|
@for (i to h) store{rpo, i, load{xpo, w*i}}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def transpose{T, k} = transpose{T, k, k}
|
def transpose{T, k} = transpose{T, k, k}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user