remove unnecessary lambda wrappers

also use fmtnat
This commit is contained in:
dzaima 2023-07-22 17:58:34 +03:00
parent cc160910a2
commit 033f3de6b9
4 changed files with 10 additions and 13 deletions

View File

@ -106,10 +106,10 @@ def genchk{B, F} = {
def r{T & ~isvec{T}} = 0
r
}
def w256i = genchk{w256, {T} => isint{T}}; def w128i = genchk{w128, {T} => isint{T}}; def w64i = genchk{w64, {T} => isint{T}}
def w256s = genchk{w256, {T} => issigned{T}}; def w128s = genchk{w128, {T} => issigned{T}}; def w64s = genchk{w64, {T} => issigned{T}}
def w256u = genchk{w256, {T} => isunsigned{T}}; def w128u = genchk{w128, {T} => isunsigned{T}}; def w64u = genchk{w64, {T} => isunsigned{T}}
def w256f = genchk{w256, {T} => isfloat{T}}; def w128f = genchk{w128, {T} => isfloat{T}}; def w64f = genchk{w64, {T} => isfloat{T}}
def w256i = genchk{w256, isint}; def w128i = genchk{w128, isint}; def w64i = genchk{w64, isint}
def w256s = genchk{w256, issigned}; def w128s = genchk{w128, issigned}; def w64s = genchk{w64, issigned}
def w256u = genchk{w256, isunsigned}; def w128u = genchk{w128, isunsigned}; def w64u = genchk{w64, isunsigned}
def w256f = genchk{w256, isfloat}; def w128f = genchk{w128, isfloat}; def w64f = genchk{w64, isfloat}

View File

@ -34,8 +34,5 @@ def cbqn_tyArrOffset{} = emit{u64, 'offsetof', 'TyArr', 'a'}
def talloc{T, len} = emit{*T, 'TALLOCP', fmt_type{T}, len}
def tfree{ptr} = emit{void, 'TFREE', ptr}
def fmt_type{T} = {
def w = match (width{T}) { {_==8}=>'8'; {_==16}=>'16'; {_==32}=>'32'; {_==64}=>'64' }
merge{quality{T}, w}
}
def fmt_type{T} = merge{quality{T}, fmtnat{width{T}}}
def fmt_type{T & isptr{T}} = merge{'*',fmt_type{eltype{T}}}

View File

@ -24,4 +24,4 @@ fn absFn{T}(r:*void, x:*void, len:u64) : u64 = {
len
}
exportT{'simd_abs', each{{T}=>absFn{T}, tup{i8, i16, i32, f64}}}
exportT{'simd_abs', each{absFn, tup{i8, i16, i32, f64}}}

View File

@ -2,10 +2,10 @@ def nvec{T} = 0
def nvec{T & isvec{T}} = (width{T}==64) | (width{T}==128)
def nvec{T,w} = 0
def nvec{T,w & nvec{T}} = elwidth{T}==w
def nveci = genchk{nvec, {T} => isint{T}}
def nvecs = genchk{nvec, {T} => issigned{T}}
def nvecu = genchk{nvec, {T} => isunsigned{T}}
def nvecf = genchk{nvec, {T} => isfloat{T}}
def nveci = genchk{nvec, isint}
def nvecs = genchk{nvec, issigned}
def nvecu = genchk{nvec, isunsigned}
def nvecf = genchk{nvec, isfloat}
def reinterpret{T, v & same{'pointer',typekind{T}} & ktup{v}} = { tmp:T=v }