I'm seeing a bunch of errors like this when trying to cross compile for arm:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qs8-vlrelu/gen/qs8-vlrelu-neon-u32.c: In function ‘xnn_qs8_vlrelu_ukernel__neon_u32’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qs8-vlrelu/gen/qs8-vlrelu-neon-u32.c:29:53: error: passing argument 1 of ‘vld1q_dup_s16’ from incompatible pointer type [-Wincompatible-pointer-types]
29 | const int16x8_t vinput_zero_point = vld1q_dup_s16(¶ms->scalar.input_zero_point);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/qs8-vlrelu/gen/qs8-vlrelu-neon-u32.c:12:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11505:32: note: expected ‘const int16_t *’ {aka ‘const short int *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11505 | vld1q_dup_s16 (const int16_t * __a)
| ~~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qs8-vlrelu/gen/qs8-vlrelu-neon-u32.c:32:54: error: passing argument 1 of ‘vld1q_dup_s16’ from incompatible pointer type [-Wincompatible-pointer-types]
32 | const int16x8_t voutput_zero_point = vld1q_dup_s16(¶ms->scalar.output_zero_point);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11505:32: note: expected ‘const int16_t *’ {aka ‘const short int *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11505 | vld1q_dup_s16 (const int16_t * __a)
| ~~~~~~~~~~~~~~~~^~~
make[4]: *** [CMakeFiles/microkernels-prod.dir/build.make:5125: CMakeFiles/microkernels-prod.dir/src/qs8-vlrelu/gen/qs8-vlrelu-neon-u32.c.o] Error 1
make[4]: *** Waiting for unfinished jobs....
[ 4%] Building C object CMakeFiles/microkernels-prod.dir/src/x32-packw/gen/x32-packw-x8s4-gemm-goi-neon-ld4lane-u4-prfm.c.o
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qu8-vlrelu/gen/qu8-vlrelu-neon-u32.c: In function ‘xnn_qu8_vlrelu_ukernel__neon_u32’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qu8-vlrelu/gen/qu8-vlrelu-neon-u32.c:29:54: error: passing argument 1 of ‘vld1q_dup_u16’ from incompatible pointer type [-Wincompatible-pointer-types]
29 | const uint16x8_t vinput_zero_point = vld1q_dup_u16(¶ms->scalar.input_zero_point);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/qu8-vlrelu/gen/qu8-vlrelu-neon-u32.c:12:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11543:33: note: expected ‘const uint16_t *’ {aka ‘const short unsigned int *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11543 | vld1q_dup_u16 (const uint16_t * __a)
| ~~~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/qu8-vlrelu/gen/qu8-vlrelu-neon-u32.c:32:54: error: passing argument 1 of ‘vld1q_dup_s16’ from incompatible pointer type [-Wincompatible-pointer-types]
32 | const int16x8_t voutput_zero_point = vld1q_dup_s16(¶ms->scalar.output_zero_point);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11505:32: note: expected ‘const int16_t *’ {aka ‘const short int *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11505 | vld1q_dup_s16 (const int16_t * __a)
| ~~~~~~~~~~~~~~~~^~~
make[4]: *** [CMakeFiles/microkernels-prod.dir/build.make:6201: CMakeFiles/microkernels-prod.dir/src/qu8-vlrelu/gen/qu8-vlrelu-neon-u32.c.o] Error 1
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c: In function ‘xnn_s8_maxpool_minmax_ukernel_9p8x__neon_c16’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c:28:46: error: passing argument 1 of ‘vld1q_dup_s8’ from incompatible pointer type [-Wincompatible-pointer-types]
28 | const int8x16_t voutput_max = vld1q_dup_s8(¶ms->scalar.max);
| ^~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c:8:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11498:30: note: expected ‘const int8_t *’ {aka ‘const signed char *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11498 | vld1q_dup_s8 (const int8_t * __a)
| ~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c:29:46: error: passing argument 1 of ‘vld1q_dup_s8’ from incompatible pointer type [-Wincompatible-pointer-types]
29 | const int8x16_t voutput_min = vld1q_dup_s8(¶ms->scalar.min);
| ^~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11498:30: note: expected ‘const int8_t *’ {aka ‘const signed char *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11498 | vld1q_dup_s8 (const int8_t * __a)
| ~~~~~~~~~~~~~~~^~~
make[4]: *** [CMakeFiles/microkernels-prod.dir/build.make:6341: CMakeFiles/microkernels-prod.dir/src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c.o] Error 1
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c: In function ‘xnn_u8_maxpool_minmax_ukernel_9p8x__neon_c16’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c:31:47: error: passing argument 1 of ‘vld1q_dup_u8’ from incompatible pointer type [-Wincompatible-pointer-types]
31 | const uint8x16_t voutput_max = vld1q_dup_u8(¶ms->scalar.max);
| ^~~~~~~~~~~~~~~~~~~
| |
| const uint32_t * {aka const unsigned int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c:11:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11536:31: note: expected ‘const uint8_t *’ {aka ‘const unsigned char *’} but argument is of type ‘const uint32_t *’ {aka ‘const unsigned int *’}
11536 | vld1q_dup_u8 (const uint8_t * __a)
| ~~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c:32:47: error: passing argument 1 of ‘vld1q_dup_u8’ from incompatible pointer type [-Wincompatible-pointer-types]
32 | const uint8x16_t voutput_min = vld1q_dup_u8(¶ms->scalar.min);
| ^~~~~~~~~~~~~~~~~~~
| |
| const uint32_t * {aka const unsigned int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11536:31: note: expected ‘const uint8_t *’ {aka ‘const unsigned char *’} but argument is of type ‘const uint32_t *’ {aka ‘const unsigned int *’}
11536 | vld1q_dup_u8 (const uint8_t * __a)
| ~~~~~~~~~~~~~~~~^~~
make[4]: *** [CMakeFiles/microkernels-prod.dir/build.make:6453: CMakeFiles/microkernels-prod.dir/src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c.o] Error 1
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-vclamp/s8-vclamp-neon-u64.c: In function ‘xnn_s8_vclamp_ukernel__neon_u64’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-vclamp/s8-vclamp-neon-u64.c:24:46: error: passing argument 1 of ‘vld1q_dup_s8’ from incompatible pointer type [-Wincompatible-pointer-types]
24 | const int8x16_t voutput_max = vld1q_dup_s8(¶ms->scalar.max);
| ^~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-vclamp/s8-vclamp-neon-u64.c:8:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11498:30: note: expected ‘const int8_t *’ {aka ‘const signed char *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11498 | vld1q_dup_s8 (const int8_t * __a)
| ~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/s8-vclamp/s8-vclamp-neon-u64.c:25:46: error: passing argument 1 of ‘vld1q_dup_s8’ from incompatible pointer type [-Wincompatible-pointer-types]
25 | const int8x16_t voutput_min = vld1q_dup_s8(¶ms->scalar.min);
| ^~~~~~~~~~~~~~~~~~~
| |
| const int32_t * {aka const int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11498:30: note: expected ‘const int8_t *’ {aka ‘const signed char *’} but argument is of type ‘const int32_t *’ {aka ‘const int *’}
11498 | vld1q_dup_s8 (const int8_t * __a)
| ~~~~~~~~~~~~~~~^~~
make[4]: *** [CMakeFiles/microkernels-prod.dir/build.make:6369: CMakeFiles/microkernels-prod.dir/src/s8-vclamp/s8-vclamp-neon-u64.c.o] Error 1
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-vclamp/u8-vclamp-neon-u64.c: In function ‘xnn_u8_vclamp_ukernel__neon_u64’:
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-vclamp/u8-vclamp-neon-u64.c:24:47: error: passing argument 1 of ‘vld1q_dup_u8’ from incompatible pointer type [-Wincompatible-pointer-types]
24 | const uint8x16_t voutput_max = vld1q_dup_u8(¶ms->scalar.max);
| ^~~~~~~~~~~~~~~~~~~
| |
| const uint32_t * {aka const unsigned int *}
In file included from /home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-vclamp/u8-vclamp-neon-u64.c:8:
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11536:31: note: expected ‘const uint8_t *’ {aka ‘const unsigned char *’} but argument is of type ‘const uint32_t *’ {aka ‘const unsigned int *’}
11536 | vld1q_dup_u8 (const uint8_t * __a)
| ~~~~~~~~~~~~~~~~^~~
/home/buildroot/buildroot/output/build/xnnpack-custom/src/u8-vclamp/u8-vclamp-neon-u64.c:25:47: error: passing argument 1 of ‘vld1q_dup_u8’ from incompatible pointer type [-Wincompatible-pointer-types]
25 | const uint8x16_t voutput_min = vld1q_dup_u8(¶ms->scalar.min);
| ^~~~~~~~~~~~~~~~~~~
| |
| const uint32_t * {aka const unsigned int *}
/home/buildroot/buildroot/output/per-package/xnnpack/host/lib/gcc/arm-buildroot-linux-gnueabihf/14.2.0/include/arm_neon.h:11536:31: note: expected ‘const uint8_t *’ {aka ‘const unsigned char *’} but argument is of type ‘const uint32_t *’ {aka ‘const unsigned int *’}
11536 | vld1q_dup_u8 (const uint8_t * __a)
| ~~~~~~~~~~~~~~~~^~~
I'm seeing a bunch of errors like this when trying to cross compile for arm: