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 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-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 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-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 15:12 target/10077: gcc -msse2 generates movd to move dwords between xmm regs bangerth
-- strict thread matches above, loose matches on Subject: below --
2003-04-14 14:13 hubicka
2003-03-14 12:05 aj
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).