From 079d3ffe911994baa9378f767fae7f6fe9d6409b Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 18 Jul 2024 23:54:36 +0300 Subject: [PATCH] better aarch64 homMask{[16]u8,[16]u8} --- src/singeli/src/neon.singeli | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/singeli/src/neon.singeli b/src/singeli/src/neon.singeli index 678fb210..bd27ab77 100644 --- a/src/singeli/src/neon.singeli +++ b/src/singeli/src/neon.singeli @@ -137,7 +137,13 @@ def homMask{x:T=[16]E if width{E}==8} = { } def homMask{a:T,b:T=[16]E if width{E}==8} = { m:= make{[16]u8, 1<<(iota{16}&7)} - fold_add{addpw{addpw{addp{ty_u{a}&m, ty_u{b}&m}}}<>2) | ((range{16}&3)<<2)} + # fold_add{addpw{addpw{addp{ty_u{a}&m, ty_u{b}&m}}}< sel{tup{a,b}, make{[16]u8, ((range{16}&3)<<3) + (range{16}>>2) + i}}, tup{0, 4}} + # t:= shrm{l, 4, h} & make{[16]u8, (1<<(range{16}>>2)) * 0x11} + # fold_add{[4]u32~~t} } def homMask{a:T,b:T,c:T,d:T=[16]E if width{E}==8} = { m:= make{[16]u8, 1<<(iota{16}&7)}