* gcc.dg/990130-1.c: New test.
From-SVN: r24917
This commit is contained in:
parent
9eab30bcdc
commit
763c44454c
2 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
|||
Sat Jan 30 11:10:06 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* gcc.dg/990130-1.c: New test.
|
||||
|
||||
Sun Jan 17 00:02:33 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* gcc.dg/990117-1.c: New test.
|
||||
|
|
24
gcc/testsuite/gcc.dg/990130-1.c
Normal file
24
gcc/testsuite/gcc.dg/990130-1.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* { dg-do compile { target i?86-*-* } } */
|
||||
/* { dg-options -O0 } */
|
||||
|
||||
typedef int SItype __attribute__ ((mode (SI)));
|
||||
typedef int DItype __attribute__ ((mode (DI)));
|
||||
typedef unsigned int USItype __attribute__ ((mode (SI)));
|
||||
struct DIstruct {SItype low, high;};
|
||||
typedef union
|
||||
{
|
||||
struct DIstruct s;
|
||||
DItype ll;
|
||||
} DIunion;
|
||||
DItype
|
||||
__muldi3 (DItype u, DItype v)
|
||||
{
|
||||
DIunion w;
|
||||
DIunion uu, vv;
|
||||
uu.ll = u,
|
||||
vv.ll = v;
|
||||
w.ll = ({DIunion __w; __asm__ ("mull %3" : "=a" ((USItype) ( __w.s.low )), "=d" ((USItype) ( __w.s.high )) : "%0" ((USItype) ( uu.s.low )), "rm" ((USItype) ( vv.s.low ))) ; __w.ll; }) ;
|
||||
w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
|
||||
+ (USItype) uu.s.high * (USItype) vv.s.low);
|
||||
return w.ll;
|
||||
}
|
Loading…
Add table
Reference in a new issue