A processing apparatus comprising: a decode logic; and an execution unit, wherein the decode logic is configured to decode a first instruction having a first operand into a decoded first instruction, decode a second instruction having a second operand into a decoded second instruction, and decode a third instruction into a decoded third instruction, characterized in that: the execution unit (1340, 1341) is configured to: execute the decoded first instruction by retrieving a first operand value including one or more first predicate values, pushing the one or more first predicate values to a location in a predicate stack indicated by a top of stack identifier and not advancing the top of stack identifier after pushing the one or more first predicate values, execute the decoded second instruction by retrieving a second operand value including one or more second predicate values, pushing the one or more second predicate values to the location in the predicate stack indicated by the top of stack identifier and advancing the top of stack identifier after pushing the one or more second predicate values, execute the decoded third instruction by modifying the top of stack identifier based on: a position of the top of stack identifier before decoding the first instruction, or a last of the one or more first predicate values pushed by the first instruction. a decode logic; and an execution unit, wherein the decode logic is configured to decode a first instruction having a first operand into a decoded first instruction, decode a second instruction having a second operand into a decoded second instruction, and decode a third instruction into a decoded third instruction, characterized in that: the execution unit (1340, 1341) is configured to: execute the decoded first instruction by retrieving a first operand value including one or more first predicate values, pushing the one or more first predicate values to a location in a predicate stack indicated by a top of stack identifier and not advancing the top of stack identifier after pushing the one or more first predicate values, execute the decoded second instruction by retrieving a second operand value including one or more second predicate values, pushing the one or more second predicate values to the location in the predicate stack indicated by the top of stack identifier and advancing the top of stack identifier after pushing the one or more second predicate values, execute the decoded third instruction by modifying the top of stack identifier based on: a position of the top of stack identifier before decoding the first instruction, or a last of the one or more first predicate values pushed by the first instruction. execute the decoded first instruction by retrieving a first operand value including one or more first predicate values, pushing the one or more first predicate values to a location in a predicate stack indicated by a top of stack identifier and not advancing the top of stack identifier after pushing the one or more first predicate values, execute the decoded second instruction by retrieving a second operand value including one or more second predicate values, pushing the one or more second predicate values to the location in the predicate stack indicated by the top of stack identifier and advancing the top of stack identifier after pushing the one or more second predicate values, execute the decoded third instruction by modifying the top of stack identifier based on: a position of the top of stack identifier before decoding the first instruction, or a last of the one or more first predicate values pushed by the first instruction. a position of the top of stack identifier before decoding the first instruction, or a last of the one or more first predicate values pushed by the first instruction.