muldivti3.c

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

C
47
字号
/* { dg-do run } *//* { dg-options "-std=c99" } */#include <stdlib.h>typedef unsigned int uqword __attribute__((mode(TI)));typedef int qword __attribute__((mode(TI)));typedef union{  uqword                uq;  qword                 q;  unsigned long long    ull[2];} u;int main(void){  uqword e, f;  qword g, h;  e = 0x1111111111111111ULL;  f = 0xFULL;  g = 0x0000000000111100ULL;  h = 0x0000000000000000ULL;  u m, n, o, p, q;  m.ull[0] = f;  m.ull[1] = e;  n.ull[0] = h;  n.ull[1] = g;  /* __multi3  */  o.q = m.q * n.q;  o.q = o.q + n.q + 0x1110FF;  /* __udivti3, __umodti3  */  p.uq = o.uq / n.uq;  q.uq = o.uq % n.uq;  if (p.uq != (m.uq+1)) abort();  if (q.uq != 0x1110FF) abort();  /* __divti3, __modti3  */  p.q = -o.q / n.q;  q.q = -o.q % n.q;  if ((-p.q * n.q - q.q) != o.q) abort();  return 0;}

⌨️ 快捷键说明

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