Currently when tail predicating loops, vpt blocks need to be created with the vctp predicate in case we need to revert to non-tail predicated form. This has the unfortunate side effect of severely messing up post-ra scheduling at times as the instructions are already stuck in vpt blocks, not allowed to be independently scheduled.
This patch addresses that by just moving the creating of VPT blocks later in the pipeline, after post-ra scheduling has been performed. This allows more optimal scheduling post-ra before the vpt blocks are created, leading to more optimal tail predicated loops.