Skip to content

Commit a8e4ebb

Browse files
heitbaumjmvalin
authored andcommitted
Add OPUS_ARM_INLINE_DOTPROD dotprod check
fixes: ../meson.build:322:9: ERROR: Unknown variable "opus_arm_may_have_dotprod" after: dotprod check passes through. Checking if "compiler supports gcc-style inline assembly" compiles: YES Checking if "assembler supports EDSP instructions on ARM" compiles: YES Checking if "assembler supports ARMv6 media instructions on ARM" compiles: YES Checking if "assembler supports NEON instructions on ARM" compiles: YES Checking if "assembler supports DOTPROD instructions on ARM" compiles: NO Program perl found: YES (/usr/bin/perl) Fetching value of define "__APPLE__" : (undefined) Checking if "compiler supports ARMv7/AArch64 NEON intrinsics" : links: YES Checking if "compiler supports AArch64 NEON intrinsics" : links: NO Checking if "compiler supports AArch64 NEON intrinsics with -mfpu=neon" : links: NO Message: Compiler does not support AArch64 NEON intrinsics Checking if "compiler supports AArch64 DOTPROD intrinsics" : links: NO Checking if "compiler supports AArch64 DOTPROD intrinsics with -march=armv8.2-a+dotprod" : links: NO Message: Compiler does not support AArch64 DOTPROD intrinsics refer: - https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/exploring-the-arm-dot-product-instructions test with: armv7ve-none-linux-gnueabihf-gcc test.c /tmp/cc02sooK.s: Assembler messages: /tmp/cc02sooK.s:32: Error: bad instruction `udot v0.4s,v1.16b,v2.16b' aarch64-none-linux-gnu-gcc test.c /tmp/ccnVi9Ec.s: Assembler messages: /tmp/ccnVi9Ec.s:12: Error: selected processor does not support `udot v0.4s,v1.16b,v2.16b' aarch64-none-linux-gnu-gcc -march=armv8.2-a+dotprod test.c Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com> Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
1 parent e2d0182 commit a8e4ebb

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

meson.build

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,13 @@ if not opt_asm.disabled()
252252
opus_conf.set('OPUS_ARM_INLINE_NEON', 1)
253253
inline_optimization += ['NEON']
254254
endif
255+
256+
# AS_ASM_ARM_DOTPROD
257+
if cc.compiles(asm_tmpl.format('udot v0.4s,v1.16b,v2.16b'),
258+
name : 'assembler supports DOTPROD instructions on ARM')
259+
opus_conf.set('OPUS_ARM_INLINE_DOTPROD', 1)
260+
inline_optimization += ['DOTPROD']
261+
endif
255262
endif
256263

257264
# We need Perl to translate RVCT-syntax asm to gas syntax
@@ -273,6 +280,9 @@ if not opt_asm.disabled()
273280
opus_arm_may_have_neon = opus_conf.has('OPUS_ARM_INLINE_NEON')
274281
opus_arm_presume_neon = opus_arm_may_have_neon and opus_can_presume_simd
275282

283+
opus_arm_may_have_dotprod = opus_conf.has('OPUS_ARM_INLINE_DOTPROD')
284+
opus_arm_presume_dotprod = opus_arm_may_have_dotprod and opus_can_presume_simd
285+
276286
if not opt_rtcd.disabled()
277287
if not opus_arm_may_have_edsp
278288
message('Trying to force-enable armv5e EDSP instructions...')

0 commit comments

Comments
 (0)