Systems, methods, and apparatuses relating to auto-prediction of
tail-nested regions and loop many-tripcount regions of
program code. For example, one embodiment of a processor comprises: a decoder to decode sequences of instructions, including
branch instructions, into sequences of microoperations (uops); an
execution unit to execute the sequences of uops; a
branch predictor circuit to predict whether one or more of the plurality of
branch instructions will be taken; and a branch predication manager circuit to dynamically detect
tail-nested regions or many-tripcount (MTC) regions of loops corresponding to one or more branch instructions of the plurality of branch instructions, the branch predication manager comprising auto-predication circuitry to selectively perform predication of the one or more branch instructions.