diff --git a/src/singeli/src/base.singeli b/src/singeli/src/base.singeli index 5eb4aec8..3186338a 100644 --- a/src/singeli/src/base.singeli +++ b/src/singeli/src/base.singeli @@ -178,7 +178,9 @@ def homMask{...vs & tuplen{vs}>1} = { def n = tuplen{vs} def T = oneType{vs} def RT = ty_u{max{8,vcount{T}*n}} - tree_fold{|, each{{v,i}=>promote{RT,homMask{v}}<<(i*vcount{T}), vs, iota{n}}} + def a = promote{RT, homMask{...slice{vs,0,n/2}}} + def b = promote{RT, homMask{...slice{vs,n/2}}} + (b<<(n/2 * vcount{T})) | a } if (hasarch{'X86_64'}) {