repo.or.cz
/
official-gcc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Rebase.
[official-gcc.git]
/
gcc
/
testsuite
/
gcc.target
/
i386
/
bmi-tzcnt-2.c
blob
1a9235b59bebf6381d5333efaaf5bed37702b3ba
1
/* { dg-do run { target { bmi } } } */
2
/* { dg-options "-O2 -mbmi -fno-inline" } */
3
4
#include <x86intrin.h>
5
6
#include
"bmi-check.h"
7
8
int
calc_tzcnt_u32
(
int
src
)
9
{
10
int
i
;
11
int
res
=
0
;
12
13
while
( (
res
<
32
) && ((
src
&
1
) ==
0
)) {
14
++
res
;
15
src
>>=
1
;
16
}
17
return
res
;
18
}
19
20
static void
21
bmi_test
()
22
{
23
unsigned
i
;
24
int
src
=
0xfacec0ff
;
25
int
res
,
res_ref
;
26
27
for
(
i
=
0
;
i
<
5
; ++
i
) {
28
src
=
i
+
src
<<
i
;
29
30
res_ref
=
calc_tzcnt_u32
(
src
);
31
res
=
__tzcnt_u32
(
src
);
32
33
if
(
res
!=
res_ref
)
34
abort
();
35
}
36
}