From 12d7629f9c02824f188742b91ea95c8dae87b2e8 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Fri, 10 May 2024 08:36:24 -0400 Subject: [PATCH] Replace top-level if with if_inline --- src/singeli/src/base.singeli | 4 ++-- src/singeli/src/bins.singeli | 4 ++-- src/singeli/src/count.singeli | 2 +- src/singeli/src/hashtab.singeli | 2 +- src/singeli/src/replicate.singeli | 4 ++-- src/singeli/src/scan.singeli | 6 +++--- src/singeli/src/search.singeli | 2 +- src/singeli/src/select.singeli | 2 +- src/singeli/src/slash.singeli | 8 ++++---- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/singeli/src/base.singeli b/src/singeli/src/base.singeli index 7bb4f8e2..c62bcd2c 100644 --- a/src/singeli/src/base.singeli +++ b/src/singeli/src/base.singeli @@ -185,13 +185,13 @@ def homMask{...vs & tuplen{vs}>1} = { (b<<(n/2 * vcount{T})) | a } -if (hasarch{'X86_64'}) { +if_inline (hasarch{'X86_64'}) { include 'arch/iintrinsic/basic' include './sse2' include './sse' include './avx' include './avx2' -} else if (hasarch{'AARCH64'}) { +} else if_inline (hasarch{'AARCH64'}) { include 'arch/neon_intrin/basic' include './neon' } else { diff --git a/src/singeli/src/bins.singeli b/src/singeli/src/bins.singeli index 8aade258..c5bf9aba 100644 --- a/src/singeli/src/bins.singeli +++ b/src/singeli/src/bins.singeli @@ -40,7 +40,7 @@ fn max_scan{T, up}(x:*T, len:u64) : void = { } def getsel{...x} = assert{'shuffling not supported', show{...x}} -if (hasarch{'AVX2'}) { +if_inline (hasarch{'AVX2'}) { def getsel{h:H & lvec{H, 16, 8}} = { sel{H, pair{h,h}, .} } @@ -295,7 +295,7 @@ def bin_search_vec{prim, T, w:*T, wn, x:*T, xn, rp, maxwn & hasarch{'AVX2'}} = { } } -if (hasarch{'AVX2'}) { +if_inline (hasarch{'AVX2'}) { fn avx2_search_bin{prim, T, maxwn}(rp:*(if (prim=='∊') u64 else i8), w:*void, wn:u64, x:*void, xn:u64) : void = { bin_search_vec{prim, T, *T~~w, wn, *T~~x, xn, rp, maxwn} } diff --git a/src/singeli/src/count.singeli b/src/singeli/src/count.singeli index bc69303e..3283be4d 100644 --- a/src/singeli/src/count.singeli +++ b/src/singeli/src/count.singeli @@ -2,7 +2,7 @@ include './base' include 'util/tup' include './vecfold' -if (hasarch{'SSE2'}) { +if_inline (hasarch{'SSE2'}) { fn sum_vec{T}(v:T) = vfold{+, fold{+, unpackQ{v, T**0}}} def fold_addw{v:T & eltype{T}==i8} = sum_vec{T}(v) } diff --git a/src/singeli/src/hashtab.singeli b/src/singeli/src/hashtab.singeli index a14cc5dd..c82f4dbf 100644 --- a/src/singeli/src/hashtab.singeli +++ b/src/singeli/src/hashtab.singeli @@ -28,7 +28,7 @@ def hash_val{x0:(u64)} = { x ^= x >> 33; x } # CRC32 -if (hasarch{'SSE4.2'}) require{'x86intrin.h'} +if_inline (hasarch{'SSE4.2'}) require{'x86intrin.h'} def hash_val{x:(u32) & hasarch{'SSE4.2'}} = { emit{u32, '_mm_crc32_u32', 0x973afb51, x} } diff --git a/src/singeli/src/replicate.singeli b/src/singeli/src/replicate.singeli index 45074114..f2031c93 100644 --- a/src/singeli/src/replicate.singeli +++ b/src/singeli/src/replicate.singeli @@ -59,7 +59,7 @@ exportT{'si_replicate_scan', flat_table{rep_by_scan, ind_types, dat_types}} # Constant replicate -if (not (hasarch{'AVX2'} | hasarch{'AARCH64'})) { +if_inline (not (hasarch{'AVX2'} | hasarch{'AARCH64'})) { fn rep_const{T}(wv:u64, x:*void, r:*void, n:u64) : void = { rep_by_scan{T, cast_i{usz,wv}, x, r, cast_i{usz, wv*n}} @@ -148,7 +148,7 @@ def rep_const_shuffle{V, wv, onreps, xv:*V, rv:*V, n:(u64)} = { # onreps{inputVe } } -if (hasarch{'AVX2'}) { +if_inline (hasarch{'AVX2'}) { def rep_iter_from_sh{sh}{x, gen} = { def l = tuplen{sh} def h = l>>1 diff --git a/src/singeli/src/scan.singeli b/src/singeli/src/scan.singeli index dcf50ec4..225f91f3 100644 --- a/src/singeli/src/scan.singeli +++ b/src/singeli/src/scan.singeli @@ -1,7 +1,7 @@ include './base' -if (hasarch{'X86_64'}) { - if (hasarch{'PCLMUL'}) include './clmul' - if (hasarch{'AVX512BW', 'VPCLMULQDQ', 'GFNI'}) include './avx512' +if_inline (hasarch{'X86_64'}) { + if_inline (hasarch{'PCLMUL'}) include './clmul' + if_inline (hasarch{'AVX512BW', 'VPCLMULQDQ', 'GFNI'}) include './avx512' } include './mask' include './f64' diff --git a/src/singeli/src/search.singeli b/src/singeli/src/search.singeli index bb7c22df..137b536f 100644 --- a/src/singeli/src/search.singeli +++ b/src/singeli/src/search.singeli @@ -60,7 +60,7 @@ fn copyOrdered{}(r:*f64, x:*f64, len:u64) : u1 = { 0 } -if (hasarch{'X86_64'} | hasarch{'AARCH64'}) { +if_inline (hasarch{'X86_64'} | hasarch{'AARCH64'}) { export{'simd_search_u8', searchOne{u64, u8}} export{'simd_search_u16', searchOne{u64, u16}} export{'simd_search_u32', searchOne{u64, u32}} diff --git a/src/singeli/src/select.singeli b/src/singeli/src/select.singeli index a290baa5..514689a3 100644 --- a/src/singeli/src/select.singeli +++ b/src/singeli/src/select.singeli @@ -1,4 +1,4 @@ -if (hasarch{'AVX2'}) { +if_inline (hasarch{'AVX2'}) { include './base' include './cbqnDefs' diff --git a/src/singeli/src/slash.singeli b/src/singeli/src/slash.singeli index e66b97fa..b7181691 100644 --- a/src/singeli/src/slash.singeli +++ b/src/singeli/src/slash.singeli @@ -1,8 +1,8 @@ include './base' -if (hasarch{'X86_64'}) { - if (hasarch{'PCLMUL'}) include './clmul' - if (hasarch{'BMI2'}) include './bmi2' - if (hasarch{'AVX512F'}) include './avx512' +if_inline (hasarch{'X86_64'}) { + if_inline (hasarch{'PCLMUL'}) include './clmul' + if_inline (hasarch{'BMI2'}) include './bmi2' + if_inline (hasarch{'AVX512F'}) include './avx512' } include './mask' include 'util/tup'