Open
Conversation
Contributor
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
Collaborator
Author
|
Compared 37 screenshots: 37 matched. Benchmark Results
Build and Run Timing
Detailed Performance Metrics
|
Contributor
✅ ByteCodeTranslator Quality ReportTest & Coverage
Benchmark Results
Static Analysis
Generated automatically by the PR CI workflow. |
Collaborator
Author
|
Compared 37 screenshots: 37 matched. Native Android coverage
✅ Native Android screenshot tests passed. Native Android coverage
Benchmark ResultsDetailed Performance Metrics
|
6fdde57 to
7493e80
Compare
…e64 SIMD in Java (#4745) * Add NEON-accelerated base64Encode/base64Decode to Simd API and wire into Base64 SIMD methods Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/c218992e-943a-4ce5-8d63-f82c0792416f Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Address code review: clarify loop conditions and comment in NEON base64 Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/c218992e-943a-4ce5-8d63-f82c0792416f Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Add new SIMD generic primitive declarations and remove base64 methods from IOSSimd - Added shl, shrLogical, addWrapping, subWrapping for byte arrays - Added offset-based overloads for unpackUnsignedByteToInt, add, cmpEq, cmpLt, select - Removed base64Encode and base64Decode declarations Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Replace base64 overrides with generic SIMD primitive validation wrappers in JavaSESimd Remove base64Encode and base64Decode overrides. Add validation wrapper overrides for new generic Simd primitives: shl, shrLogical, addWrapping, subWrapping, unpackUnsignedByteToInt, add (int[]), cmpEq, cmpLt, and select. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Replace base64 NEON section with generic SIMD primitives in IOSSimd.m Remove NEON-accelerated Base64 encode/decode implementations and add NEON implementations for new generic Simd primitives: shl, shrLogical, addWrapping, subWrapping, unpackUnsignedByteToInt, add (int), cmpEq, cmpLt, and select (with offset parameters). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Remove base64 methods from Simd; add generic byte/int primitives; rewrite Base64 SIMD in Java - Remove base64Encode/base64Decode from Simd, IOSSimd, JavaSESimd, IOSSimd.m - Add generic byte shift primitives: shl(byte[]), shrLogical(byte[]) - Add wrapping byte arithmetic: addWrapping(byte[]), subWrapping(byte[]) - Add offset-based int overloads: unpackUnsignedByteToInt, add, cmpLt, cmpEq, select - Add NEON implementations for all new primitives in IOSSimd.m - Add validation wrappers in JavaSESimd.java - Rewrite encodeNoNewlineSimd in Java using int-domain SIMD compare/select - Rewrite decodeNoWhitespaceSimd in Java using int-domain SIMD shift/or - Update SimdTest with tests for new primitives - All 2345 tests pass Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/5fc6976c-f0ec-4638-b22b-2cbc9c9ca5dd Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Optimize SIMD Base64: replace slow scatter/gather + per-element SIMD calls with fast inline scalar Java The previous approach called 15+ individual Simd operations per 48-byte chunk (each a virtual dispatch + JNI transition on iOS), plus scalar scatter/gather loops for byte↔int conversion. This added ~2500 JNI transitions per encode of 8KB, making it 64-109% slower than the already-fast scalar code. Replace with the same 4x-unrolled table-lookup approach used by encodeNoNewline(), now with offset support. This matches the scalar CN1 encode/decode performance while maintaining the same API contract. Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/90b8c36e-8f20-47da-9fb4-56344f18a336 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Revert "Optimize SIMD Base64: replace slow scatter/gather + per-element SIMD calls with fast inline scalar Java" This reverts commit 00e5103. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com>
392ce2c to
ae25d41
Compare
…4755) * Add generic SIMD interleave primitives Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/bbcd3a3b-1fcc-4818-a045-011025111878 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Tighten iOS SIMD mask blending Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/bbcd3a3b-1fcc-4818-a045-011025111878 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Implement byte-lane Base64 SIMD hot path Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/c4483141-f308-4c53-9d5b-f8185272067f Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Fix performance comparison table grouping Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/44fd1aa3-15ab-484f-908f-71ae605a2c5f Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Fix iOS benchmark stats extraction Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/43c5792a-216e-4635-bec3-dce6ce1c16da Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Harden iOS Base64 benchmark reporting Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/59bc0cc2-933a-457d-b5f2-7387ab1210f4 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Refine Base64 benchmark control flow Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/59bc0cc2-933a-457d-b5f2-7387ab1210f4 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Fail iOS build on benchmark exceptions Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/590ef420-e08c-4863-bc1d-374266ed3221 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Harden Base64 SIMD scratch initialization Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/0af385dc-375d-435d-b488-72b71b1d5135 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Add generic VM lookup path for Base64 SIMD Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/f779927e-d85c-407e-862f-61c4d64ddd86 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Clarify unsigned lookup semantics in IOSSimd Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/f779927e-d85c-407e-862f-61c4d64ddd86 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Fuse SIMD decode unpack and lookup Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/8587852f-737f-4503-9e44-7dd39ed13c3b Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Clarify generic SIMD lookup behavior Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/8587852f-737f-4503-9e44-7dd39ed13c3b Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Refactor Base64 SIMD scratch handling Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/806ca223-d5e2-458d-88a8-6e4347070c37 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Clarify native Base64 decode validation Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/806ca223-d5e2-458d-88a8-6e4347070c37 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Keep SIMD API generic for Base64 path Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/baa9db39-0b7b-4734-ac26-5bf3d2bc986f Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> * Restore native offset SIMD helpers Agent-Logs-Url: https://github.com/codenameone/CodenameOne/sessions/50ddb198-a41b-4ec4-9be2-201d4a6f9527 Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shai-almog <67850168+shai-almog@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.