В вашем описании написано Cortex-A9, а в теге указано Cortex-A8 - что это? На Cortex-A8 pld загружается только в L2, и ваш набор данных уже помещается в L2, поэтому, если он уже там, он не получит выгоду от предварительной загрузки.
Тем не менее, ваш код не будет выполнять очень много, независимо от того, находится он на Cortex-A8 или A9, потому что один pld будет загружать только одну строку кэша (32-64 байта); он не скажет процессору о том, что после этого он будет всегда сохранять строки для предварительной выборки. Эффективное использование инструкции pld состоит в том, чтобы выполнить ее внутри итерации цикла так, чтобы она указывала на несколько строк кэша впереди того места, откуда вы сейчас загружаете. В идеале вы должны структурировать свой цикл таким образом, чтобы нагрузка на одну строку кэша выполнялась на pld, чтобы избежать избыточных. Кроме того, вы должны выровнять свои наборы данных по ширине строки кэша.
Тем не менее, Cortex-A9 имеет автоматический предварительный выборщик, который обнаруживает шаги. Если вы работаете на Cortex-A9, и эта функция включена, pld может не сильно помочь или вообще поможет, а просто потратит время на прохождение конвейера.