1 /* PR rtl-optimization/33552 */
3 /* { dg-options "-O2" } */
5 extern void abort (void);
8 __attribute__((noinline
))
9 foo (unsigned long *wp
, unsigned long *up
, long un
, unsigned long *vp
)
12 unsigned long prod_low
, prod_high
;
17 for (j
= un
; j
> 0; j
--)
19 unsigned long u_limb
, w_limb
;
22 : "=r" (prod_low
), "=r" (prod_high
)
23 : "0" (u_limb
), "1" (v_limb
));
24 __asm__ ("mov %5, %1; add %5, %0"
25 : "=r" (cy_dig
), "=&r" (w_limb
)
26 : "0" (prod_high
), "rm" (0), "1" (prod_low
), "rm" (cy_dig
));
35 unsigned long up
[4] = { 0x1248, 0x248a, 0x1745, 0x1853 };
36 unsigned long vp
= 0xdead;
38 if (wp
[0] != 0x40 || wp
[1] != 0xdeed || wp
[2] != 0x1bd9a || wp
[3] != 0x29c47)