From 428064a5c2e4cd86b4bf6bdd0dc1ad3306101116 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sat, 18 Feb 2023 23:53:58 +0200 Subject: [PATCH] =?UTF-8?q?skip=20lookup=20table=20zero-initialization=20f?= =?UTF-8?q?or=20x=E2=8A=90x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/search.c | 51 +++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/builtins/search.c b/src/builtins/search.c index c87dfb3c..e2315418 100644 --- a/src/builtins/search.c +++ b/src/builtins/search.c @@ -36,30 +36,32 @@ extern B mul_c2(B,B,B); static u64 elRange(u8 eltype) { return 1ull<<(1<ft? it : ft; /* Table allocation width */ \ - TALLOC(TY, tab0, t); TY* tab = tab0 + t/2; \ - usz m=IN##ia, n=FOR##ia; \ - void* ip = tyany_ptr(IN); \ - void* fp = tyany_ptr(FOR); \ - /* Initialize */ \ - if (FOR##e==el_i16 && nft? it : ft; /* Table allocation width */ \ + TALLOC(TY, tab0, t); TY* tab = tab0 + t/2; \ + usz m=IN##ia, n=FOR##ia; \ + void* ip = tyany_ptr(IN); \ + void* fp = tyany_ptr(FOR); \ + /* Initialize */ \ + if (IN.u != FOR.u) { \ + if (FOR##e==el_i16 && npeb? neb : peb; ux rb = csz<