diff --git a/build/src/build.bqn b/build/src/build.bqn index 90ac9c22..1a88f64f 100755 --- a/build/src/build.bqn +++ b/build/src/build.bqn @@ -200,6 +200,7 @@ po ← { # parsed options linux‿bsd‿macos‿windows ← os⊸≡¨ {𝕊: "Error: Unsupported OS; options:"∾1↓∾", "⊸∾¨𝕩}_assert_(⊑os<⊸∊⊢) "linux"‿"bsd"‿"macos"‿"windows" arch ⇐ {'-'¨⌾(('_'=𝕩)⊸/)𝕩} Lowercase {InUname"x86_64"? "x86-64"; ∨´InUname¨"aarch64"‿"arm64"? "aarch64"; "generic"} DOpt "arch" + {𝕊: arch ↩ "generic"}⍟⊢ wasm {𝕊: "Error: Unsupported arch; options:"∾1↓∾", "⊸∾¨𝕩}_assert_(⊑arch<⊸∊⊢) "x86-64"‿"aarch64"‿"generic" ffi ⇐ ((¬windows)∧¬wasm) DOpt "FFI" @@ -223,6 +224,7 @@ po ← { # parsed options }⍟⊢ (arch≡"x86-64") ∧ singeli ∧ ¬avx2 pie ⇐ {(¬shared)∧linux∧arch≡"x86-64"? 0; 1} DOpt "pie" + {𝕊: pie ↩ 0}⍟⊢ wasm output ⇐ GetOpt "OUTPUT" output ↩ •wdpath•file.At {𝕊: @@ -269,8 +271,8 @@ po ← { # parsed options ⟨"-Wno-parentheses"⟩ # gcc ⟨ # clang "-Wno-microsoft-anon-tag", "-Wno-bitwise-instead-of-logical", "-Wno-unknown-warning-option" - "-mllvm", "--x86-cmov-converter=0" # thing that converts `cmov`s to branching sometimes (?), but we don't want that ⟩ + (¬wasm)/⟨"-mllvm", "--x86-cmov-converter=0"⟩ # thing that converts `cmov`s to branching sometimes (?), but we don't want that ⟩ args∾↩ 0⊑GetLibs@ diff --git a/src/builtins/search.c b/src/builtins/search.c index 0b2d8345..6dde4a02 100644 --- a/src/builtins/search.c +++ b/src/builtins/search.c @@ -23,7 +23,7 @@ #include "../utils/hash.h" #include "../utils/talloc.h" -#if SINGELI_SIMD +#if SINGELI #define SINGELI_FILE search #include "../utils/includeSingeli.h" #endif diff --git a/src/singeli/src/search.singeli b/src/singeli/src/search.singeli index 642d69a1..c2e90da3 100644 --- a/src/singeli/src/search.singeli +++ b/src/singeli/src/search.singeli @@ -73,12 +73,14 @@ fn copyOrdered{}(r:*f64, x:*f64, len:u64) : u1 = { 0 } -export{'simd_search_u8', searchOne{u64, u8}} -export{'simd_search_u16', searchOne{u64, u16}} -export{'simd_search_u32', searchOne{u64, u32}} -export{'simd_search_f64', searchOne{f64, f64}} -export{'simd_search_normalizable', searchNormalizable{}} -export{'simd_copy_ordered', copyOrdered{}} +if (hasarch{'X86_64'} or hasarch{'AARCH64'}) { + export{'simd_search_u8', searchOne{u64, u8}} + export{'simd_search_u16', searchOne{u64, u16}} + export{'simd_search_u32', searchOne{u64, u32}} + export{'simd_search_f64', searchOne{f64, f64}} + export{'simd_search_normalizable', searchNormalizable{}} + export{'simd_copy_ordered', copyOrdered{}} +} # In-register bit table