| Function: loadAtomsBuffer | Module: exec | Source: haloExchange.c:362-393 | Coverage (incl. loops): 0.06% | (excl. loops): 0.00% |
|---|
| Function: loadAtomsBuffer | Module: exec | Source: haloExchange.c:362-393 | Coverage (incl. loops): 0.06% | (excl. loops): 0.00% |
|---|
/home/eoseret/qaas_runs_GNR/173-814-1858/intel/CoMD/build/CoMD/CoMD/src-openmp/haloExchange.c: 362 - 393 |
-------------------------------------------------------------------------------- |
362: { |
363: AtomExchangeParms* parms = (AtomExchangeParms*) vparms; |
364: SimFlat* s = (SimFlat*) data; |
365: AtomMsg* buf = (AtomMsg*) charBuf; |
366: |
367: real_t* pbcFactor = parms->pbcFactor[face]; |
368: real3 shift; |
369: shift[0] = pbcFactor[0] * s->domain->globalExtent[0]; |
370: shift[1] = pbcFactor[1] * s->domain->globalExtent[1]; |
371: shift[2] = pbcFactor[2] * s->domain->globalExtent[2]; |
372: |
373: int nCells = parms->nCells[face]; |
374: int* cellList = parms->cellList[face]; |
375: int nBuf = 0; |
376: for (int iCell=0; iCell<nCells; ++iCell) |
377: { |
378: int iBox = cellList[iCell]; |
379: int iOff = iBox*MAXATOMS; |
380: for (int ii=iOff; ii<iOff+s->boxes->nAtoms[iBox]; ++ii) |
381: { |
382: buf[nBuf].gid = s->atoms->gid[ii]; |
383: buf[nBuf].type = s->atoms->iSpecies[ii]; |
384: buf[nBuf].rx = s->atoms->r[ii][0] + shift[0]; |
385: buf[nBuf].ry = s->atoms->r[ii][1] + shift[1]; |
386: buf[nBuf].rz = s->atoms->r[ii][2] + shift[2]; |
387: buf[nBuf].px = s->atoms->p[ii][0]; |
388: buf[nBuf].py = s->atoms->p[ii][1]; |
389: buf[nBuf].pz = s->atoms->p[ii][2]; |
390: ++nBuf; |
391: } |
392: } |
393: return nBuf*sizeof(AtomMsg); |
0x407820 PUSH %RBP |
0x407821 MOV %RSP,%RBP |
0x407824 PUSH %R15 |
0x407826 PUSH %R14 |
0x407828 PUSH %R13 |
0x40782a PUSH %R12 |
0x40782c PUSH %RBX |
0x40782d MOV %RCX,-0x30(%RBP) |
0x407831 MOVSXD %EDX,%RDX |
0x407834 MOVSXD (%RDI,%RDX,4),%RAX |
0x407838 TEST %RAX,%RAX |
0x40783b JLE 407980 |
0x407841 MOV 0x18(%RDI,%RDX,8),%RCX |
0x407846 MOV %RCX,-0x38(%RBP) |
0x40784a MOV 0x48(%RDI,%RDX,8),%RDX |
0x40784f MOV 0x10(%RSI),%RDI |
0x407853 VMOVUPD 0x48(%RDI),%XMM0 |
0x407858 VMULPD (%RDX),%XMM0,%XMM0 |
0x40785c VMOVSD 0x58(%RDI),%XMM1 |
0x407861 VMULSD 0x10(%RDX),%XMM1,%XMM1 |
0x407866 MOV 0x18(%RSI),%RDX |
0x40786a MOV 0x78(%RDX),%RDI |
0x40786e XOR %R8D,%R8D |
0x407871 XOR %R9D,%R9D |
0x407874 JMP 40788c |
0x407876 NOPW %CS:(%RAX,%RAX,1) |
(45) 0x407880 INC %R8 |
(45) 0x407883 CMP %RAX,%R8 |
(45) 0x407886 JE 407940 |
(45) 0x40788c MOV -0x38(%RBP),%RCX |
(45) 0x407890 MOVSXD (%RCX,%R8,4),%RDX |
(45) 0x407894 MOV (%RDI,%RDX,4),%R12D |
(45) 0x407898 TEST %R12D,%R12D |
(45) 0x40789b JLE 407880 |
(45) 0x40789d SAL $0x6,%EDX |
(45) 0x4078a0 ADD %EDX,%R12D |
(45) 0x4078a3 MOV 0x20(%RSI),%R14 |
(45) 0x4078a7 MOV 0x8(%R14),%R10 |
(45) 0x4078ab MOV 0x10(%R14),%R11 |
(45) 0x4078af MOV 0x18(%R14),%RBX |
(45) 0x4078b3 MOV 0x20(%R14),%R14 |
(45) 0x4078b7 MOVSXD %EDX,%R15 |
(45) 0x4078ba MOVSXD %R12D,%R12 |
(45) 0x4078bd MOVSXD %R9D,%RDX |
(45) 0x4078c0 IMUL $0x38,%RDX,%R13 |
(45) 0x4078c4 ADD -0x30(%RBP),%R13 |
(45) 0x4078c8 LEA (%R15,%R15,1),%RDX |
(45) 0x4078cc LEA 0x4(%RDX,%RDX,2),%RDX |
(45) 0x4078d1 NOPW %CS:(%RAX,%RAX,1) |
(46) 0x4078e0 MOV (%R10,%R15,4),%ECX |
(46) 0x4078e4 MOV %ECX,(%R13) |
(46) 0x4078e8 MOV (%R11,%R15,4),%ECX |
(46) 0x4078ec MOV %ECX,0x4(%R13) |
(46) 0x4078f0 VADDPD -0x10(%RBX,%RDX,4),%XMM0,%XMM2 |
(46) 0x4078f6 VMOVUPD %XMM2,0x8(%R13) |
(46) 0x4078fc VADDSD (%RBX,%RDX,4),%XMM1,%XMM2 |
(46) 0x407901 VMOVSD %XMM2,0x18(%R13) |
(46) 0x407907 VMOVUPS -0x10(%R14,%RDX,4),%XMM2 |
(46) 0x40790e VMOVUPS %XMM2,0x20(%R13) |
(46) 0x407914 VMOVSD (%R14,%RDX,4),%XMM2 |
(46) 0x40791a VMOVSD %XMM2,0x30(%R13) |
(46) 0x407920 INC %R15 |
(46) 0x407923 ADD $0x38,%R13 |
(46) 0x407927 INC %R9D |
(46) 0x40792a ADD $0x6,%RDX |
(46) 0x40792e CMP %R12,%R15 |
(46) 0x407931 JL 4078e0 |
(45) 0x407933 JMP 407880 |
0x407938 NOPL (%RAX,%RAX,1) |
0x407940 IMUL $0x38,%R9D,%EAX |
0x407944 JMP 407982 |
0x407946 NOPW %CS:(%RAX,%RAX,1) |
0x407955 NOPW %CS:(%RAX,%RAX,1) |
0x407964 NOPW %CS:(%RAX,%RAX,1) |
0x407973 NOPW %CS:(%RAX,%RAX,1) |
0x407980 XOR %EAX,%EAX |
0x407982 POP %RBX |
0x407983 POP %R12 |
0x407985 POP %R13 |
0x407987 POP %R14 |
0x407989 POP %R15 |
0x40798b POP %RBP |
0x40798c RET |
0x40798d NOPL (%RAX) |
| Coverage (%) | Name | Source Location | Module |
|---|---|---|---|
| ►18.25+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►13.14+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►13.14+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►11.68+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►10.22+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►10.22+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►8.76+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►4.38+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►3.65+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►2.19+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►1.46+ | haloExchange | haloExchange.c:289 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ►1.46+ | haloExchange | haloExchange.c:289 | exec |
| ○ | redistributeAtoms | timestep.c:150 | exec |
| ○ | main | CoMD.c:207 | exec |
| ○ | __libc_start_call_main | libc.so.6 | |
| ►1.46+ | haloExchange | haloExchange.c:288 | exec |
| ○ | timestep | timestep.c:150 | exec |
| ○ | main | CoMD.c:125 | exec |
| ○ | __libc_start_call_main | libc.so.6 |
| Path / |
The code analyzed by CQA in that panel excludes loops and represents 0.00% of application time for run icx_1
| Source file and lines | haloExchange.c:362-393 |
| Module | exec |
| nb instructions | 42 |
| nb uops | 42 |
| loop length | 184 |
| used x86 registers | 14 |
| used mmx registers | 0 |
| used xmm registers | 2 |
| used ymm registers | 0 |
| used zmm registers | 0 |
| nb stack references | 2 |
| micro-operation queue | 7.00 cycles |
| front end | 7.00 cycles |
| P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| uops | 2.00 | 1.50 | 5.67 | 5.67 | 4.00 | 1.07 | 1.50 | 4.00 | 4.00 | 4.00 | 0.93 | 5.67 |
| cycles | 2.00 | 1.53 | 5.67 | 5.67 | 4.00 | 1.07 | 1.50 | 4.00 | 4.00 | 4.00 | 0.93 | 5.67 |
| Cycles executing div or sqrt instructions | NA |
| Front-end | 7.00 |
| Dispatch | 5.67 |
| Overall L1 | 7.00 |
| all | 0% |
| load | 0% |
| store | 0% |
| mul | NA (no mul vectorizable/vectorized instructions) |
| add-sub | NA (no add-sub vectorizable/vectorized instructions) |
| fma | NA (no fma vectorizable/vectorized instructions) |
| other | 0% |
| all | 50% |
| load | 50% |
| store | NA (no store vectorizable/vectorized instructions) |
| mul | 50% |
| 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 | NA (no other vectorizable/vectorized instructions) |
| all | 22% |
| load | 40% |
| store | 0% |
| mul | 50% |
| 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 | 12% |
| store | 12% |
| mul | NA (no mul vectorizable/vectorized instructions) |
| add-sub | NA (no add-sub vectorizable/vectorized instructions) |
| fma | NA (no fma vectorizable/vectorized instructions) |
| other | 6% |
| all | 18% |
| load | 18% |
| store | NA (no store vectorizable/vectorized instructions) |
| mul | 18% |
| 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 | NA (no other vectorizable/vectorized instructions) |
| all | 13% |
| load | 17% |
| store | 12% |
| mul | 18% |
| 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 | 6% |
| Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput | Vectorization |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PUSH %RBP | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 | N/A |
| PUSH %R15 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R14 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R13 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R12 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %RBX | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| MOV %RCX,-0x30(%RBP) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 | scal (12.5%) |
| MOVSXD %EDX,%RDX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 | N/A |
| MOVSXD (%RDI,%RDX,4),%RAX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| TEST %RAX,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 | N/A |
| JLE 407980 <loadAtomsBuffer+0x160> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 | N/A |
| MOV 0x18(%RDI,%RDX,8),%RCX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | scal (12.5%) |
| MOV %RCX,-0x38(%RBP) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 | scal (12.5%) |
| MOV 0x48(%RDI,%RDX,8),%RDX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| MOV 0x10(%RSI),%RDI | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| VMOVUPD 0x48(%RDI),%XMM0 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 | vect (25.0%) |
| VMULPD (%RDX),%XMM0,%XMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 | vect (25.0%) |
| VMOVSD 0x58(%RDI),%XMM1 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | scal (12.5%) |
| VMULSD 0x10(%RDX),%XMM1,%XMM1 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 | scal (12.5%) |
| MOV 0x18(%RSI),%RDX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| MOV 0x78(%RDX),%RDI | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| XOR %R8D,%R8D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | scal (6.3%) |
| XOR %R9D,%R9D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | scal (6.3%) |
| JMP 40788c <loadAtomsBuffer+0x6c> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPL (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| IMUL $0x38,%R9D,%EAX | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 | N/A |
| JMP 407982 <loadAtomsBuffer+0x162> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| XOR %EAX,%EAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| POP %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R13 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 | N/A |
| NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
The code analyzed by CQA in that panel excludes loops and represents 0.00% of application time for run icx_1
| Source file and lines | haloExchange.c:362-393 |
| Module | exec |
| nb instructions | 42 |
| nb uops | 42 |
| loop length | 184 |
| used x86 registers | 14 |
| used mmx registers | 0 |
| used xmm registers | 2 |
| used ymm registers | 0 |
| used zmm registers | 0 |
| nb stack references | 2 |
| micro-operation queue | 7.00 cycles |
| front end | 7.00 cycles |
| P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| uops | 2.00 | 1.50 | 5.67 | 5.67 | 4.00 | 1.07 | 1.50 | 4.00 | 4.00 | 4.00 | 0.93 | 5.67 |
| cycles | 2.00 | 1.53 | 5.67 | 5.67 | 4.00 | 1.07 | 1.50 | 4.00 | 4.00 | 4.00 | 0.93 | 5.67 |
| Cycles executing div or sqrt instructions | NA |
| Front-end | 7.00 |
| Dispatch | 5.67 |
| Overall L1 | 7.00 |
| all | 0% |
| load | 0% |
| store | 0% |
| mul | NA (no mul vectorizable/vectorized instructions) |
| add-sub | NA (no add-sub vectorizable/vectorized instructions) |
| fma | NA (no fma vectorizable/vectorized instructions) |
| other | 0% |
| all | 50% |
| load | 50% |
| store | NA (no store vectorizable/vectorized instructions) |
| mul | 50% |
| 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 | NA (no other vectorizable/vectorized instructions) |
| all | 22% |
| load | 40% |
| store | 0% |
| mul | 50% |
| 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 | 12% |
| store | 12% |
| mul | NA (no mul vectorizable/vectorized instructions) |
| add-sub | NA (no add-sub vectorizable/vectorized instructions) |
| fma | NA (no fma vectorizable/vectorized instructions) |
| other | 6% |
| all | 18% |
| load | 18% |
| store | NA (no store vectorizable/vectorized instructions) |
| mul | 18% |
| 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 | NA (no other vectorizable/vectorized instructions) |
| all | 13% |
| load | 17% |
| store | 12% |
| mul | 18% |
| 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 | 6% |
| Instruction | Nb FU | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P10 | P11 | Latency | Recip. throughput | Vectorization |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PUSH %RBP | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| MOV %RSP,%RBP | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.17 | N/A |
| PUSH %R15 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R14 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R13 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %R12 | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| PUSH %RBX | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 5-12 | 0.50 | N/A |
| MOV %RCX,-0x30(%RBP) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 | scal (12.5%) |
| MOVSXD %EDX,%RDX | 1 | 0 | 0.33 | 0 | 0 | 0 | 0.33 | 0 | 0 | 0 | 0 | 0.33 | 0 | 1 | 0.33 | N/A |
| MOVSXD (%RDI,%RDX,4),%RAX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| TEST %RAX,%RAX | 1 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0.20 | 0 | 0 | 0 | 0.20 | 0 | 2 | 0.20 | N/A |
| JLE 407980 <loadAtomsBuffer+0x160> | 1 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0 | 0 | 0.50 | N/A |
| MOV 0x18(%RDI,%RDX,8),%RCX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | scal (12.5%) |
| MOV %RCX,-0x38(%RBP) | 1 | 0 | 0 | 0 | 0 | 0.50 | 0 | 0 | 0.50 | 0.50 | 0.50 | 0 | 0 | 1 | 0.50 | scal (12.5%) |
| MOV 0x48(%RDI,%RDX,8),%RDX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| MOV 0x10(%RSI),%RDI | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| VMOVUPD 0x48(%RDI),%XMM0 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 0-1 | 0.33 | vect (25.0%) |
| VMULPD (%RDX),%XMM0,%XMM0 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 | vect (25.0%) |
| VMOVSD 0x58(%RDI),%XMM1 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | scal (12.5%) |
| VMULSD 0x10(%RDX),%XMM1,%XMM1 | 1 | 0.50 | 0.50 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 4 | 0.50 | scal (12.5%) |
| MOV 0x18(%RSI),%RDX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| MOV 0x78(%RDX),%RDI | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1 | 0.33 | N/A |
| XOR %R8D,%R8D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | scal (6.3%) |
| XOR %R9D,%R9D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | scal (6.3%) |
| JMP 40788c <loadAtomsBuffer+0x6c> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPL (%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| IMUL $0x38,%R9D,%EAX | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 | N/A |
| JMP 407982 <loadAtomsBuffer+0x162> | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.84 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| NOPW %CS:(%RAX,%RAX,1) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| XOR %EAX,%EAX | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| POP %RBX | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R12 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R13 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R14 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %R15 | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| POP %RBP | 1 | 0 | 0 | 0.33 | 0.33 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.33 | 1-6 | 0.33 | N/A |
| RET | 1 | 0.50 | 0 | 0.33 | 0.33 | 0 | 0 | 0.50 | 0 | 0 | 0 | 0 | 0.33 | 0 | 2.13 | N/A |
| NOPL (%RAX) | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.17 | N/A |
| Name | Coverage (%) | Time (s) |
|---|---|---|
| ▼loadAtomsBuffer– | 0.06 | 0.00 |
| ▼Loop 45 - haloExchange.c:376-389 - exec– | 0.00 | 0.01 |
| ○Loop 46 - haloExchange.c:380-389 - exec | 0.05 | 0.11 |
