Displaying 5 results from an estimated 5 matches for "udivmodti4".
2018 Apr 25
0
compiler-rt incorrect for this udivmodti4 case?
...m.org> wrote:
>
> Here is my test case:
>
> #include <stdio.h>
>
> int main(int argc, char **argv) {
> tu_int a = (tu_int)0x1ec273014 << 64 | 0xff7377ffffffffffuLL;
> tu_int b = (tu_int)0x8ac7230489e80000uLL;
> tu_int r;
> tu_int q = __udivmodti4(a, b, &r);
>
> utwords qt;
> qt.all = q;
> utwords rt;
> rt.all = r;
> fprintf(stderr, "q=0x%.16llX%.16llX\nr=0x%.16llX%.16llX\n",
> qt.s.high, qt.s.low, rt.s.high, rt.s.low);
>
> return 0;
> }
>
> This corresp...
2018 Apr 25
2
compiler-rt incorrect for this udivmodti4 case?
Here is my test case:
#include <stdio.h>
int main(int argc, char **argv) {
tu_int a = (tu_int)0x1ec273014 << 64 | 0xff7377ffffffffffuLL;
tu_int b = (tu_int)0x8ac7230489e80000uLL;
tu_int r;
tu_int q = __udivmodti4(a, b, &r);
utwords qt;
qt.all = q;
utwords rt;
rt.all = r;
fprintf(stderr, "q=0x%.16llX%.16llX\nr=0x%.16llX%.16llX\n",
qt.s.high, qt.s.low, rt.s.high, rt.s.low);
return 0;
}
This corresponds to the inputs
a=152313999999999991610955792383
b=100000...
2020 May 21
2
on division of __int128 bit integer
Hi Team,
I observer that division of __int128 bit is very heavy operation.
It internally call a routine '__udivti3', which internally call '
__udivmodti4'.
Due to it the overall performance is much much slower (almost 15 time
slower than if I do it via a combination of 64-bit or microsoft '_udiv128').
Also what to know if I can directly call below routine directly from my
code :
*unsigned long long* *__udivmodti4* *(unsigned long long...
2020 Aug 30
5
BUG: complete misunterstanding of the MS-ABI
...BE returned by the callee via the
hidden first argument allocated by the caller, NOT in XMM0!
Demo/proof: from this source
--- llvm-bug.c ---
#ifndef __clang__
typedef struct {
unsigned __int64 low;
unsigned __int64 high;
} __uint128_t;
#else
__attribute__((ms_abi))
#endif
__uint128_t __udivmodti4(__uint128_t dividend, __uint128_t divisor, __uint128_t *remainder) {
if (remainder != 0)
*remainder = divisor;
return dividend;
}
--- EOF ---
clang -c -O1 generates the following INCOMPATIBLE and WRONG code:
__udivmodti4 proc public
movaps xmm0, xmmword ptr [rcx]...
2013 Oct 31
3
[releng_10 tinderbox] failure on i386/pc98
...rt/../../contrib/compiler-rt/lib/ucmpti2.c /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/i386/udivdi3.S /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/udivmoddi4.c /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/udivmodsi4.c /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/udivmodti4.c /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/udivti3.c /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/i386/umoddi3.S /src/lib/libcompiler_rt/../../contrib/compiler-rt/lib/umodti3.c /src/lib/libcompiler_rt/../..!
/contrib/compiler-rt/lib/adddf3.c /src/lib/libcompiler_rt/../../cont...