This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/33552] [4.3 Regression] wrong code for multiple output asm, wrong df?
- From: "belyshev at depni dot sinp dot msu dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Sep 2007 08:01:35 -0000
- Subject: [Bug rtl-optimization/33552] [4.3 Regression] wrong code for multiple output asm, wrong df?
- References: <bug-33552-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #17 from belyshev at depni dot sinp dot msu dot ru 2007-09-27 08:01 -------
(In reply to comment #16)
something like this (for gcc.target/i386):
/* { dg-do run } */
/* { dg-require-effective-target lp64 } */
/* { dg-options "-O2"} */
unsigned long a [100];
int main (void)
{
unsigned long v = 0x500000000UL, c = 13, low, high;
long j;
a [0] = 0x200000000UL;
a [1] = 0x300000000UL;
for (j = 0; j < 100; j++)
{
asm ("mulq %3"
: "=a" (low), "=d" (high)
: "0" (a [j]), "rm" (v));
asm ("addq %5,%q1\n\tadcq %3,%q0"
: "=r" (c), "=&r" (a [j])
: "0" (high), "rme" (0), "1" (low), "rme" (c));
}
if (a [0] != 13 || a [1] != 10 || a [2] != 15 || a [3] != 0)
__builtin_abort ();
return 0;
}
--
belyshev at depni dot sinp dot msu dot ru changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |belyshev at depni dot sinp
| |dot msu dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33552