gnuradio / volk

The Vector Optimized Library of Kernels
http://libvolk.org
GNU Lesser General Public License v3.0
542 stars 202 forks source link

build problem 2.5.2 32 bit #601

Closed cinaeds closed 1 year ago

cinaeds commented 2 years ago

I can't bulid versiion 2.5.2 volk on a 32 bit armv7l cpu.

build.log compile.log

jdemel commented 2 years ago

How did you run CMake etc? I've read multiple reports that it is problematic to rely on CMake to detect the correct 32bit ARM CPU. Did you use a specific toolchain file?

balister commented 2 years ago

I see an issue in my OE build which should have a good toolchain file. I'll investigate. Oddly enough, not sure it is the same one though .....

cinaeds commented 2 years ago

Okay, thanks for the update.

It's 32 machine - I  use it primarily for viewing and testing flow charts since it has good frame buffer and a large monitor.

Would it be possible to just fool gnuradio it so I can build gnuradio 3.10 on it?

-- Cinaed

On 9/21/22 10:53, Philip Balister wrote:

I see an issue in my OE build which should have a good toolchain file. I'll investigate. Oddly enough, not sure it is the same one though .....

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1254037661, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2NNAMLGW7XBBZ2PUYLV7NDQHANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

balister commented 2 years ago

Can you show the command line you use to build gnuradio? POking around, I think your issue is the the -mfpu=neon flag isn't making it into the build.

cinaeds commented 2 years ago

Here are the cflags I passed cmake for volk (and gnuradio):

   armv7l)      CFLAGS="-march=armv7ve -O2 -mtune=cortex-a15.cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4"

Here are the are the error messages - it bombs at about 44% completion:

/opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s: Assembler messages: /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:11: Error: selected FPU does not support instruction -- vmov.i32 q12,#0' /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:22: Error: selected FPU does not support instruction --vsub.i16 q10,q8,q9' /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:23: Error: selected processor does not support vcge.s16 q11,q10,#0' in ARM mode /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:24: Error: selected processor does not supportvcgt.s16 q10,q12,q10' in ARM mode /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:25: Error: selected processor does not support vand.i16 q11,q8,q11' in ARM mode /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:26: Error: selected processor does not supportvand.i16 q10,q9,q10' in ARM mode /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s:27: Error: selected FPU does not support instruction -- `vadd.i16 q10,q11,q10' make[2]: *** [lib/CMakeFiles/volk_obj.dir/build.make:1825: lib/CMakeFiles/volk_obj.dir/__/kernels/volk/asm/neon/volk_16i_max_star_horizontal_16i.s.o] Error 1

-- Cinaed

On 9/22/22 04:02, Philip Balister wrote:

Can you show the command line you use to build gnuradio? POking around, I think your issue is the the -mfpu=neon flag isn't making it into the build.

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1254866295, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2KEUXUHE7QYIMAIPD3V7Q4CZANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

balister commented 2 years ago

So the issue is you need to set the flags used by the assembler to the ones you are using for CFLAGS. Can you try setting ASFLAGS to the same as CFLAGS?

cinaeds commented 2 years ago

Progress!

In instead of crashing at 44%, it now crashes at 83%.

-- Cinaed

On 9/23/22 03:25, Philip Balister wrote:

So the issue is you need to set the flags used by the assembler to the ones you are using for CFLAGS. Can you try setting ASFLAGS to the same as CFLAGS?

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1256040648, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2ML7OHGJ6Z7VLABTOTV7WAQXANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

