Part Number: F29H850TU
Hi Experts,
My customer is optimizing their code and they find that somes the instruction are not paralleled.
For example, in the below instructionL
0x20106790 4050 LD.32 M2,*(ADDR2)A4
0x20106792 35c3 0044 LD.32 M3,*(ADDR1)(A4+#0x4)
0x20106796 5493 SSUBF M2,M2,M3
0x20106798 4091 LD.32 M4,*(ADDR2)A5
0x2010679A 5c94 SMPYF M2,M2,M4
0x2010679C b5c3 5402 5402 LD.32 M3,*(ADDR1)(A4+#0x8)
|| SSUBF M0,M0,M2
The First and second LD.32 seemly have no address conflicts, but they are out paralleled, or combined into a LD.64.
Also, the second LD.32 does not parallel with the SSUBF intruction to its next, like the last two intruction did.
Why they are not paralleled? What is the bottle neck in this example?
To extend to question a bit more, how can we understand what is the bottle neck that cuase a non-paralleld instrucitons?
Regards,
Hang