Feoramund
45219f240e
Rename SIMD_IS_EMULATED to capability-affirmative HAS_HARDWARE_SIMD
2025-05-29 17:17:51 -04:00
Laytan Laats
5ae27c6ebc
wasm: support more vendor libraries
...
Adds support for:
- box2d
- cgltf
- stb image
- stb rect pack
2024-09-09 18:49:13 +02:00
laytan
a99e57c62c
bytes: fix last_index_byte off-by-one
2024-09-05 13:30:46 +02:00
Rory OConnell
97795ff3a2
fix simd var typo
2024-08-19 15:50:42 -07:00
Yawning Angel
9e65e229d0
core/bytes: Tweak index_byte and last_index_byte
...
- Assume unaligned loads are cheap
- Explicilty use 256-bit or 128-bit SIMD to avoid AVX512
- Limit "vectorized" scanning to 128-bits if SIMD is emulated via SWAR
- Add a few more benchmark cases
2024-08-19 11:40:36 +09:00
gingerBill
62911539cd
Minor style change
2024-08-13 14:27:25 +01:00
Feoramund
5d5addd48f
Set SIMD_SCAN_WIDTH based on size_of(uintptr)
2024-08-10 07:43:14 -04:00
Feoramund
c69fa87d53
Merge core:simd/util into core:bytes
2024-08-10 07:17:03 -04:00
Feoramund
0d29cc3375
Use for x in y construct for bytes iteration
...
This cannot be applied to the `strings` version, as that would cause a
rune-by-rune iteration, not a byte-by-byte one.
2024-08-09 18:54:04 -04:00
Feoramund
c8a62ee4ec
Make simd_util index procs contextless where applicable
2024-08-09 18:54:04 -04:00
Feoramund
12dd0cb72a
Simplify and make simd_util cross-platform
...
This new algorithm uses a Scalar->Vector->Scalar iteration loop which
requires no masking off of any incomplete data chunks.
Also, the width was reduced to 32 bytes instead of 64, as I found this
to be about as fast as the previous 64-byte x86 version.
2024-08-09 18:54:04 -04:00
Feoramund
f66fcd9acb
Use vectorized index_* procs in core
2024-08-06 15:19:05 -04:00
Yawning Angel
dcaf085bfa
core/bytes: Add alias and alias_inexactly
2024-07-16 01:29:43 +09:00
FourteenBrush
05e27fa92d
Fix typo in bytes.scrub
2024-01-17 13:37:06 +01:00
gingerBill
c4d19dfa92
Use uint instead of int to improve code generation for bounds checking
2022-09-27 22:31:46 +01:00
gingerBill
33895b6d92
Convert all uses of *_from_slice to *_from_bytes where appropriate
2022-05-16 01:43:43 +01:00
gingerBill
ccb38c3dc6
Add _safe versions
2022-05-12 12:54:14 +01:00
gingerBill
2e7157ae9c
Correct bytes._split_iterator
2022-02-14 11:01:34 +00:00
gingerBill
f561147190
Correct _split_iterator
2022-02-14 10:57:29 +00:00
gingerBill
a032a2ef32
Remove the hidden NUL byte past the end from bytes.clone
2022-01-01 15:33:19 +00:00
gingerBill
85f8c8df91
Fix fields_proc in strings and bytes
2021-12-11 12:04:34 +00:00
gingerBill
251da264ed
Remove unneeded semicolons from the core library
2021-08-31 22:21:13 +01:00
gingerBill
86649e6b44
Core library clean up: Make range expressions more consistent and replace uses of .. with ..=
2021-06-14 11:15:25 +01:00
gingerBill
e82f8214e8
Add bytes.remove, bytes.remove_all, strings.remove, strings.remove_all
2021-05-23 11:46:43 +01:00
gingerBill
d33350e3a5
Add truncate_to_byte and truncate_to_rune for packages strings and bytes
2021-04-22 15:49:10 +01:00
gingerBill
3337412228
split*_iterator procedures for package bytes and strings
2021-03-18 13:26:33 +00:00
gingerBill
aa93305015
Replace usage of inline proc with #force_inline proc in the core library
2021-02-23 16:14:47 +00:00
gingerBill
1470cab842
Make bytes.odin consistent with strings.odin in functionality
2020-12-17 00:36:25 +00:00
gingerBill
a31b992d2b
Rename bytes/strings.odin to bytes/bytes.odin
2020-12-17 00:25:05 +00:00