public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: target/10077: gcc -msse2 generates movd to move dwords between xmm regs
@ 2003-03-14 12:05 aj
  0 siblings, 0 replies; 5+ messages in thread
From: aj @ 2003-03-14 12:05 UTC (permalink / raw)
  To: douze, gcc-bugs, gcc-prs, hubicka, nobody

Synopsis: gcc -msse2 generates movd to move dwords between xmm regs

Responsible-Changed-From-To: unassigned->hubicka
Responsible-Changed-By: aj
Responsible-Changed-When: Fri Mar 14 12:05:46 2003
Responsible-Changed-Why:
    SSE2 expert ;-)

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10077


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

* Re: target/10077: gcc -msse2 generates movd to move dwords between xmm regs
@ 2003-04-14 14:13 hubicka
  0 siblings, 0 replies; 5+ messages in thread
From: hubicka @ 2003-04-14 14:13 UTC (permalink / raw)
  To: douze, gcc-bugs, gcc-prs, hubicka

Synopsis: gcc -msse2 generates movd to move dwords between xmm regs

State-Changed-From-To: analyzed->closed
State-Changed-By: hubicka
State-Changed-When: Mon Apr 14 14:13:38 2003
State-Changed-Why:
    Fixed.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10077


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

* Re: target/10077: gcc -msse2 generates movd to move dwords between xmm regs
@ 2003-03-14 15:12 bangerth
  0 siblings, 0 replies; 5+ messages in thread
From: bangerth @ 2003-03-14 15:12 UTC (permalink / raw)
  To: douze, gcc-bugs, gcc-prs, hubicka

Synopsis: gcc -msse2 generates movd to move dwords between xmm regs

