@staticmethod
def _parallel_instructions(assignblk):
    """
        Extracts the instruction from a AssignBlock.

        Since instructions in a AssignBlock are evaluated
        in parallel, memory instructions on the left hand
        side will be inserted into the start of the list.
        Then, memory instruction on the LHS will be
        transformed firstly.

        :param assignblk: assignblock
        :return: sorted list of expressions
        """
    instructions = []
    for dst in assignblk:
        aff = assignblk.dst2ExprAssign(dst)
        if dst.is_mem():
            instructions.insert(0, aff)
        else:
            instructions.append(aff)
    return instructions
