Function: unloadAtomsBuffer | Module: exec | Source: haloExchange.c:407-426 | Coverage: 0.01% |
---|
Function: unloadAtomsBuffer | Module: exec | Source: haloExchange.c:407-426 | Coverage: 0.01% |
---|
/scratch_na/users/xoserete/qaas_runs/171-419-7821/intel/CoMD/build/CoMD/CoMD/src-openmp/haloExchange.c: 407 - 426 |
-------------------------------------------------------------------------------- |
407: { |
408: AtomExchangeParms* parms = (AtomExchangeParms*) vparms; |
409: SimFlat* s = (SimFlat*) data; |
410: AtomMsg* buf = (AtomMsg*) charBuf; |
411: int nBuf = bufSize / sizeof(AtomMsg); |
412: assert(bufSize % sizeof(AtomMsg) == 0); |
413: |
414: for (int ii=0; ii<nBuf; ++ii) |
415: { |
416: int gid = buf[ii].gid; |
417: int type = buf[ii].type; |
418: real_t rx = buf[ii].rx; |
419: real_t ry = buf[ii].ry; |
420: real_t rz = buf[ii].rz; |
421: real_t px = buf[ii].px; |
422: real_t py = buf[ii].py; |
423: real_t pz = buf[ii].pz; |
424: putAtomInBox(s->boxes, s->atoms, gid, type, rx, ry, rz, px, py, pz); |
425: } |
426: } |
0x407b10 PUSH %RBP |
0x407b11 MOV %RSP,%RBP |
0x407b14 PUSH %R15 |
0x407b16 PUSH %R14 |
0x407b18 PUSH %R12 |
0x407b1a PUSH %RBX |
0x407b1b MOVSXD %ECX,%RCX |
0x407b1e MOV %RCX,%RDX |
0x407b21 SHR $0x3,%RDX |
0x407b25 MOV $0x2492492492492493,%RAX |
0x407b2f MULX %RAX,%RAX,%RAX |
0x407b34 MOV $0x6db6db6db6db6db7,%RDX |
0x407b3e IMUL %RCX,%RDX |
0x407b42 RORX $0x3,%RDX,%RCX |
0x407b48 MOV $0x492492492492492,%RDX |
0x407b52 CMP %RDX,%RCX |
0x407b55 JA 407bb0 |
0x407b57 TEST %EAX,%EAX |
0x407b59 JLE 407ba7 |
0x407b5b MOV %R8,%RBX |
0x407b5e MOV 0x18(%RSI),%R14 |
0x407b62 MOV 0x20(%RSI),%R15 |
0x407b66 MOVSXD %EAX,%R12 |
0x407b69 NOPL (%RAX) |
(49) 0x407b70 MOV (%RBX),%EDX |
(49) 0x407b72 MOV 0x4(%RBX),%ECX |
(49) 0x407b75 VMOVSD 0x8(%RBX),%XMM0 |
(49) 0x407b7a VMOVSD 0x10(%RBX),%XMM1 |
(49) 0x407b7f VMOVSD 0x18(%RBX),%XMM2 |
(49) 0x407b84 VMOVSD 0x20(%RBX),%XMM3 |
(49) 0x407b89 VMOVSD 0x28(%RBX),%XMM4 |
(49) 0x407b8e VMOVSD 0x30(%RBX),%XMM5 |
(49) 0x407b93 MOV %R14,%RDI |
(49) 0x407b96 MOV %R15,%RSI |
(49) 0x407b99 CALL 40afd0 <putAtomInBox> |
(49) 0x407b9e ADD $0x38,%RBX |
(49) 0x407ba2 DEC %R12 |
(49) 0x407ba5 JNE 407b70 |
0x407ba7 POP %RBX |
0x407ba8 POP %R12 |
0x407baa POP %R14 |
0x407bac POP %R15 |
0x407bae POP %RBP |
0x407baf RET |
0x407bb0 MOV $0x423b35,%EDI |
0x407bb5 MOV $0x423b54,%ESI |
0x407bba MOV $0x423bbb,%ECX |
0x407bbf MOV $0x19c,%EDX |
0x407bc4 CALL 402fa0 <__assert_fail@plt> |
0x407bc9 NOPL (%RAX) |
Coverage (%) | Name | Source Location | Module |
---|---|---|---|
►38.23+ | haloExchange | memUtils.h:28 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so | |
►32.36+ | haloExchange | haloExchange.c:302 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so | |
►11.77+ | haloExchange | memUtils.h:28 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so | |
►11.76+ | haloExchange | haloExchange.c:302 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so | |
►2.94+ | haloExchange | memUtils.h:28 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so | |
►2.94+ | haloExchange | haloExchange.c:302 | exec |
○ | timestep | timestep.c:149 | exec |
○ | main | CoMD.c:124 | exec |
○ | __libc_start_main | libc-2.28.so |
Path / |
Source file and lines | haloExchange.c:407-426 |
Module | exec |
nb instructions | 36 |
nb uops | 38 |
loop length | 137 |
used x86 registers | 12 |
used mmx registers | 0 |
used xmm registers | 0 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 0 |
micro-operation queue | 6.33 cycles |
front end | 6.33 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 3.90 | 3.80 | 2.67 | 2.67 | 3.00 | 3.87 | 3.70 | 3.00 | 3.00 | 3.00 | 3.73 | 2.67 |
cycles | 3.90 | 4.47 | 2.67 | 2.67 | 3.00 | 3.87 | 3.70 | 3.00 | 3.00 | 3.00 | 3.73 | 2.67 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 6.29-6.30 |
Stall cycles | 0.00 |
Front-end | 6.33 |
Dispatch | 4.47 |
Overall L1 | 6.33 |
all | 0% |
load | 0% |
store | NA (no store vectorizable/vectorized instructions) |
mul | 0% |
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 | 11% |
load | 12% |
store | NA (no store vectorizable/vectorized instructions) |
mul | 12% |
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 | 11% |
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 |
PUSH %R15 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %R14 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %R12 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %RBX | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
MOVSXD %ECX,%RCX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
MOV %RCX,%RDX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
SHR $0x3,%RDX | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0-2 | 0.50 |
MOV $0x2492492492492493,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
MULX %RAX,%RAX,%RAX | 2 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3-4 | 1 |
MOV $0x6db6db6db6db6db7,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
IMUL %RCX,%RDX | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
RORX $0x3,%RDX,%RCX | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
MOV $0x492492492492492,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
CMP %RDX,%RCX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
JA 407bb0 <unloadAtomsBuffer+0xa0> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
TEST %EAX,%EAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 |
JLE 407ba7 <unloadAtomsBuffer+0x97> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
MOV %R8,%RBX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
MOV 0x18(%RSI),%R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
MOV 0x20(%RSI),%R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
MOVSXD %EAX,%R12 | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
POP %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
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 $0x423b35,%EDI | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x423b54,%ESI | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x423bbb,%ECX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x19c,%EDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
CALL 402fa0 <__assert_fail@plt> | 2 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 0 | 1 |
NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
Source file and lines | haloExchange.c:407-426 |
Module | exec |
nb instructions | 36 |
nb uops | 38 |
loop length | 137 |
used x86 registers | 12 |
used mmx registers | 0 |
used xmm registers | 0 |
used ymm registers | 0 |
used zmm registers | 0 |
nb stack references | 0 |
micro-operation queue | 6.33 cycles |
front end | 6.33 cycles |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
uops | 3.90 | 3.80 | 2.67 | 2.67 | 3.00 | 3.87 | 3.70 | 3.00 | 3.00 | 3.00 | 3.73 | 2.67 |
cycles | 3.90 | 4.47 | 2.67 | 2.67 | 3.00 | 3.87 | 3.70 | 3.00 | 3.00 | 3.00 | 3.73 | 2.67 |
Cycles executing div or sqrt instructions | NA |
FE+BE cycles | 6.29-6.30 |
Stall cycles | 0.00 |
Front-end | 6.33 |
Dispatch | 4.47 |
Overall L1 | 6.33 |
all | 0% |
load | 0% |
store | NA (no store vectorizable/vectorized instructions) |
mul | 0% |
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 | 11% |
load | 12% |
store | NA (no store vectorizable/vectorized instructions) |
mul | 12% |
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 | 11% |
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 |
PUSH %R15 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %R14 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %R12 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
PUSH %RBX | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 |
MOVSXD %ECX,%RCX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
MOV %RCX,%RDX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
SHR $0x3,%RDX | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0-2 | 0.50 |
MOV $0x2492492492492493,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
MULX %RAX,%RAX,%RAX | 2 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3-4 | 1 |
MOV $0x6db6db6db6db6db7,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
IMUL %RCX,%RDX | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 |
RORX $0x3,%RDX,%RCX | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
MOV $0x492492492492492,%RDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.28 |
CMP %RDX,%RCX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
JA 407bb0 <unloadAtomsBuffer+0xa0> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
TEST %EAX,%EAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 |
JLE 407ba7 <unloadAtomsBuffer+0x97> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 |
MOV %R8,%RBX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 |
MOV 0x18(%RSI),%R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
MOV 0x20(%RSI),%R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 |
MOVSXD %EAX,%R12 | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 |
NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
POP %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
POP %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 |
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 $0x423b35,%EDI | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x423b54,%ESI | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x423bbb,%ECX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
MOV $0x19c,%EDX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 1 | 0.20 |
CALL 402fa0 <__assert_fail@plt> | 2 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 0 | 1 |
NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 |
Name | Coverage (%) | Time (s) |
---|---|---|
▼unloadAtomsBuffer– | 0.01 | 0 |
○Loop 49 - haloExchange.c:414-424 - exec | 0.01 | 0.08 |