diff options
Diffstat (limited to 'core/bytes/bytes.odin')
| -rw-r--r-- | core/bytes/bytes.odin | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/core/bytes/bytes.odin b/core/bytes/bytes.odin index dcd4931e2..136c98f6b 100644 --- a/core/bytes/bytes.odin +++ b/core/bytes/bytes.odin @@ -309,14 +309,8 @@ index_byte :: proc(s: []byte, c: byte) -> int { // NOTE(Feoramund): On my Alder Lake CPU, I have only witnessed a // significant speedup when compiling in either Size or Speed mode. // The SIMD version is usually 2-3x slower without optimizations on. - when ODIN_OPTIMIZATION_MODE > .Minimal && intrinsics.has_target_feature("sse2") { - // SIMD's benefits are noticeable only past a certain threshold of data. - // For small data, use the plain old algorithm. - if len(s) >= simd_util.RECOMMENDED_SCAN_SIZE { - return simd_util.index_byte(s, c) - } else { - return _index_byte(s, c) - } + when ODIN_OPTIMIZATION_MODE > .Minimal { + return #force_inline simd_util.index_byte(s, c) } else { return _index_byte(s, c) } @@ -333,12 +327,8 @@ last_index_byte :: proc(s: []byte, c: byte) -> int { return -1 } - when ODIN_OPTIMIZATION_MODE > .Minimal && intrinsics.has_target_feature("sse2") { - if len(s) >= simd_util.RECOMMENDED_SCAN_SIZE { - return simd_util.last_index_byte(s, c) - } else { - return _last_index_byte(s, c) - } + when ODIN_OPTIMIZATION_MODE > .Minimal { + return #force_inline simd_util.last_index_byte(s, c) } else { return _last_index_byte(s, c) } |