P147 took the final execute-prefetch repair shot. The active guard was:
predicted_not_taken && word_not_last && quiet_backend
Mechanically, it worked. Verilator built, BusyBox rebuilt, the Linux
image picked up the P147 initramfs, and the shell workload reached
P147-FILE-OK.
The speed result did not justify continuing this thread. P147’s shell window is 64,812,561 cycles. That is 850,478 cycles faster than P146, but still 619,728 cycles slower than P144 and 885,870 cycles slower than P142.
The strict predicate produced 29.57M tagged fills and 836,811 first/repeat hits. That is only 2.83% useful by the repair-hit metric. Against P144, it spent 8.09M extra repair fills and 14.64M extra prefetch second-word grants for 191K more first/repeat hits.
So the useful answer is negative: stop trying to rescue execute-prefetch second-word repair with local predicates. Keep the throttle lesson, preserve the counters, and pivot to another frontend/memory bottleneck.