https://sourceware.org/bugzilla/show_bug.cgi?id=28078
Bug ID: 28078 Summary: arm: fails to build when using armv8 neon with dotprod extension Product: binutils Version: 2.36.1 Status: UNCONFIRMED Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: happyalu at gmail dot com Target Milestone: --- I was trying to build tensorflow-lite v2.5 with a custom toolchain that was using binutils 2.36.1. The build failed when building the xnnpack project with an error: /tmp/ccMSJOfk.s:380: Error: selected processor does not support `vsdot.s8 q12,q9,d11[0]' in ARM mode Some of my notes about this issue are here: https://github.com/google/XNNPACK/issues/1465#issuecomment-877910701 Following is a minimal example to reproduce this: // file: test.c #include <arm_neon.h> int32x2_t test(int32x2_t a, int8x8_t b, int8x8_t c) { return vdot_lane_s32(a, b, c, 1); } // EOF $ arm-unknown-linux-gnueabihf-gcc -march=armv8.2-a+dotprod -mfpu=neon-fp-armv8 test.c -S -o test.s $ arm-unknown-linux-gnueabihf-as -march=armv8.2-a+dotprod -mfpu=neon-fp-armv8 test.s /tmp/cc7vCQog.s: Assembler messages: /tmp/cc7vCQog.s:42: Error: selected processor does not support `vsdot.s8 d17,d16,d7[1]' in ARM mode This happens with gcc 8, 9 and 10. Binutils 2.32, 2.33.1 works. Binutils 2.34 and later does not build. This seems to be related to commit https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f439988037a589de3798f44e7268301adaec21a9 that changed the behavior of fpu directives. The generated assembly has the following snippet: .arch armv8.2-a .arch_extension dotprod .syntax unified .arm .fpu neon-fp-armv8 The fpu directive basically cancels the dotprod extension setup just above. I also see later commits that have changed MVE and CRC to CORE_HIGH section; not sure if something like that is relevant for dotprod. -- You are receiving this mail because: You are on the CC list for the bug.