A lookup operation is carried out on a data table by logically dividing the
data table into a number of smaller sets of data that can be indexed with
a single byte of data. Each set of data consists of two vectors, which
constitute the operands for a permute instruction. Only a limited number
of bits are required to index into the table during the execution of this
instruction. The remaining bits of each index are used as masks into a
series of select instructions. The select instruction chooses between two
vector components, based on the mask, and places the selected components
into a new vector. The mask is generated by shifting one of the higher
order bits of the index to the most significant position, and then
propagating that bit throughout a byte, for example by means of an
arithmetic shift. This procedure is carried out for all of the index bytes
in the vector, to generate a select mask. The select mask is then used
during a select operation, to choose between the results of permute
instructions on different ones of the logically divided sets of data.
Multi-byte table entries are retrieved by replicating each index value and
adding consecutive values to form multiple consecutive index values that
are then used in multiple permute operations.
Una operación de las operaciones de búsqueda es realizada en una tabla de los datos lógicamente dividiendo la tabla de los datos en un número de sistemas más pequeños de los datos que se pueden poner en un índice con un solo octeto de datos. Cada sistema de datos consiste en dos vectores, que constituyen los operandos para una instrucción de la permutación. Solamente un número limitado de pedacitos se requiere para poner en un índice en la tabla durante la ejecución de esta instrucción. Los pedacitos restantes de cada índice se utilizan como máscaras en una serie de instrucciones selectas. La instrucción selecta elige entre dos componentes del vector, basados en la máscara, y pone los componentes seleccionados en un nuevo vector. La máscara es generada cambiando de puesto uno de los pedacitos de una orden más alta del índice a la posición más significativa, y después propagando ese pedacito a través de un octeto, por ejemplo por medio de una cambio aritmética. Este procedimiento se realiza para todos los octetos del índice en el vector, para generar una máscara selecta. La máscara selecta entonces se utiliza durante una operación selecta, para elegir entre los resultados de permuta instrucciones en las diversas de los sistemas lógicamente divididos de datos. las entradas de la tabla del Multi-octeto son recuperadas replegando cada valor de índice y agregando valores consecutivos a los valores de índice consecutivos múltiples de la forma que entonces se utilizan en múltiplo permute las operaciones.