[ 84%] Building C object lib/CMakeFiles/volk_obj.dir/volk_machine_neon_orc.c.o In file included from /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/volk_8u_x4_conv_k7_r2_8u.h:624, from /opt/gnuradio/src/gr-pre-libs/volk/kernels/volk/volk_8u_conv_k7_r2puppet_8u.h:15, from /opt/gnuradio/src/gr-pre-libs/volk/build/lib/volk_machine_neon_orc.c:163: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_sse2neon_vld1q_u8_x4’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:463:12: warning: implicit declaration of function ‘vld1q_u8_x4’; did you mean ‘vld1q_u64’? [-Wimplicit-function-declaration] 463 | return vld1q_u8_x4(p); | ^~~ | vld1q_u64 /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:463:12: error: incompatible types when returning type ‘int’ but ‘uint8x16x4_t’ was expected 463 | return vld1q_u8_x4(p); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpge_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3330:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3330 | d[0] = ((double ) &a0) >= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3330:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3330 | d[0] = ((double ) &a0) >= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3331:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3331 | d[1] = ((double ) &a1) >= ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3331:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3331 | d[1] = ((double ) &a1) >= ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpge_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3351:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3351 | d[0] = ((double ) &a0) >= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3351:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3351 | d[0] = ((double ) &a0) >= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpgt_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3411:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3411 | d[0] = ((double ) &a0) > ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3411:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3411 | d[0] = ((double ) &a0) > ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3412:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3412 | d[1] = ((double ) &a1) > ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3412:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3412 | d[1] = ((double ) &a1) > ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpgt_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3432:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3432 | d[0] = ((double ) &a0) > ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3432:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3432 | d[0] = ((double ) &a0) > ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmple_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3453:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3453 | d[0] = ((double ) &a0) <= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3453:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3453 | d[0] = ((double ) &a0) <= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3454:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3454 | d[1] = ((double ) &a1) <= ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3454:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3454 | d[1] = ((double ) &a1) <= ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmple_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3474:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3474 | d[0] = ((double ) &a0) <= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3474:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3474 | d[0] = ((double ) &a0) <= ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmplt_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3529:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3529 | d[0] = ((double ) &a0) < ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3529:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3529 | d[0] = ((double ) &a0) < ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3530:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3530 | d[1] = ((double ) &a1) < ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3530:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3530 | d[1] = ((double ) &a1) < ((double ) &b1) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmplt_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3549:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3549 | d[0] = ((double ) &a0) < ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3549:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3549 | d[0] = ((double ) &a0) < ((double ) &b0) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpnge_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3598:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3598 | !(((double ) &a0) >= ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3598:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3598 | !(((double ) &a0) >= ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3600:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3600 | !(((double ) &a1) >= ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3600:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3600 | !(((double ) &a1) >= ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpngt_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3631:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3631 | !(((double ) &a0) > ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3631:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3631 | !(((double ) &a0) > ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3633:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3633 | !(((double ) &a1) > ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3633:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3633 | !(((double ) &a1) > ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpnle_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3664:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3664 | !(((double ) &a0) <= ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3664:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3664 | !(((double ) &a0) <= ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3666:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3666 | !(((double ) &a1) <= ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3666:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3666 | !(((double ) &a1) <= ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpnlt_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3697:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3697 | !(((double ) &a0) < ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3697:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3697 | !(((double ) &a0) < ((double ) &b0)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3699:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3699 | !(((double ) &a1) < ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3699:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3699 | !(((double ) &a1) < ((double ) &b1)) ? ~UINT64_C(0) : UINT64_C(0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpord_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3732:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3732 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3732:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3732 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3733:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3733 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3733:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3733 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3736:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3736 | d[1] = (((double ) &a1) == ((double ) &a1) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3736:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3736 | d[1] = (((double ) &a1) == ((double ) &a1) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3737:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3737 | ((double ) &b1) == ((double ) &b1)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3737:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3737 | ((double ) &b1) == ((double ) &b1)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpord_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3758:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3758 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3758:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3758 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3759:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3759 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3759:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3759 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpunord_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3787:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3787 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3787:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3787 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3788:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3788 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3788:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3788 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3791:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3791 | d[1] = (((double ) &a1) == ((double ) &a1) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3791:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3791 | d[1] = (((double ) &a1) == ((double ) &a1) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3792:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3792 | ((double ) &b1) == ((double ) &b1)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3792:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3792 | ((double ) &b1) == ((double ) &b1)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cmpunord_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3813:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3813 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3813:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3813 | d[0] = (((double ) &a0) == ((double ) &a0) && | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3814:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3814 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3814:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3814 | ((double ) &b0) == ((double ) &b0)) | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_comige_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3834:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3834 | return ((double ) &a0 >= (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3834:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3834 | return ((double ) &a0 >= (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_comigt_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3849:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3849 | return ((double ) &a0 > (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3849:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3849 | return ((double ) &a0 > (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_comile_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3864:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3864 | return ((double ) &a0 <= (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3864:33: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3864 | return ((double ) &a0 <= (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_comilt_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3879:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3879 | return ((double ) &a0 < (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3879:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3879 | return ((double ) &a0 < (double ) &b0); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtpd_epi32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3955:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3955 | double d0 = ((double ) &rnd)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtpd_pi32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3973:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3973 | double d0 = ((double ) &rnd)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtpd_ps’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:3997:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 3997 | float a0 = (float) ((double ) &a)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsd_f64’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4118:27: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4118 | return ((double ) &a)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsd_si32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4134:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4134 | double ret = ((double ) &rnd)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsd_si64’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4151:35: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4151 | double ret = ((double ) &rnd)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsd_ss’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4176:73: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4176 | return vreinterpretq_m128_f32(vsetq_lane_f32((float) ((double ) &b)[0], | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:259:36: note: in definition of macro ‘vreinterpretq_m128_f32’ 259 | #define vreinterpretq_m128_f32(x) (x) | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsi32_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4217:25: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4217 | vsetq_lane_s64((int64_t ) &bf, vreinterpretq_s64_m128d(a), 0)); | ^~~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:353:58: note: in definition of macro ‘vreinterpretq_m128d_s64’ 353 | #define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtsi64_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4254:25: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4254 | vsetq_lane_s64((int64_t ) &bf, vreinterpretq_s64_m128d(a), 0)); | ^~~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:353:58: note: in definition of macro ‘vreinterpretq_m128d_s64’ 353 | #define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvtss_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4296:25: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4296 | vsetq_lane_s64((int64_t ) &d, vreinterpretq_s64_m128d(a), 0)); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:353:58: note: in definition of macro ‘vreinterpretq_m128d_s64’ 353 | #define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvttpd_epi32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4305:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4305 | double a0 = ((double ) &a)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvttpd_pi32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4315:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4315 | double a0 = ((double ) &a)[0]; | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvttsd_si32’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4337:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4337 | double ret = ((double ) &a); | ~^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_cvttsd_si64’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4352:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4352 | double ret = ((double ) &a); | ~^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_max_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4661:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4661 | d[0] = ((double ) &a0) > ((double ) &b0) ? a0 : b0; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4661:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4661 | d[0] = ((double ) &a0) > ((double ) &b0) ? a0 : b0; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4662:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4662 | d[1] = ((double ) &a1) > ((double ) &b1) ? a1 : b1; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4662:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4662 | d[1] = ((double ) &a1) > ((double ) &b1) ? a1 : b1; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_min_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4722:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4722 | d[0] = ((double ) &a0) < ((double ) &b0) ? a0 : b0; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4722:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4722 | d[0] = ((double ) &a0) < ((double ) &b0) ? a0 : b0; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4723:14: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4723 | d[1] = ((double ) &a1) < ((double ) &b1) ? a1 : b1; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:4723:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 4723 | d[1] = ((double ) &a1) < ((double ) &b1) ? a1 : b1; | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_set1_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:5252:49: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 5252 | return vreinterpretq_m128d_s64(vdupq_n_s64((int64_t ) &d)); | ^~~~~~ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:353:58: note: in definition of macro ‘vreinterpretq_m128d_s64’ 353 | #define vreinterpretq_m128d_s64(x) vreinterpretq_f32_s64(x) | ^ In file included from /opt/gnuradio/src/gr-pre-libs/volk/include/volk/volk_complex.h:68, from /opt/gnuradio/src/gr-pre-libs/volk/build/include/volk/volk_typedefs.h:18, from /opt/gnuradio/src/gr-pre-libs/volk/build/lib/volk_machines.h:18, from /opt/gnuradio/src/gr-pre-libs/volk/build/lib/volk_machine_neon_orc.c:22: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_sqrt_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:5621:37: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 5621 | double a0 = sqrt(((double ) &a)[0]); | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_sqrt_sd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:5636:63: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 5636 | return _mm_set_pd(((double ) &a)[1], sqrt(((double ) &b)[0])); | ^ /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h: In function ‘_mm_dp_pd’: /opt/gnuradio/src/gr-pre-libs/volk/include/volk/sse2neon.h:7688:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 7688 | double sum = ((double ) &tmp) + (((double ) &tmp) + 1); | ~^~~~ make[2]: [lib/CMakeFiles/volk_obj.dir/build.make:2457: lib/CMakeFiles/volk_obj.dir/volk_machine_neon_orc.c.o] Error 1 make[1]: [CMakeFiles/Makefile2:342: lib/CMakeFiles/volk_obj.dir/all] Error 2 make: [Makefile:146: all] Error 2 @.:/opt/gnuradio/src/gr-pre-libs/volk/build#

balister commented 2 years ago

I have a fix for that one in progress. Can you confirm what version of gcc you are using? I am guessing 12.

balister commented 2 years ago

Try: https://github.com/gnuradio/volk/pull/602

cinaeds commented 2 years ago

Great! Yes, the version of gcc is 12.1.0.

-- Cinaed

On 9/24/22 03:32, Philip Balister wrote:

I have a fix for that one in progress. Can you confirm what version of gcc you are using? I am guessing 12.

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1256934739, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2ONGUENR4FGEPGFD5LV73KELANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

balister commented 2 years ago

Can you confirm this fixes the issue and tell us a little about what you are doing? I am guessing native compile on some 32 bit arm board. We need to document the use of CFLAGS and ASFLAGS for this case better.

cinaeds commented 2 years ago

Sure, I used

  CFLAGS="-march=armv7ve -O2 -mtune=cortex-a15.cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4"   ASMFLAGS="-march=armv7ve -O2 -mtune=cortex-a15.cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4"

noting  I ended up having to use ASMFLAGS instead of ASFLAGS.

The OS is Debian bookworm - or Debian 12 - and the gcc compiler was Debian 12.1.0-8.

-- Cinaed

On 9/26/22 06:39, Philip Balister wrote:

Can you confirm this fixes the issue and tell us a little about what you are doing? I am guessing native compile on some 32 bit arm board. We need to document the use of CFLAGS and ASFLAGS for this case better.

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1258059920, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2OJAZWQKYPKU64P22TWAGRSLANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

balister commented 2 years ago

OK this is weird ... see the definition here: https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html

balister commented 2 years ago

HMMM, Maybe ASFLAGS goes to the actual assembler and ASMFLAGS goes via gcc when called with -s to call the assembler. Quick google isn't returning anything I can point at though :(

cinaeds commented 2 years ago

Yes, that was my assumption too.

But I did find a work around.

I was able to find the script used to build gr-3.7 and the source code for volk-2.4.1.

And I was able to configure and build volk and gr-3.10 without any issues - but it warned me at the end the of the configuration of gr to enable volk.

It may not be optimal - but for what I'm using the machine for - it's close enough.

Enclosed is a copy of the volk-2.4.1 profile.

-- CInaed

On 9/27/22 08:30, Philip Balister wrote:

HMMM, Maybe ASFLAGS goes to the actual assembler and ASMFLAGS goes via gcc when called with -s to call the assembler. Quick google isn't returning anything I can point at though :(

— Reply to this email directly, view it on GitHub https://github.com/gnuradio/volk/issues/601#issuecomment-1259677973, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKKX2JLDDY3WTONK6LOCPTWAMHK7ANCNFSM6AAAAAAQJ6NWPQ. You are receiving this because you authored the thread.Message ID: @.***>

this file is generated by volk_profile.

the function name is followed by the preferred architecture.

volk_16ic_deinterleave_real_8i u_orc u_orc volk_16ic_deinterleave_16i_x2 u_orc u_orc volk_16ic_s32f_deinterleave_32f_x2 u_orc u_orc

volk_16i_s32f_convert_32f a_generic generic volk_16i_convert_8i generic generic

volk_32f_x2_add_32f u_orc u_orc

volk_32fc_32f_multiply_32fc u_orc u_orc

volk_32f_log2_32f u_generic u_generic

volk_32f_cos_32f generic generic

volk_32fc_x2_conjugate_dot_prod_32fc block block

volk_32fc_deinterleave_64f_x2 a_generic generic

volk_32fc_x2_dot_prod_32fc generic generic

volk_32fc_magnitude_32f generic generic volk_32fc_magnitude_squared_32f generic generic

volk_32fc_x2_multiply_32fc generic generic volk_32fc_x2_multiply_conjugate_32fc generic generic

volk_32fc_conjugate_32fc a_generic generic volk_32f_s32f_convert_16i a_generic generic volk_32f_s32f_convert_32i a_generic generic volk_32f_convert_64f generic generic volk_32f_s32f_convert_8i a_generic generic

volk_32f_x2_divide_32f u_orc u_orc volk_32f_x2_dot_prod_32f generic generic

volk_32f_x2_max_32f u_orc u_orc volk_32f_x2_min_32f u_orc u_orc volk_32f_x2_multiply_32f u_orc u_orc

volk_32f_s32f_normalize u_orc u_orc

volk_32f_sqrt_32f u_orc u_orc

volk_32f_x2_subtract_32f u_orc u_orc

volk_32i_x2_and_32i u_orc u_orc volk_32i_s32f_convert_32f a_generic generic volk_32i_x2_or_32i u_orc u_orc

volk_64f_convert_32f generic generic

volk_8i_convert_16i u_orc u_orc volk_8i_s32f_convert_32f u_orc u_orc volk_32fc_s32fc_multiply_32fc a_generic generic volk_32f_s32f_multiply_32f u_orc u_orc

volk_32f_binary_slicer_32i generic_branchless generic_branchless volk_32f_binary_slicer_8i generic_branchless generic_branchless volk_32u_reverse_32u lut lut volk_32f_tanh_32f series series