public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/53724] New: ICE when using the 'd' asm operand modifier
@ 2012-06-19 22:35 svfuerst at gmail dot com
  2012-06-20  7:46 ` [Bug target/53724] " ubizjak at gmail dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: svfuerst at gmail dot com @ 2012-06-19 22:35 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724

             Bug #: 53724
           Summary: ICE when using the 'd' asm operand modifier
    Classification: Unclassified
           Product: gcc
           Version: 4.7.1
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: svfuerst@gmail.com


The following gives:
internal compiler error: in print_reg, at config/i386/i386.c:13692

typedef double ymmd __attribute__ ((vector_size (32)));
ymmd func(ymmd p1, ymmd p2)
{
    asm ("vfmadd132pd %1, %d0"
        : "+x" (p1) : "x" (p2));
    return p1;
}

when compiled with "gcc-4.7 -mavx -O2 gcc_asm.c -S -o gcc_asm.S"
using gcc-4.7.real (Debian 4.7.1-1) 4.7.0 on x86_64


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

* [Bug target/53724] ICE when using the 'd' asm operand modifier
  2012-06-19 22:35 [Bug target/53724] New: ICE when using the 'd' asm operand modifier svfuerst at gmail dot com
@ 2012-06-20  7:46 ` ubizjak at gmail dot com
  2012-06-20  9:12 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: ubizjak at gmail dot com @ 2012-06-20  7:46 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724

Uros Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com

--- Comment #1 from Uros Bizjak <ubizjak at gmail dot com> 2012-06-20 07:45:35 UTC ---
(In reply to comment #0)
> The following gives:
> internal compiler error: in print_reg, at config/i386/i386.c:13692
> 
> typedef double ymmd __attribute__ ((vector_size (32)));
> ymmd func(ymmd p1, ymmd p2)
> {
>     asm ("vfmadd132pd %1, %d0"
>         : "+x" (p1) : "x" (p2));
>     return p1;
> }

For some reason we assert that ymm registers can't be duplicated. H.J.?


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

* [Bug target/53724] ICE when using the 'd' asm operand modifier
  2012-06-19 22:35 [Bug target/53724] New: ICE when using the 'd' asm operand modifier svfuerst at gmail dot com
  2012-06-20  7:46 ` [Bug target/53724] " ubizjak at gmail dot com
@ 2012-06-20  9:12 ` rguenth at gcc dot gnu.org
  2012-06-20 12:25 ` hjl.tools at gmail dot com
  2012-06-20 12:38 ` hjl.tools at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-20  9:12 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86_64-*-*, i?86-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-06-20
     Ever Confirmed|0                           |1
           Severity|enhancement                 |normal

--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-20 09:11:42 UTC ---
Confirmed.


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

* [Bug target/53724] ICE when using the 'd' asm operand modifier
  2012-06-19 22:35 [Bug target/53724] New: ICE when using the 'd' asm operand modifier svfuerst at gmail dot com
  2012-06-20  7:46 ` [Bug target/53724] " ubizjak at gmail dot com
  2012-06-20  9:12 ` rguenth at gcc dot gnu.org
@ 2012-06-20 12:25 ` hjl.tools at gmail dot com
  2012-06-20 12:38 ` hjl.tools at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: hjl.tools at gmail dot com @ 2012-06-20 12:25 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2012-06-20 12:25:30 UTC ---
'd' is used to encode SSE instructions with VEX
encoding.  There are no SSE instructions with YMM
registers.


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

* [Bug target/53724] ICE when using the 'd' asm operand modifier
  2012-06-19 22:35 [Bug target/53724] New: ICE when using the 'd' asm operand modifier svfuerst at gmail dot com
                   ` (2 preceding siblings ...)
  2012-06-20 12:25 ` hjl.tools at gmail dot com
@ 2012-06-20 12:38 ` hjl.tools at gmail dot com
  3 siblings, 0 replies; 5+ messages in thread
From: hjl.tools at gmail dot com @ 2012-06-20 12:38 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53724

--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> 2012-06-20 12:38:12 UTC ---
Something like this

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index e2f5740..0daf601 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -13879,7 +13879,8 @@ print_reg (rtx x, int code, FILE *file)
     case 32:
       if (SSE_REG_P (x))
     {
-      gcc_assert (!duplicated);
+      if (duplicated)
+        error ("unsupported `d' specifier on AVX register");
       putc ('y', file);
       fputs (hi_reg_name[REGNO (x)] + 1, file);
       return;


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

end of thread, other threads:[~2012-06-20 12:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-19 22:35 [Bug target/53724] New: ICE when using the 'd' asm operand modifier svfuerst at gmail dot com
2012-06-20  7:46 ` [Bug target/53724] " ubizjak at gmail dot com
2012-06-20  9:12 ` rguenth at gcc dot gnu.org
2012-06-20 12:25 ` hjl.tools at gmail dot com
2012-06-20 12:38 ` hjl.tools at gmail dot com

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).