1. A method for performing a vote operation for a group of threads executing in parallel, the method comprising: receiving a vote instruction that includes an opcode that identifies the vote operation; receiving a ballot of vote data that includes vote data from each participating thread in the group of threads executing in parallel within a core of a processing unit; computing a vote result based on the ballot of vote data according to the vote instruction; and returning the vote result to the group of threads.