📄 muldivti3.c
字号:
/* { 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -