PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr83358-2.c
blobf6039bf72feb5bc92afe295bb3757a54ffba665a
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mtune=skylake-avx512" } */
4 #include <stdint.h>
6 void bin2ascii(uint64_t val, char *dst) {
7 const int64_t POW10_10 = ((int64_t)10) * 1000 * 1000 * 1000;
8 int64_t hix = val / POW10_10;
9 int64_t lox = val % POW10_10;
10 int32_t v0 = hix / 100000;
11 int32_t v1 = hix % 100000;
12 int32_t v2 = lox / 100000;
13 int32_t v3 = lox % 100000;
14 for (int i = 4; i != 0; --i) {
15 dst[i + 0 * 5] = v0 % 10 + '0';
16 v0 /= 10;
17 dst[i + 1 * 5] = v1 % 10 + '0';
18 v1 /= 10;
19 dst[i + 2 * 5] = v2 % 10 + '0';
20 v2 /= 10;
21 dst[i + 3 * 5] = v3 % 10 + '0';
22 v3 /= 10;
24 dst[0 * 5] = v0 + '0';
25 dst[1 * 5] = v1 + '0';
26 dst[2 * 5] = v2 + '0';
27 dst[3 * 5] = v3 + '0';
28 dst[4 * 5] = 0;
31 /* { dg-final { scan-assembler-not "idiv" } } */