1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mtune=skylake-avx512" } */
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';
17 dst
[i
+ 1 * 5] = v1
% 10 + '0';
19 dst
[i
+ 2 * 5] = v2
% 10 + '0';
21 dst
[i
+ 3 * 5] = v3
% 10 + '0';
24 dst
[0 * 5] = v0
+ '0';
25 dst
[1 * 5] = v1
+ '0';
26 dst
[2 * 5] = v2
+ '0';
27 dst
[3 * 5] = v3
+ '0';
31 /* { dg-final { scan-assembler-not "idiv" } } */