From 1d6b33d528a1bcaea4999586c5a934ad90153eaa Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 6 Apr 2023 19:18:43 +0300 Subject: [PATCH] restrict fold_addw to integer input --- src/singeli/src/neon.singeli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/singeli/src/neon.singeli b/src/singeli/src/neon.singeli index 53575347..dd653ad4 100644 --- a/src/singeli/src/neon.singeli +++ b/src/singeli/src/neon.singeli @@ -68,7 +68,7 @@ def __le{a:T,b:T & nvec{T}} = emit{ty_u{T}, ntyp{'vcle', T}, a, b} def __ne{a:T,b:T & nvec{T}} = ~(a==b) def fold_add {a:T & nvec{T}} = emit{eltype{T}, ntyp{'vaddv', T}, a} -def fold_addw{a:T & nvec{T}} = emit{ty_dbl{eltype{T}}, ntyp{'vaddlv', T}, a} +def fold_addw{a:T & nveci{T}} = emit{ty_dbl{eltype{T}}, ntyp{'vaddlv', T}, a} def fold_min {a:T & nvec{T} & elwidth{T}<=32} = emit{eltype{T}, ntyp{'vminv', T}, a} def fold_max {a:T & nvec{T} & elwidth{T}<=32} = emit{eltype{T}, ntyp{'vmaxv', T}, a} def vfold{F, x:T & nvec{T} & match{F, min} & elwidth{T}<=32} = fold_min{x}