bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/28078] New: arm: fails to build when using armv8 neon with dot


From: happyalu at gmail dot com
Subject: [Bug gas/28078] New: arm: fails to build when using armv8 neon with dotprod extension
Date: Mon, 12 Jul 2021 04:50:04 +0000

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]