US 11,900,111 B2
Permutation instruction
Srijesh Sudarsanan, Boston, MA (US); Deepak Mathew, Acton, MA (US); Marc Hoffman, Mansfield, MA (US); Gerald Sweeney, Chelmsford, MA (US); Sundar Rajan Balasubramanian, Groton, MA (US); Hongfeng Dong, Acton, MA (US); Yurong Sun, Acton, MA (US); and Seyedmehdi Sadeghzadeh, Brookline, MA (US)
Assigned to QUALCOMM Incorporated, San Diego, CA (US)
Filed by QUALCOMM Incorporated, San Diego, CA (US)
Filed on Sep. 24, 2021, as Appl. No. 17/448,816.
Prior Publication US 2023/0102564 A1, Mar. 30, 2023
Int. Cl. G06F 9/30 (2018.01)
CPC G06F 9/30036 (2013.01) [G06F 9/30101 (2013.01)] 30 Claims
OG exemplary drawing
 
1. A device comprising:
a vector register file including a plurality of vector registers comprising a set of source vector registers and a first permutation result register, wherein the set of source vector registers has a set count and the source vector registers contain source data for a permutation instruction that includes multiple parameters;
a memory configured to store the permutation instruction, wherein one or two of the multiple parameters are register selection order parameters that characterize a register selection order, wherein each of the register selection order parameters is a scalar value, wherein one of the register selection order parameters is a periodicity parameter indicating the set count of the set of source vector registers, wherein the register selection order indicates a repeated pattern of register selection, wherein the periodicity parameter indicates a length of the repeated pattern, and wherein a particular source vector register is included once during each iteration of the repeated pattern; and
a processor configured to execute the permutation instruction to, for each particular element of multiple elements of the first permutation result register of the plurality of vector registers:
select, based on the register selection order, a source vector register of the plurality of vector registers; and
populate the particular element based on a value in a corresponding element of the selected source vector register.