(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr83358-2.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mtune=skylake-avx512" } */
       3  
       4  #include <stdint.h>
       5  
       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;
      23    }
      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;
      29  }
      30  
      31  /* { dg-final { scan-assembler-not "idiv" } } */