Skip to content

Conversation

@allnes
Copy link
Contributor

@allnes allnes commented Nov 11, 2025

Implemented an ARM NEON load/store fix so int8/uint8 vectors are read lane‑by‑lane instead of pulling a full 16‑byte block and overrunning buffers. In src/plugins/intel_cpu/src/nodes/kernels/aarch64/jit_uni_eltwise_generic.cpp the i8/u8 branch now uses ld1 on individual byte lanes (with broadcast still using the old helper) and only then performs the sign/zero extends, preventing illegal memory accesses when mixed‑precision eltwise ops hit the JIT.

@allnes allnes requested review from a team as code owners November 11, 2025 10:58
@github-actions github-actions bot added the category: CPU OpenVINO CPU plugin label Nov 11, 2025
@allnes allnes requested a review from aobolensk November 18, 2025 09:21
if (broadcast) {
utils::load_vector(data.b, data.s, ptr_reg, ptr_offset, broadcast, this);
} else {
const size_t lane_count = cpu_isa_traits<isa>::vlen / dst_prc.size();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make sense to move this logic to utils::load_vector? As for me, it seems every time we want to load_vector from anywhere else we actually want to preserve boundaries correctly in case of broadcast == false

Copy link
Contributor

@aobolensk aobolensk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, do we need to reflect this fix for store?

@allnes
Copy link
Contributor Author

allnes commented Nov 26, 2025

@aobolensk done

@allnes allnes force-pushed the an/fix-android-jit-eltwise branch from 8afa0ac to 6d50594 Compare November 26, 2025 14:50
@aobolensk aobolensk changed the title [CPU][ARM] ARM NEON load fix for int8/uint8 [CPU][ARM] ARM NEON load/store fix for int8/uint8 Nov 27, 2025
@allnes allnes force-pushed the an/fix-android-jit-eltwise branch from d5e9b90 to fce68eb Compare November 27, 2025 14:44
…fset-safe load/store handling. Updated the i8/u8 path in jit_uni_eltwise_generic<…>::store_vector to use the new helper with proper lane_count, mirroring the load-side fix.
@allnes allnes force-pushed the an/fix-android-jit-eltwise branch from 636f2b3 to 7829f1c Compare November 27, 2025 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: CPU OpenVINO CPU plugin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants