(self, args)
return expr
Transfers one byte/half-word/word of a vector to a general-purpose register.

        NOTE: the index should starts from the least significant bits.
        For example, index 0 for Iop_GetElem32x2 returns the low half of a vector

        Iop_GetElem8x8
        Iop_GetElem16x4
        Iop_GetElem32x2
        Iop_GetElem8x16
        Iop_GetElem16x8
        Iop_GetElem32x4
        Iop_GetElem64x2
Transfers one byte/half-word/word of a vector to a general-purpose register.
Transfers one byte / half - word / word of a vector to a general - purpose register .
def _op_generic_GetElem(self, args):
        """
        Transfers one byte/half-word/word of a vector to a general-purpose register.

        NOTE: the index should starts from the least significant bits.
        For example, index 0 for Iop_GetElem32x2 returns the low half of a vector

        Iop_GetElem8x8
        Iop_GetElem16x4
        Iop_GetElem32x2
        Iop_GetElem8x16
        Iop_GetElem16x8
        Iop_GetElem32x4
        Iop_GetElem64x2
        """
        # Size of the element
        vector_size = self._vector_size
        # Vector count
        vector_count = self._vector_count
        # Extension register value, element index
        dReg, index = args
        # Chopped elements; there should be `vector_count` elements in total
        elements = dReg.chop(vector_size)

        # Handle the index as symbolic
        expr = elements[vector_count - 1]
        for i in range(vector_count - 2, -1, -1):
            # Iterate through the element from the second from LSB to the first from the MSB
            expr = claripy.If(index == vector_count - i - 1, elements[i], expr)
            # Example output: <BV32 if index == 0x1 then d0[63:32] else d0[31:0]>
        return expr
def _op_generic_GetElem ( self , args ) : # Size of the element vector_size = self . _vector_size # Vector count vector_count = self . _vector_count # Extension register value, element index dReg , index = args # Chopped elements; there should be `vector_count` elements in total elements = dReg . chop ( vector_size ) # Handle the index as symbolic expr = elements [ vector_count - 1 ] for i in range ( vector_count - 2 , - 1 , - 1 ) : # Iterate through the element from the second from LSB to the first from the MSB expr = claripy . If ( index == vector_count - i - 1 , elements [ i ] , expr ) # Example output: <BV32 if index == 0x1 then d0[63:32] else d0[31:0]> return expr