1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2 /* { dg-options -O0 } */
4 typedef int SItype
__attribute__ ((mode (SI
)));
5 typedef int DItype
__attribute__ ((mode (DI
)));
6 typedef unsigned int USItype
__attribute__ ((mode (SI
)));
7 struct DIstruct
{SItype low
, high
;};
14 __muldi3 (DItype u
, DItype v
)
20 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
; }) ;
21 w
.s
.high
+= ((USItype
) uu
.s
.low
* (USItype
) vv
.s
.high
22 + (USItype
) uu
.s
.high
* (USItype
) vv
.s
.low
);