public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d'
@ 2020-04-14 10:26 zsojka at seznam dot cz
  2020-04-14 10:46 ` [Bug target/94591] " ktkachov at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: zsojka at seznam dot cz @ 2020-04-14 10:26 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

            Bug ID: 94591
           Summary: [8/9/10 Regression] Assembler messages: Error: operand
                    mismatch -- `rev64 v0.2d,v0.2d'
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: assemble-failure
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: aarch64-unknown-linux-gnu

Created attachment 48266
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48266&action=edit
reduced testcase

Compiler output:
$ aarch64-unknown-linux-gnu-gcc testcase.c
/tmp/ccPr88U5.s: Assembler messages:
/tmp/ccPr88U5.s:13: Error: operand mismatch -- `rev64 v0.2d,v0.2d'
/tmp/ccPr88U5.s:13: Info:    did you mean this?
/tmp/ccPr88U5.s:13: Info:       rev64 v0.8b, v0.8b
/tmp/ccPr88U5.s:13: Info:    other valid variant(s):
/tmp/ccPr88U5.s:13: Info:       rev64 v0.16b, v0.16b
/tmp/ccPr88U5.s:13: Info:       rev64 v0.4h, v0.4h
/tmp/ccPr88U5.s:13: Info:       rev64 v0.8h, v0.8h
/tmp/ccPr88U5.s:13: Info:       rev64 v0.2s, v0.2s
/tmp/ccPr88U5.s:13: Info:       rev64 v0.4s, v0.4s

According to
https://developer.arm.com/docs/dui0801/latest/a64-simd-vector-instructions/rev64-vector
, the operand is invalid.

$ aarch64-unknown-linux-gnu-gcc -v        
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-aarch64/bin/aarch64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r10-7709-20200413231231-g7eee265e6bd-checking-yes-rtl-df-extra-aarch64/bin/../libexec/gcc/aarch64-unknown-linux-gnu/10.0.1/lto-wrapper
Target: aarch64-unknown-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl
--with-sysroot=/usr/aarch64-unknown-linux-gnu --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=aarch64-unknown-linux-gnu
--with-ld=/usr/bin/aarch64-unknown-linux-gnu-ld
--with-as=/usr/bin/aarch64-unknown-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r10-7709-20200413231231-g7eee265e6bd-checking-yes-rtl-df-extra-aarch64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.0.1 20200414 (experimental) (GCC)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d'
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
@ 2020-04-14 10:46 ` ktkachov at gcc dot gnu.org
  2020-04-14 10:49 ` rguenth at gcc dot gnu.org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2020-04-14 10:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-04-14
     Ever confirmed|0                           |1
                 CC|                            |ktkachov at gcc dot gnu.org

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Confirmed

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d'
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
  2020-04-14 10:46 ` [Bug target/94591] " ktkachov at gcc dot gnu.org
@ 2020-04-14 10:49 ` rguenth at gcc dot gnu.org
  2020-04-29 10:06 ` zsojka at seznam dot cz
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2020-04-14 10:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |8.5
           Priority|P3                          |P2

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d'
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
  2020-04-14 10:46 ` [Bug target/94591] " ktkachov at gcc dot gnu.org
  2020-04-14 10:49 ` rguenth at gcc dot gnu.org
