Skip to content

RFC: Neon support (pretty much working) #35

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
Aug 16, 2019
Merged
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
fa26882
feat: neon support (mostly broken)
sunnygleason Aug 8, 2019
9e96fab
feat: progress on neon compilation
sunnygleason Aug 9, 2019
05fd4f3
feat: partial implementation of deserializer (broken, needs movemask)
sunnygleason Aug 9, 2019
086e745
feat: re-enable tests (still broken)
sunnygleason Aug 9, 2019
b9b3900
feat: remove core_arch unused dependency
sunnygleason Aug 9, 2019
1c989cf
feat: update string parse
sunnygleason Aug 10, 2019
5926070
feat: additional tweaks, not breaks during linking
sunnygleason Aug 10, 2019
62a3f93
feat: fixing intrinsics (maybe)
sunnygleason Aug 10, 2019
bca6cba
feat: temp stub replacements for intrinsics (still broken)
sunnygleason Aug 10, 2019
620e697
feat: get code closer to simdjson (still broken)
sunnygleason Aug 13, 2019
68691ad
feat: trying to fix parse_str
sunnygleason Aug 13, 2019
be60690
fix: numberparse
sunnygleason Aug 13, 2019
e6609ff
fix: endian in flatten_bits
sunnygleason Aug 13, 2019
45cbbd4
fix: utf8 encoding (still broken but closer)
sunnygleason Aug 13, 2019
15c892b
fix: use write instead of intrinsic (for now)
sunnygleason Aug 13, 2019
e3872b5
fix: fix string parsing (mostly, thanks to @licenser)
sunnygleason Aug 13, 2019
782b0a6
fix: add_overflow should always output carry
sunnygleason Aug 14, 2019
98b3356
fix: tests PASS, improved comparison operators, thanks @Licenser :)
sunnygleason Aug 15, 2019
19ad13e
fix: update arm64 to use nightly
sunnygleason Aug 15, 2019
a97487b
fix: use rust nightly image for drone CI
sunnygleason Aug 15, 2019
faea015
fix: drone CI rustup nightly
sunnygleason Aug 15, 2019
d66d68a
feat: fix guards, use rust stdlib for bit count operations
sunnygleason Aug 15, 2019
4c51dc4
feat: address review comments, platform handling and misc
sunnygleason Aug 15, 2019
bdc82d6
feat: refactor immediate tables into loads
sunnygleason Aug 15, 2019
4fb672a
feat: improving code style and similarity across architectures
sunnygleason Aug 16, 2019
ee2bd9b
feat: update generator with neon support, conditional compilation
sunnygleason Aug 16, 2019
75511d3
fix: remove double semicolon
sunnygleason Aug 16, 2019
23191c6
feat: conditional feature enablement for neon only
sunnygleason Aug 16, 2019
d514f2d
fix: add conditional compilation for target_feature=-avx2,-sse4.2 on …
sunnygleason Aug 16, 2019
3bdc169
feat: factor arch-specific methods into separate modules (with macros…
sunnygleason Aug 16, 2019
40bb843
fix: does drone need clean?
sunnygleason Aug 16, 2019
78b0aa8
fix: utf8 error checking (maybe)
sunnygleason Aug 16, 2019
5a23b40
fix: utf8 error checking (maybe maybe)
sunnygleason Aug 16, 2019
af177f3
feat: fancy generic generator functions, thanks @Licenser
sunnygleason Aug 16, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions src/neon/stage1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,14 +113,9 @@ impl Default for Utf8CheckingState {
#[inline]
fn is_utf8_status_ok(has_error: int8x16_t) -> bool {
unsafe {
let utf8_error_bits: u128 = mem::transmute(
vandq_s16(
mem::transmute(has_error),
mem::transmute(has_error)
)
);
let has_error_128 : i128 = mem::transmute(has_error);

utf8_error_bits as u16 == 0
has_error_128 as u32 == 0
}
}

Expand Down