State-Changed-From-To: open->analyzed
State-Changed-By: bangerth
State-Changed-When: Fri Mar 14 15:12:08 2003
State-Changed-Why:
    I can confirm this: it leads to an assembler error with
    3.2.2 and 3.3, but not with 3.4:
    
    g/x> /home/bangerth/bin/gcc-3.3-pre/bin/gcc -c gcc_bug.i -msse2 -O3
    /tmp/ccn5g6XV.s: Assembler messages:
    /tmp/ccn5g6XV.s:127: Error: suffix or operands invalid for `movd'
    
    I leave it to others to find out where this problem comes
    from. Since mainline compiles and assembles this file
    just fine, this seems indeed like a problem in the compiler.
    
    The instruction in question is this one:
    	movd	%xmm7, %xmm3
    
    W.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10077


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

* Re: target/10077: gcc -msse2 generates movd to move dwords between xmm regs
@ 2003-03-14  9:36 Andreas Jaeger
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Jaeger @ 2003-03-14  9:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR target/10077; it has been noted by GNATS.

From: Andreas Jaeger <aj@suse.de>
To: douze@enseeiht.fr
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: target/10077: gcc -msse2 generates movd to move dwords between
 xmm regs
Date: Fri, 14 Mar 2003 10:31:02 +0100

 douze@enseeiht.fr writes:
 
 >>Number:         10077
 >>Category:       target
 >>Synopsis:       gcc -msse2 generates movd to move dwords between xmm regs
 >>Confidential:   no
 >>Severity:       critical
 >>Priority:       medium
 >>Responsible:    unassigned
 >>State:          open
 >>Class:          sw-bug
 >>Submitter-Id:   net
 >>Arrival-Date:   Fri Mar 14 08:16:00 UTC 2003
 >>Closed-Date:
 >>Last-Modified:
 >>Originator:     douze@enseeiht.fr
 >>Release:        gcc 3.2.2 on x86
 >>Organization:
 >>Environment:
 > Linux 2.4.18
 >>Description:
 > The bug appears when I compile a function with many variables. GCC then uses xmm registers as 32-bit scalar integer registers.
 >
 > When it has to move data with an xmm register involved, it generates a movd instruction, which doesn't work (movss might work better). Although there is sse2 assembly in my code, I don't think it comes from there. 
 >
 > The assembler used is GNU assembler version 2.11.92.0.10 (i486-suse-linux) using BFD version 2.11.92.0.10 20011021 (SuSE)
 >>How-To-Repeat:
 > Compile the code with 
 >
 > gcc -c gcc_bug.i -msse2 -O3
 >>Fix:
 > replace movd with movss in the .s file
 
 Which instruction is generated in this case?  I only see one movd
 generated (with not exactly the same compiler) and that one looks fine
 to me (and might even come from your inline assembler).
 
 Please tell us a bit more why the generated code is wrong, 
 
 Andreas
 -- 
  Andreas Jaeger
   SuSE Labs aj@suse.de
    private aj@arthur.inka.de
     http://www.suse.de/~aj


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

* target/10077: gcc -msse2 generates movd to move dwords between xmm regs
@ 2003-03-14  8:16 douze
  0 siblings, 0 replies; 5+ messages in thread
From: douze @ 2003-03-14  8:16 UTC (permalink / raw)
  To: gcc-gnats


>Number:         10077
>Category:       target
>Synopsis:       gcc -msse2 generates movd to move dwords between xmm regs
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 14 08:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     douze@enseeiht.fr
>Release:        gcc 3.2.2 on x86
>Organization:
>Environment:
Linux 2.4.18
>Description:
The bug appears when I compile a function with many variables. GCC then uses xmm registers as 32-bit scalar integer registers.

When it has to move data with an xmm register involved, it generates a movd instruction, which doesn't work (movss might work better). Although there is sse2 assembly in my code, I don't think it comes from there. 

The assembler used is GNU assembler version 2.11.92.0.10 (i486-suse-linux) using BFD version 2.11.92.0.10 20011021 (SuSE)
>How-To-Repeat:
Compile the code with 

gcc -c gcc_bug.i -msse2 -O3
>Fix:
replace movd with movss in the .s file
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gcc_bug.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc_bug.i"

CiAKdHlwZWRlZiBpbnQgbTEyOCAKICAgIF9fYXR0cmlidXRlX18gKChfX21vZGVfXyhfX1Y0U0lf
XyksYWxpZ25lZCgxNikpKTsKCiAKc3RhdGljIF9faW5saW5lIG0xMjggeG1tX21hZGQobTEyOCBh
LG0xMjggYixtMTI4IGMpIHsKICBhc20gdm9sYXRpbGUoCiAgICAgICIgIHBtYWRkd2QgJTIsJTBc
biIKICAgICAgIiAgcGFkZGQgJTAsJTFcbiIKICAgICAgOiAiK3giIChiKSwiK3giIChjKQogICAg
ICA6ICJ4bSIgKGEpKTsKICByZXR1cm4gYzsKfQoKIAogCnN0YXRpYyBfX2lubGluZSBpbnQgeG1t
X2dldF8zMihtMTI4IGEpIHsKICBpbnQgYjsgCiAgYXNtIHZvbGF0aWxlKAogICAgICAiICBtb3Zk
ICUxLCUwIiAKICAgICAgOiAiPXEiIChiKQogICAgICA6ICJ4IiAoYSkpOwogIHJldHVybiBiOwp9
CgoKCgoKCgp2b2lkIGF0cmFfcygKICAgIHNob3J0ICphLGludCBtLGludCBuLGludCBsZGEsCiAg
ICBkb3VibGUgKmF0YSkgewogIGludCBpMSxqMTsKICBpbnQgbmQ9bi8gOCAsbmM9bmQqIDggOwog
IGludCBtZD1tLyA4ICxtYz1tZCogOCA7CgogIGZvcihpMT0wO2kxPG5kO2kxKyspIHsKICAgIHNo
b3J0ICpiaT1hK2xkYSppMSogOCA7CgogICAgZm9yKGoxPWkxKzE7ajE8bmQ7ajErKykgewogICAg
ICBtMTI4IGFjY3VbOCAqIDggXTsKICAgICAgc2hvcnQgKmJqPWErbGRhKmoxKiA4IDsKICAgICAg
aW50IGksaixrOwogICAgICBkb3VibGUgKmF0YV9sPWF0YStpMSogOCArajEqIDggKm47CiAgICAg
CiAgICAgIGZvcihrPTA7azxtZDtrKyspIHsKICAgICAgICBzaG9ydCAqbGk9YmkrayogOCA7CiAg
ICAgICAgc2hvcnQgKmxqPWJqK2sqIDggOwogICAgICAgIGZvcihqPTA7ajwgOCA7aisrKSBmb3Io
aT0wO2k8IDggO2krKykgewoJICBtMTI4IGFjY3UxOwogICAgICAgICAgbTEyOCAqbWk9KHZvaWQq
KShsaStpKmxkYSk7CiAgICAgICAgICBtMTI4ICptaj0odm9pZCopKGxqK2oqbGRhKTsKICAgICAg
ICAgIGFjY3UxPWFjY3VbaStqKiA4IF07CgkgIAkgIAogICAgICAgICAgYWNjdTE9eG1tX21hZGQo
bWlbMF0sbWpbMF0sYWNjdTEpOwoJICAKCSAgYWNjdVtpK2oqIDggXT1hY2N1MTsKICAgICAgICB9
ICAgICAgICAKICAgICAgfQoKCiAgICAgIGZvcihqPTA7ajwgOCA7aisrKSBmb3IoaT0wO2k8IDgg
O2krKykgewogICAgICAgIHNob3J0ICpsaT1iaStpKmxkYTsKICAgICAgICBzaG9ydCAqbGo9Ymor
aipsZGE7CiAgICAgICAgaW50IGFjY3UxOwoJYWNjdTE9eG1tX2dldF8zMihhY2N1W2kraiogOCBd
KTsKCQogICAgICAgIGZvcihrPW1jO2s8bTtrKyspIHsKICAgICAgICAgIGFjY3UxKz1saVtrXSps
altrXTsKCX0KICAgICAgICBhdGFfbFtpK2oqbl09YWNjdTE7CiAgICAgIH0KICAgICAgCiAgICB9
CiAgfQoKfQoKCgoKCg==


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

end of thread, other threads:[~2003-04-14 14:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-14 12:05 target/10077: gcc -msse2 generates movd to move dwords between xmm regs aj
  -- strict thread matches above, loose matches on Subject: below --
2003-04-14 14:13 hubicka
2003-03-14 15:12 bangerth
2003-03-14  9:36 Andreas Jaeger
2003-03-14  8:16 douze

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