pr33552.c

来自「用于进行gcc测试」· C语言 代码 · 共 42 行

C
42
字号
/* PR rtl-optimization/33552 *//* { dg-do run } *//* { dg-options "-O2" } */extern void abort (void);void__attribute__((noinline))foo (unsigned long *wp, unsigned long *up, long un, unsigned long *vp){  long j;  unsigned long prod_low, prod_high;  unsigned long cy_dig;  unsigned long v_limb;  v_limb = vp[0];  cy_dig = 64;  for (j = un; j > 0; j--)    {      unsigned long u_limb, w_limb;      u_limb = *up++;      __asm__ (""               : "=r" (prod_low), "=r" (prod_high)               : "0" (u_limb), "1" (v_limb));      __asm__ ("mov %5, %1; add %5, %0"               : "=r" (cy_dig), "=&r" (w_limb)               : "0" (prod_high), "rm" (0), "1" (prod_low), "rm" (cy_dig));      *wp++ = w_limb;    }}intmain (void){  unsigned long wp[4];  unsigned long up[4] = { 0x1248, 0x248a, 0x1745, 0x1853 };  unsigned long vp = 0xdead;  foo (wp, up, 4, &vp);  if (wp[0] != 0x40 || wp[1] != 0xdeed || wp[2] != 0x1bd9a || wp[3] != 0x29c47)    abort ();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?