remove unnecessary lambda wrappers
also use fmtnat
This commit is contained in:
parent
cc160910a2
commit
033f3de6b9
@ -106,10 +106,10 @@ def genchk{B, F} = {
|
|||||||
def r{T & ~isvec{T}} = 0
|
def r{T & ~isvec{T}} = 0
|
||||||
r
|
r
|
||||||
}
|
}
|
||||||
def w256i = genchk{w256, {T} => isint{T}}; def w128i = genchk{w128, {T} => isint{T}}; def w64i = genchk{w64, {T} => isint{T}}
|
def w256i = genchk{w256, isint}; def w128i = genchk{w128, isint}; def w64i = genchk{w64, isint}
|
||||||
def w256s = genchk{w256, {T} => issigned{T}}; def w128s = genchk{w128, {T} => issigned{T}}; def w64s = genchk{w64, {T} => issigned{T}}
|
def w256s = genchk{w256, issigned}; def w128s = genchk{w128, issigned}; def w64s = genchk{w64, issigned}
|
||||||
def w256u = genchk{w256, {T} => isunsigned{T}}; def w128u = genchk{w128, {T} => isunsigned{T}}; def w64u = genchk{w64, {T} => isunsigned{T}}
|
def w256u = genchk{w256, isunsigned}; def w128u = genchk{w128, isunsigned}; def w64u = genchk{w64, isunsigned}
|
||||||
def w256f = genchk{w256, {T} => isfloat{T}}; def w128f = genchk{w128, {T} => isfloat{T}}; def w64f = genchk{w64, {T} => isfloat{T}}
|
def w256f = genchk{w256, isfloat}; def w128f = genchk{w128, isfloat}; def w64f = genchk{w64, isfloat}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -34,8 +34,5 @@ def cbqn_tyArrOffset{} = emit{u64, 'offsetof', 'TyArr', 'a'}
|
|||||||
|
|
||||||
def talloc{T, len} = emit{*T, 'TALLOCP', fmt_type{T}, len}
|
def talloc{T, len} = emit{*T, 'TALLOCP', fmt_type{T}, len}
|
||||||
def tfree{ptr} = emit{void, 'TFREE', ptr}
|
def tfree{ptr} = emit{void, 'TFREE', ptr}
|
||||||
def fmt_type{T} = {
|
def fmt_type{T} = merge{quality{T}, fmtnat{width{T}}}
|
||||||
def w = match (width{T}) { {_==8}=>'8'; {_==16}=>'16'; {_==32}=>'32'; {_==64}=>'64' }
|
|
||||||
merge{quality{T}, w}
|
|
||||||
}
|
|
||||||
def fmt_type{T & isptr{T}} = merge{'*',fmt_type{eltype{T}}}
|
def fmt_type{T & isptr{T}} = merge{'*',fmt_type{eltype{T}}}
|
||||||
|
|||||||
@ -24,4 +24,4 @@ fn absFn{T}(r:*void, x:*void, len:u64) : u64 = {
|
|||||||
len
|
len
|
||||||
}
|
}
|
||||||
|
|
||||||
exportT{'simd_abs', each{{T}=>absFn{T}, tup{i8, i16, i32, f64}}}
|
exportT{'simd_abs', each{absFn, tup{i8, i16, i32, f64}}}
|
||||||
@ -2,10 +2,10 @@ def nvec{T} = 0
|
|||||||
def nvec{T & isvec{T}} = (width{T}==64) | (width{T}==128)
|
def nvec{T & isvec{T}} = (width{T}==64) | (width{T}==128)
|
||||||
def nvec{T,w} = 0
|
def nvec{T,w} = 0
|
||||||
def nvec{T,w & nvec{T}} = elwidth{T}==w
|
def nvec{T,w & nvec{T}} = elwidth{T}==w
|
||||||
def nveci = genchk{nvec, {T} => isint{T}}
|
def nveci = genchk{nvec, isint}
|
||||||
def nvecs = genchk{nvec, {T} => issigned{T}}
|
def nvecs = genchk{nvec, issigned}
|
||||||
def nvecu = genchk{nvec, {T} => isunsigned{T}}
|
def nvecu = genchk{nvec, isunsigned}
|
||||||
def nvecf = genchk{nvec, {T} => isfloat{T}}
|
def nvecf = genchk{nvec, isfloat}
|
||||||
|
|
||||||
|
|
||||||
def reinterpret{T, v & same{'pointer',typekind{T}} & ktup{v}} = { tmp:T=v }
|
def reinterpret{T, v & same{'pointer',typekind{T}} & ktup{v}} = { tmp:T=v }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user