Function: hypre_BinarySearch | Module: libHYPRE_utilities.so | Source: binsearch.c:29-53 [...] | Coverage: 0.01% |
---|
Function: hypre_BinarySearch | Module: libHYPRE_utilities.so | Source: binsearch.c:29-53 [...] | Coverage: 0.01% |
---|
/scratch_na/users/xoserete/qaas_runs/171-415-3872/intel/AMG/build/AMG/AMG/utilities/binsearch.c: 29 - 53 |
-------------------------------------------------------------------------------- |
29: { |
30: HYPRE_Int low, high, m; |
31: HYPRE_Int not_found = 1; |
32: |
33: low = 0; |
34: high = list_length-1; |
35: while (not_found && low <= high) |
36: { |
37: m = (low + high) / 2; |
38: if (value < list[m]) |
39: { |
40: high = m - 1; |
41: } |
42: else if (value > list[m]) |
43: { |
44: low = m + 1; |
[...] |
53: } |
0x4320 PUSH %RBP |
0x4321 MOV %RSP,%RBP |
0x4324 MOV $-0x1,%RAX |
0x432b TEST %RDX,%RDX |
0x432e JLE 436f |
0x4330 DEC %RDX |
0x4333 XOR %ECX,%ECX |
0x4335 JMP 434b |
0x4337 NOPW (%RAX,%RAX,1) |
(2) 0x4340 DEC %R8 |
(2) 0x4343 MOV %R8,%RDX |
(2) 0x4346 CMP %RDX,%RCX |
(2) 0x4349 JG 436f |
(2) 0x434b LEA (%RDX,%RCX,1),%R9 |
(2) 0x434f MOV %R9,%R8 |
(2) 0x4352 SHR $0x3f,%R8 |
(2) 0x4356 ADD %R9,%R8 |
(2) 0x4359 SAR $0x1,%R8 |
(2) 0x435c CMP %RSI,(%RDI,%R8,8) |
(2) 0x4360 JG 4340 |
(2) 0x4362 JGE 4371 |
(2) 0x4364 INC %R8 |
(2) 0x4367 MOV %R8,%RCX |
(2) 0x436a CMP %RDX,%RCX |
(2) 0x436d JLE 434b |
0x436f POP %RBP |
0x4370 RET |
0x4371 MOV %R8,%RAX |
0x4374 POP %RBP |
0x4375 RET |
0x4376 NOPW %CS:(%RAX,%RAX,1) |
Coverage (%) | Name | Source Location | Module |
---|---|---|---|
►21.21+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►18.18+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►15.15+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►9.09+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►6.06+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►6.06+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►6.06+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►6.06+ | hypre_ParTMatmul | par_csr_matop.c:3401 | libparcsr_mv.so |
○ | hypre_BoomerAMGSetup | par_amg.c:2965 | libparcsr_ls.so |
○ | hypre_PCGSetup | pcg.c:234 | libkrylov.so |
○ | main | amg.c:398 | exec |
○ | __libc_start_main | libc-2.28.so | |
►6.06+ | hypre_IJMatrixAssembleParCSR.e[...] | IJMatrix_parcsr.c:2846 | libIJ_mv.so |
○ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►3.03+ | __kmp_invoke_microtask | libiomp5.so | |
○ | __kmp_invoke_task_func | libiomp5.so | |
►3.03+ | hypre_BoomerAMGBuildMultipass | par_amg.c:2965 | libparcsr_ls.so |
○ | hypre_BoomerAMGSetup | par_amg.c:2965 | libparcsr_ls.so |
○ | hypre_PCGSetup | pcg.c:234 | libkrylov.so |
○ | main | amg.c:398 | exec |
○ | __libc_start_main | libc-2.28.so |
Path / |
Source file and lines | binsearch.c:29-53 |
Module | libHYPRE_utilities.so |
nb instructions | 15 |
nb uops | 15 |
loop length | 49 |
used x86 registers | 6 |
used mmx registers | 0 |
used xmm registers | 0 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 0 |
micro-operation queue | 2.50 cycles |
front end | 2.50 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 1.50 | 0.80 | 1.33 | 1.33 | 0.50 | 0.60 | 1.50 | 0.50 | 0.50 | 0.50 | 0.60 | 1.33 |
cycles | 1.50 | 0.80 | 1.33 | 1.33 | 0.50 | 0.60 | 1.50 | 0.50 | 0.50 | 0.50 | 0.60 | 1.33 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 2.60-2.61 |
Stall cycles | 0.00 |
Front-end | 2.50 |
Dispatch | 1.50 |
Overall L1 | 2.50 |
all | 0% |
load | NA (no load vectorizable/vectorized instructions) |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 0% |
all | 10% |
load | NA (no load vectorizable/vectorized instructions) |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 10% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUSH %RBP | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
MOV $-0x1,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
TEST %RDX,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 |
JLE 436f <hypre_BinarySearch+0x4f> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
DEC %RDX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
XOR %ECX,%ECX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
JMP 434b <hypre_BinarySearch+0x2b> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 |
NOPW (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 |
MOV %R8,%RAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 |
NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
Source file and lines | binsearch.c:29-53 |
Module | libHYPRE_utilities.so |
nb instructions | 15 |
nb uops | 15 |
loop length | 49 |
used x86 registers | 6 |
used mmx registers | 0 |
used xmm registers | 0 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 0 |
micro-operation queue | 2.50 cycles |
front end | 2.50 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 1.50 | 0.80 | 1.33 | 1.33 | 0.50 | 0.60 | 1.50 | 0.50 | 0.50 | 0.50 | 0.60 | 1.33 |
cycles | 1.50 | 0.80 | 1.33 | 1.33 | 0.50 | 0.60 | 1.50 | 0.50 | 0.50 | 0.50 | 0.60 | 1.33 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 2.60-2.61 |
Stall cycles | 0.00 |
Front-end | 2.50 |
Dispatch | 1.50 |
Overall L1 | 2.50 |
all | 0% |
load | NA (no load vectorizable/vectorized instructions) |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 0% |
all | 10% |
load | NA (no load vectorizable/vectorized instructions) |
store | NA (no store vectorizable/vectorized instructions) |
mul | NA (no mul vectorizable/vectorized instructions) |
add-sub | NA (no add-sub vectorizable/vectorized instructions) |
fma | NA (no fma vectorizable/vectorized instructions) |
div/sqrt | NA (no div/sqrt vectorizable/vectorized instructions) |
other | 10% |
Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUSH %RBP | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
MOV $-0x1,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
TEST %RDX,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 |
JLE 436f <hypre_BinarySearch+0x4f> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
DEC %RDX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
XOR %ECX,%ECX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
JMP 434b <hypre_BinarySearch+0x2b> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 |
NOPW (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 |
MOV %R8,%RAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 |
NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
Name | Coverage (%) | Time (s) |
---|---|---|
▼hypre_BinarySearch– | 0.01 | 0 |
○Loop 2 - binsearch.c:35-44 - libHYPRE_utilities.so | 0.01 | 0.01 |