1. A method for branch prediction, the method comprising: receiving a load instruction including a first data location in a first memory area wherein the load instruction includes a mask value including at least one of: an indication to load branch prediction information if a branch instruction associated with a branch address from the first data location is a conditional branch instruction; a branch taken and branch not taken history pattern associated with a target address from the first data location; a range of data locations defined by a distance from a location of the load instruction; a thread identifier associated with the target address from the first data location; a program identifier associated with the target address from the first data location; and an opcode associated with the target address from the first data location; retrieving the branch prediction information including the branch address and the target address from the first data location; determining whether a tag value associated with the branch address received from the first data location matches the mask value; and selectively transferring the branch prediction information to a branch prediction memory according to matching mask and tag values, wherein the branch prediction memory includes a branch history table including a branch address and a target address of a branch most recently executed by a processor.