Help understanding Neon intrinsics

OP #7465547
Rate this post
• ▲ useful
▼ not useful

Hi everyone,

I am new to Arm Neon programming, and am having a very difficult time making sense of the conventions for mapping gcc intrinsics to actual Arm Neon v8 instructions. Can someone explain to me how to do the following:

I am making a custom hashing function that uses AES rounds. All the data is byte wide and in fixed blocks of 16MB, and I am just trying to pipe it into the ARM Neon core as quickly as possible. From reading the Arm developer documentation here:

https://developer.arm.com/documentation/ddi0596/2021-03/SIMD-FP-Instructions/LD1--multiple-structures---Load-multiple-single-element-structures-to-one--two--three--or-four-registers-?lang=en

I want to use a sequence of these instructions:

1
LD1  {  V0.16B,  V1.16B,  V2.16B,  V3.16B }, [x0], #64
2
LD1  {  V4.16B,  V5.16B,  V6.16B,  V7.16B }, [x0], #64
3
...

However, after reading this page:

https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#load-1

I can't find any intrinsic which actually generates this instruction, let alone the GCC convention for using these intrinsics.

Can someone give me an example of a simple C program, compilable by gcc (preferably v9.4 as that is what is available on Ubuntu Bionic, the version running on the embedded platform), that can access these instructions? I'm fine with embedded assembly if that is what is necessary, but I can't figure out the correct syntax to make it work.

Thank you for any advice.

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.