Remove transpose_rec (was unused): the whole cache-oblivious thing seems to be useless
This commit is contained in:
parent
5c6075c29d
commit
bfb2519aed
@ -19,24 +19,6 @@ def vtranspose{x & tuplen{x}==8 & type{tupsel{0,x}}==[8]i32 & hasarch{'X86_64'}}
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
fn transpose_rec{T}(rpo:*T, xpo:*T, w:u64, h:u64, wm:i64, hm:i64, scl:u64) : void = {
|
|
||||||
if (wm<=0 or hm<=0) return{}
|
|
||||||
|
|
||||||
if (scl==1) {
|
|
||||||
assert{T==u32}
|
|
||||||
def VT = [8]i32
|
|
||||||
def xvs = each{{i}=>load{*VT~~(xpo+i*w), 0}, iota{vcount{VT}}}
|
|
||||||
def rvs = vtranspose{xvs}
|
|
||||||
each{{i,v}=>store{*VT~~(rpo+i*h), 0, v}, iota{vcount{VT}}, rvs}
|
|
||||||
} else {
|
|
||||||
o:= (scl+1)>>1; s:= i64~~o
|
|
||||||
transpose_rec{T}(rpo , xpo , w, h, wm , hm , o)
|
|
||||||
transpose_rec{T}(rpo + o*8, xpo + o*8*w , w, h, wm , hm-s, o)
|
|
||||||
transpose_rec{T}(rpo + o*8*h , xpo + o*8, w, h, wm-s, hm , o)
|
|
||||||
transpose_rec{T}(rpo + o*8*h + o*8, xpo + o*8*w + o*8, w, h, wm-s, hm-s, o)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn transpose{T}(r0:*void, x0:*void, w:u64, h:u64) : void = {
|
fn transpose{T}(r0:*void, x0:*void, w:u64, h:u64) : void = {
|
||||||
rp:*T = *T~~r0
|
rp:*T = *T~~r0
|
||||||
xp:*T = *T~~x0
|
xp:*T = *T~~x0
|
||||||
@ -52,12 +34,8 @@ fn transpose{T}(r0:*void, x0:*void, w:u64, h:u64) : void = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# wm:= w/8
|
|
||||||
# hm:= h/8
|
|
||||||
# transpose_rec{T}(rp, xp, w, h, i64~~wm, i64~~hm, tern{wm>hm, wm, hm})
|
|
||||||
|
|
||||||
if (w%8) emit{void, 'base_transpose_u32', rp+h*(w-w%8), xp+ (w-w%8), w%8, h, w, h}
|
if (w%8) emit{void, 'base_transpose_u32', rp+h*(w-w%8), xp+ (w-w%8), w%8, h, w, h}
|
||||||
if (h%8) emit{void, 'base_transpose_u32', rp+ (h-h%8), xp+w*(h-h%8), w-w%8, h%8, w, h}
|
if (h%8) emit{void, 'base_transpose_u32', rp+ (h-h%8), xp+w*(h-h%8), w-w%8, h%8, w, h}
|
||||||
}
|
}
|
||||||
|
|
||||||
export{'simd_transpose_i32', transpose{u32}}
|
export{'simd_transpose_i32', transpose{u32}}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user