| !sum |
| - go: ShiftAllLeft |
| nameAndSizeCheck: true |
| specialLower: sftimm |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed. |
| - go: ShiftAllRight |
| signed: false |
| nameAndSizeCheck: true |
| specialLower: sftimm |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed. |
| - go: ShiftAllRight |
| signed: true |
| specialLower: sftimm |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit. |
| - go: shiftAllLeftConst # no APIs, only ssa ops. |
| noTypes: "true" |
| noGenericOps: "true" |
| SSAVariant: "const" # to avoid its name colliding with reg version of this instruction, amend this to its ssa op name. |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| - go: shiftAllRightConst # no APIs, only ssa ops. |
| noTypes: "true" |
| noGenericOps: "true" |
| SSAVariant: "const" |
| signed: false |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| - go: shiftAllRightConst # no APIs, only ssa ops. |
| noTypes: "true" |
| noGenericOps: "true" |
| SSAVariant: "const" |
| signed: true |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| |
| - go: ShiftLeft |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed. |
| - go: ShiftRight |
| signed: false |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed. |
| - go: ShiftRight |
| signed: true |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit. |
| - go: RotateAllLeft |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME rotates each element to the left by the number of bits specified by the immediate. |
| - go: RotateLeft |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME rotates each element in x to the left by the number of bits specified by y's corresponding elements. |
| - go: RotateAllRight |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME rotates each element to the right by the number of bits specified by the immediate. |
| - go: RotateRight |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME rotates each element in x to the right by the number of bits specified by y's corresponding elements. |
| - go: ShiftAllLeftConcat |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element of x to the left by the number of bits specified by the |
| // immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x. |
| - go: ShiftAllRightConcat |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element of x to the right by the number of bits specified by the |
| // immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x. |
| - go: ShiftLeftConcat |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element of x to the left by the number of bits specified by the |
| // corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x. |
| - go: ShiftRightConcat |
| nameAndSizeCheck: true |
| commutative: false |
| extension: "AVX.*" |
| documentation: !string |- |
| // NAME shifts each element of x to the right by the number of bits specified by the |
| // corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x. |