1 /* { dg-do compile } */
2 /* { dg-options "-O" } */
4 typedef unsigned long int mp_limb_t
;
13 typedef __mpz_struct mpz_t
[1];
14 typedef mp_limb_t
* mp_ptr
;
15 typedef const mp_limb_t
* mp_srcptr
;
16 typedef long int mp_size_t
;
18 extern mp_limb_t
__gmpn_addmul_2 (mp_ptr
, mp_srcptr
, mp_size_t
, mp_srcptr
);
21 __gmpn_redc_2 (mp_ptr rp
, mp_ptr up
, mp_srcptr mp
, mp_size_t n
, mp_srcptr mip
)
27 for (j
= n
- 2; j
>= 0; j
-= 2)
30 __asm__ ("xma.hu %0 = %3, %5, f0\n\t"
31 "xma.l %1 = %3, %5, f0\n\t"
33 "xma.l %0 = %3, %4, %0\n\t"
35 "xma.l %0 = %2, %5, %0"
36 : "=&f" (q
[1]), "=&f" (q
[0])
37 : "f" (mip
[1]), "f" (mip
[0]), "f" (up
[1]), "f" (up
[0]));
39 up
[1] = __gmpn_addmul_2 (up
, mp
, n
, q
);