!sum - go: ShiftAllLeft nameAndSizeCheck: true specialLower: sftimm commutative: false 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 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 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 - go: shiftAllRightConst # no APIs, only ssa ops. noTypes: "true" noGenericOps: "true" SSAVariant: "const" signed: false nameAndSizeCheck: true commutative: false - go: shiftAllRightConst # no APIs, only ssa ops. noTypes: "true" noGenericOps: "true" SSAVariant: "const" signed: true nameAndSizeCheck: true commutative: false - go: ShiftLeft nameAndSizeCheck: true commutative: false 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 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 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 documentation: !string |- // NAME rotates each element to the left by the number of bits specified by the immediate. - go: RotateLeft nameAndSizeCheck: true commutative: false 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 documentation: !string |- // NAME rotates each element to the right by the number of bits specified by the immediate. - go: RotateRight nameAndSizeCheck: true commutative: false 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 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 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 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 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.