[llvm-bugs] [Bug 26884] New: clang O3/O2 error for Linpack with NEON instructions

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Mar 8 18:23:18 PST 2016


https://llvm.org/bugs/show_bug.cgi?id=26884

            Bug ID: 26884
           Summary: clang O3/O2 error for Linpack with NEON instructions
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Keywords: compile-fail
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: junaidshuja at siswa.um.edu.my
                CC: llvm-bugs at lists.llvm.org, renato.golin at linaro.org
    Classification: Unclassified

Created attachment 16012
  --> https://llvm.org/bugs/attachment.cgi?id=16012&action=edit
source file

I am using code Neonlinpack code from,
http://www.roylongbottom.org.uk/Raspberry_Pi_Benchmarks.zip

When I compile it with clang without any optimization flags, it runs OK. But
when I use O3/O2 flags in command,

clang -target armv7a-linux-gnueabihf -mfpu=neon -mfloat-abi=hard linpackneon.c
cpuidc.c -O3 -o linpackneon
I get the following errors

In file included from cpuidc.c:13:
In file included from /usr/include/math.h:426:
/usr/include/bits/mathinline.h:756:25: error: invalid output constraint '=&q'
in
      asm
                    : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp),       \
                                      ^
/usr/include/bits/mathinline.h:756:25: error: invalid output constraint '=&q'
in
      asm
/usr/include/bits/mathinline.h:756:25: error: invalid output constraint '=&q'
in
      asm
/usr/include/bits/mathinline.h:774:25: error: invalid output constraint '=&q'
in
      asm
                    : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp),       \
                                      ^
/usr/include/bits/mathinline.h:774:25: error: invalid output constraint '=&q'
in
      asm
/usr/include/bits/mathinline.h:774:25: error: invalid output constraint '=&q'
in
      asm
/usr/include/bits/mathinline.h:881:3: error: unknown register name 'st' in asm
  __lrint_code;
  ^
/usr/include/bits/mathinline.h:876:40: note: expanded from macro '__lrint_code'
     : "=m" (__lrintres) : "t" (__x) : "st");

What is the reason behind these errors. I do not encounter such errors with
GCC. The files can be downloaded from the above link and I am attaching
cpuidc.c in the attachments.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160309/d56e5827/attachment.html>


More information about the llvm-bugs mailing list