From 8e1d8bb42cd781aa4cf01212da0ca54eaf01f960 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 21 Sep 2022 17:29:10 -0400 Subject: [PATCH] Use Singeli max/min scan for Indices and Sort --- src/builtins/grade.h | 58 +++++++++++++++++++++++++++++++++----------- src/builtins/slash.c | 21 +++++++++++++--- 2 files changed, 62 insertions(+), 17 deletions(-) diff --git a/src/builtins/grade.h b/src/builtins/grade.h index 5d7d634c..ee2669e4 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -30,21 +30,47 @@ rp[j] = xi; \ } +#if SINGELI +extern void (*const avx2_scan_max8)(int8_t* v0,int8_t* v1,uint64_t v2); +extern void (*const avx2_scan_min8)(int8_t* v0,int8_t* v1,uint64_t v2); +extern void (*const avx2_scan_max16)(int16_t* v0,int16_t* v1,uint64_t v2); +extern void (*const avx2_scan_min16)(int16_t* v0,int16_t* v1,uint64_t v2); +#define COUNT_THRESHOLD 32 +#define WRITE_SPARSE_i8 \ + for (usz i=0; i