@ 2020-04-29 10:06 ` zsojka at seznam dot cz
  2020-05-19 19:44 ` [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s') cvs-commit at gcc dot gnu.org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: zsojka at seznam dot cz @ 2020-04-29 10:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

--- Comment #2 from Zdenek Sojka <zsojka at seznam dot cz> ---
Created attachment 48406
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48406&action=edit
another testcase

$ aarch64-unknown-linux-gnu-gcc testcase.c
/tmp/ccTL3N2N.s: Assembler messages:
/tmp/ccTL3N2N.s:19: Error: operand mismatch -- `rev32 v0.2s,v0.2s'
/tmp/ccTL3N2N.s:19: Info:    did you mean this?
/tmp/ccTL3N2N.s:19: Info:       rev32 v0.8b, v0.8b
/tmp/ccTL3N2N.s:19: Info:    other valid variant(s):
/tmp/ccTL3N2N.s:19: Info:       rev32 v0.16b, v0.16b
/tmp/ccTL3N2N.s:19: Info:       rev32 v0.4h, v0.4h
/tmp/ccTL3N2N.s:19: Info:       rev32 v0.8h, v0.8h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2020-04-29 10:06 ` zsojka at seznam dot cz
@ 2020-05-19 19:44 ` cvs-commit at gcc dot gnu.org
  2020-05-19 20:09 ` acoplan at gcc dot gnu.org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-19 19:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alex Coplan <acoplan@gcc.gnu.org>:

https://gcc.gnu.org/g:98452668d362bb9e6358f7eb5cff69f4f5ab1d45

commit r11-502-g98452668d362bb9e6358f7eb5cff69f4f5ab1d45
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Tue May 19 20:33:20 2020 +0100

    [aarch64] PR target/94591: Don't generate invalid REV64 insns

    This fixes PR94591. The problem was the function aarch64_evpc_rev_local()
    matching vector permutations that were not reversals. In particular, prior
to
    this patch, this function matched the identity permutation which led to
    generating bogus REV64 insns which were rejected by the assembler.

    gcc/
            PR target/94591
            * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
            identity permutation.

    gcc/testsuite/
            PR target/94591
            * gcc.c-torture/execute/pr94591.c: New test.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2020-05-19 19:44 ` [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s') cvs-commit at gcc dot gnu.org
@ 2020-05-19 20:09 ` acoplan at gcc dot gnu.org
  2020-05-20  8:43 ` acoplan at gcc dot gnu.org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-05-19 20:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |acoplan at gcc dot gnu.org
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> ---
This is now fixed on master, although the fix will need backporting.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2020-05-19 20:09 ` acoplan at gcc dot gnu.org
@ 2020-05-20  8:43 ` acoplan at gcc dot gnu.org
  2020-05-29 13:06 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-05-20  8:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
             Status|RESOLVED                    |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |acoplan at gcc dot gnu.org

--- Comment #5 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Re-opening to track backporting progress.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2020-05-20  8:43 ` acoplan at gcc dot gnu.org
@ 2020-05-29 13:06 ` cvs-commit at gcc dot gnu.org
  2020-05-29 13:20 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-29 13:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Alex Coplan
<acoplan@gcc.gnu.org>:

https://gcc.gnu.org/g:49824d35e0c87a5fdb3f5ea41223aa21d6ca6bfc

commit r10-8207-g49824d35e0c87a5fdb3f5ea41223aa21d6ca6bfc
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Fri May 29 14:05:11 2020 +0100

    aarch64: PR target/94591: Don't generate invalid REV64 insns

    This fixes PR94591. The problem was the function aarch64_evpc_rev_local()
    matching vector permutations that were not reversals. In particular, prior
to
    this patch, this function matched the identity permutation which led to
    generating bogus REV64 insns which were rejected by the assembler.

    gcc/
            PR target/94591
            * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
            identity permutation.

    gcc/testsuite/
            PR target/94591
            * gcc.c-torture/execute/pr94591.c: New test.

    (cherry picked from commit 98452668d362bb9e6358f7eb5cff69f4f5ab1d45)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2020-05-29 13:06 ` cvs-commit at gcc dot gnu.org
@ 2020-05-29 13:20 ` cvs-commit at gcc dot gnu.org
  2020-05-29 13:23 ` cvs-commit at gcc dot gnu.org
  2020-05-29 13:34 ` acoplan at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-29 13:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-9 branch has been updated by Alex Coplan
<acoplan@gcc.gnu.org>:

https://gcc.gnu.org/g:2631d84ba7dedc3c5c9f77e7065fbfbc11876ca6

commit r9-8638-g2631d84ba7dedc3c5c9f77e7065fbfbc11876ca6
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Fri May 29 14:19:23 2020 +0100

    aarch64: PR target/94591: Don't generate invalid REV64 insns

    This fixes PR94591. The problem was the function
    aarch64_evpc_rev_local() matching vector permutations that were not
    reversals. In particular, prior to this patch, this function matched the
    identity permutation which led to generating bogus REV64 insns which
    were rejected by the assembler.

    gcc/
            PR target/94591
            * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
            identity permutation.

    gcc/testsuite/
            PR target/94591
            * gcc.c-torture/execute/pr94591.c: New test.

    (cherry picked from commit 98452668d362bb9e6358f7eb5cff69f4f5ab1d45)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (7 preceding siblings ...)
  2020-05-29 13:20 ` cvs-commit at gcc dot gnu.org
@ 2020-05-29 13:23 ` cvs-commit at gcc dot gnu.org
  2020-05-29 13:34 ` acoplan at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-05-29 13:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Alex Coplan
<acoplan@gcc.gnu.org>:

https://gcc.gnu.org/g:b64ec9c3eea5204b90936e332704e6f57470f6e5

commit r8-10285-gb64ec9c3eea5204b90936e332704e6f57470f6e5
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Fri May 29 14:23:02 2020 +0100

    aarch64: PR target/94591: Don't generate invalid REV64 insns

    This fixes PR94591. The problem was the function
    aarch64_evpc_rev_local() matching vector permutations that were not
    reversals. In particular, prior to this patch, this function matched the
    identity permutation which led to generating bogus REV64 insns which
    were rejected by the assembler.

    gcc/
            PR target/94591
            * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
            identity permutation.

    gcc/testsuite/
            PR target/94591
            * gcc.c-torture/execute/pr94591.c: New test.

    (cherry picked from commit 98452668d362bb9e6358f7eb5cff69f4f5ab1d45)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')
  2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
                   ` (8 preceding siblings ...)
  2020-05-29 13:23 ` cvs-commit at gcc dot gnu.org
@ 2020-05-29 13:34 ` acoplan at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-05-29 13:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94591

Alex Coplan <acoplan at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #9 from Alex Coplan <acoplan at gcc dot gnu.org> ---
This is now fixed on all branches affected by the regression.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-05-29 13:34 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-14 10:26 [Bug target/94591] New: [8/9/10 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' zsojka at seznam dot cz
2020-04-14 10:46 ` [Bug target/94591] " ktkachov at gcc dot gnu.org
2020-04-14 10:49 ` rguenth at gcc dot gnu.org
2020-04-29 10:06 ` zsojka at seznam dot cz
2020-05-19 19:44 ` [Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s') cvs-commit at gcc dot gnu.org
2020-05-19 20:09 ` acoplan at gcc dot gnu.org
2020-05-20  8:43 ` acoplan at gcc dot gnu.org
2020-05-29 13:06 ` cvs-commit at gcc dot gnu.org
2020-05-29 13:20 ` cvs-commit at gcc dot gnu.org
2020-05-29 13:23 ` cvs-commit at gcc dot gnu.org
2020-05-29 13:34 ` acoplan at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).