systems and methods of processing branch instructions provide for a bimodal predictor and a plurality of global predictors . the bimodal predictor is coupled to a prediction selector , where the bimodal predictor generates a bimodal prediction for branch instructions . the plurality of global predictors is coupled to the prediction selector , where each global predictor generates a corresponding global prediction for a branch instruction using different history or stew lengths . the prediction selector selects branch predictions from the bimodal prediction and the global predictions in order to arbitrate between predictors . the arbitration , update , and allocation schemes are designed to choose the most accurate predictor for each branch . lower level predictors are used as filters to increase effective predictor capacity . allocate and update schemes minimize aliasing between predictors . branch predictors incorporating a plurality of global predictors in this fashion are more adaptive than conventional predictors with fixed branch history lengths and are able to achieve superior accuracy .