From: Cherry Mui Date: Wed, 17 Dec 2025 19:32:55 +0000 (-0500) Subject: simd/archsimd: reword documentation for conversion ops X-Git-Tag: go1.26rc2~7^2~60 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cfc024daebb84b1864f538d60659691ccf3acf30;p=gostls13.git simd/archsimd: reword documentation for conversion ops Use more compact wording for extension, truncation, and saturation. Say that we pack the results to the low elements and zero the high elements if and only if the result has more elements. Change-Id: Iae98d3c6ea6b5b5fa0acd548471e8d6c70a26d2d Reviewed-on: https://go-review.googlesource.com/c/go/+/730940 LUCI-TryBot-Result: Go LUCI Reviewed-by: David Chase --- diff --git a/src/simd/archsimd/_gen/simdgen/godefs.go b/src/simd/archsimd/_gen/simdgen/godefs.go index 2c10377420..3ac74264e8 100644 --- a/src/simd/archsimd/_gen/simdgen/godefs.go +++ b/src/simd/archsimd/_gen/simdgen/godefs.go @@ -135,6 +135,19 @@ func (o *Operation) DecodeUnified(v *unify.Value) error { o.In = append(o.rawOperation.In, o.rawOperation.InVariant...) + // For down conversions, the high elements are zeroed if the result has more elements. + // TODO: we should encode this logic in the YAML file, instead of hardcoding it here. + if len(o.In) > 0 && len(o.Out) > 0 { + inLanes := o.In[0].Lanes + outLanes := o.Out[0].Lanes + if inLanes != nil && outLanes != nil && *inLanes < *outLanes { + if (strings.Contains(o.Go, "Saturate") || strings.Contains(o.Go, "Truncate")) && + !strings.HasSuffix(o.Go, "Concat") { + o.Documentation += "\n// Results are packed to low elements in the returned vector, its upper elements are zeroed." + } + } + } + return nil } diff --git a/src/simd/archsimd/_gen/simdgen/ops/Converts/categories.yaml b/src/simd/archsimd/_gen/simdgen/ops/Converts/categories.yaml index dd33284063..1e2a6a9b69 100644 --- a/src/simd/archsimd/_gen/simdgen/ops/Converts/categories.yaml +++ b/src/simd/archsimd/_gen/simdgen/ops/Converts/categories.yaml @@ -44,124 +44,174 @@ // NAME converts element values to float64. # Int <-> Int conversions -- go: "(Extend|Saturate|Truncate)?ToInt8" +- go: "TruncateToInt8" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to int8. -- go: "(Extend|Saturate|Truncate)?ToInt16(Concat)?" + // NAME truncates element values to int8. +- go: "SaturateToInt8" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to int16. -- go: "(Extend|Saturate|Truncate)?ToInt32" + // NAME converts element values to int8 with signed saturation. +- go: "ExtendToInt16(Concat)?" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to int32. -- go: "(Extend|Saturate|Truncate)?ToInt64" + // NAME sign-extends element values to int16. +- go: "TruncateToInt16(Concat)?" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to int64. -- go: "(Extend|Saturate|Truncate)?ToUint8" + // NAME truncates element values to int16. +- go: "SaturateToInt16(Concat)?" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to uint8. -- go: "(Extend|Saturate|Truncate)?ToUint16(Concat)?" + // NAME converts element values to int16 with signed saturation. +- go: "ExtendToInt32" commutative: false regexpTag: "convert" documentation: !string |- - // NAME converts element values to uint16. -- go: "(Extend|Saturate|Truncate)?ToUint32" + // NAME sign-extends element values to int32. +- go: "TruncateToInt32" + commutative: false regexpTag: "convert" + documentation: !string |- + // NAME truncates element values to int32. +- go: "SaturateToInt32" commutative: false + regexpTag: "convert" documentation: !string |- - // NAME converts element values to uint32. -- go: "(Extend|Saturate|Truncate)?ToUint64" + // NAME converts element values to int32 with signed saturation. +- go: "ExtendToInt64" + commutative: false regexpTag: "convert" + documentation: !string |- + // NAME sign-extends element values to int64. +- go: "TruncateToUint8" commutative: false + regexpTag: "convert" documentation: !string |- - // NAME converts element values to uint64. + // NAME truncates element values to uint8. +- go: "SaturateToUint8" + commutative: false + regexpTag: "convert" + documentation: !string |- + // NAME converts element values to uint8 with unsigned saturation. +- go: "ExtendToUint16(Concat)?" + commutative: false + regexpTag: "convert" + documentation: !string |- + // NAME zero-extends element values to uint16. +- go: "TruncateToUint16(Concat)?" + commutative: false + regexpTag: "convert" + documentation: !string |- + // NAME truncates element values to uint16. +- go: "SaturateToUint16(Concat)?" + commutative: false + regexpTag: "convert" + documentation: !string |- + // NAME converts element values to uint16 with unsigned saturation. +- go: "ExtendToUint32" + regexpTag: "convert" + commutative: false + documentation: !string |- + // NAME zero-extends element values to uint32. +- go: "TruncateToUint32" + regexpTag: "convert" + commutative: false + documentation: !string |- + // NAME truncates element values to uint32. +- go: "SaturateToUint32" + regexpTag: "convert" + commutative: false + documentation: !string |- + // NAME converts element values to uint32 with unsigned saturation. +- go: "ExtendToUint64" + regexpTag: "convert" + commutative: false + documentation: !string |- + // NAME zero-extends element values to uint64. # low-part only Int <-> Int conversions - go: ExtendLo8ToUint16x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to uint16. + // NAME zero-extends 8 lowest vector element values to uint16. - go: ExtendLo8ToInt16x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to int16. + // NAME sign-extends 8 lowest vector element values to int16. - go: ExtendLo4ToUint32x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to uint32. + // NAME zero-extends 4 lowest vector element values to uint32. - go: ExtendLo4ToInt32x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to int32. + // NAME sign-extends 4 lowest vector element values to int32. - go: ExtendLo2ToUint64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to uint64. + // NAME zero-extends 2 lowest vector element values to uint64. - go: ExtendLo2ToInt64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to int64. + // NAME sign-extends 2 lowest vector element values to int64. - go: ExtendLo2ToUint64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to uint64. + // NAME zero-extends 2 lowest vector element values to uint64. - go: ExtendLo4ToUint64x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to uint64. + // NAME zero-extends 4 lowest vector element values to uint64. - go: ExtendLo2ToInt64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to int64. + // NAME sign-extends 2 lowest vector element values to int64. - go: ExtendLo4ToInt64x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to int64. + // NAME sign-extends 4 lowest vector element values to int64. - go: ExtendLo4ToUint32x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to uint32. + // NAME zero-extends 4 lowest vector element values to uint32. - go: ExtendLo8ToUint32x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to uint32. + // NAME zero-extends 8 lowest vector element values to uint32. - go: ExtendLo4ToInt32x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to int32. + // NAME sign-extends 4 lowest vector element values to int32. - go: ExtendLo8ToInt32x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to int32. + // NAME sign-extends 8 lowest vector element values to int32. - go: ExtendLo2ToUint64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to uint64. + // NAME zero-extends 2 lowest vector element values to uint64. - go: ExtendLo4ToUint64x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to uint64. + // NAME zero-extends 4 lowest vector element values to uint64. - go: ExtendLo8ToUint64x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to uint64. + // NAME zero-extends 8 lowest vector element values to uint64. - go: ExtendLo2ToInt64x2 commutative: false documentation: !string |- - // NAME converts 2 lowest vector element values to int64. + // NAME sign-extends 2 lowest vector element values to int64. - go: ExtendLo4ToInt64x4 commutative: false documentation: !string |- - // NAME converts 4 lowest vector element values to int64. + // NAME sign-extends 4 lowest vector element values to int64. - go: ExtendLo8ToInt64x8 commutative: false documentation: !string |- - // NAME converts 8 lowest vector element values to int64. \ No newline at end of file + // NAME sign-extends 8 lowest vector element values to int64. diff --git a/src/simd/archsimd/_gen/simdgen/ops/Converts/go.yaml b/src/simd/archsimd/_gen/simdgen/ops/Converts/go.yaml index af058124fb..64cd4cb24e 100644 --- a/src/simd/archsimd/_gen/simdgen/ops/Converts/go.yaml +++ b/src/simd/archsimd/_gen/simdgen/ops/Converts/go.yaml @@ -138,9 +138,6 @@ # Widening integer conversions. # uint8 -> uint16 - go: ExtendToUint16 - addDoc: &zeroExtendDoc - !string |- - // The result vector's elements are zero-extended. regexpTag: "convert" asm: "VPMOVZXBW" in: @@ -156,7 +153,6 @@ - go: ExtendToUint16 regexpTag: "convert" asm: "VPMOVZXBW" - addDoc: *zeroExtendDoc in: - &u8x32 base: uint @@ -171,9 +167,6 @@ - go: ExtendToInt16 regexpTag: "convert" asm: "VPMOVSXBW" - addDoc: &signExtendDoc - !string |- - // The result vector's elements are sign-extended. in: - &i8x16 base: int @@ -187,7 +180,6 @@ - go: ExtendToInt16 regexpTag: "convert" asm: "VPMOVSXBW" - addDoc: *signExtendDoc in: - &i8x32 base: int @@ -202,7 +194,6 @@ - go: ExtendToUint32 regexpTag: "convert" asm: "VPMOVZXWD" - addDoc: *zeroExtendDoc in: - &u16x8 base: uint @@ -216,7 +207,6 @@ - go: ExtendToUint32 regexpTag: "convert" asm: "VPMOVZXWD" - addDoc: *zeroExtendDoc in: - *u16x16 out: @@ -228,7 +218,6 @@ - go: ExtendToInt32 regexpTag: "convert" asm: "VPMOVSXWD" - addDoc: *signExtendDoc in: - &i16x8 base: int @@ -242,7 +231,6 @@ - go: ExtendToInt32 regexpTag: "convert" asm: "VPMOVSXWD" - addDoc: *signExtendDoc in: - *i16x16 out: @@ -254,7 +242,6 @@ - go: ExtendToUint64 regexpTag: "convert" asm: "VPMOVZXDQ" - addDoc: *zeroExtendDoc in: - &u32x4 base: uint @@ -268,7 +255,6 @@ - go: ExtendToUint64 regexpTag: "convert" asm: "VPMOVZXDQ" - addDoc: *zeroExtendDoc in: - *u32x8 out: @@ -280,7 +266,6 @@ - go: ExtendToInt64 regexpTag: "convert" asm: "VPMOVSXDQ" - addDoc: *signExtendDoc in: - &i32x4 base: int @@ -294,7 +279,6 @@ - go: ExtendToInt64 regexpTag: "convert" asm: "VPMOVSXDQ" - addDoc: *signExtendDoc in: - *i32x8 out: @@ -306,7 +290,6 @@ - go: ExtendToUint64 regexpTag: "convert" asm: "VPMOVZXWQ" - addDoc: *zeroExtendDoc in: - *u16x8 out: @@ -315,7 +298,6 @@ - go: ExtendToInt64 regexpTag: "convert" asm: "VPMOVSXWQ" - addDoc: *signExtendDoc in: - *i16x8 out: @@ -324,7 +306,6 @@ - go: ExtendToUint32 regexpTag: "convert" asm: "VPMOVZXBD" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -333,7 +314,6 @@ - go: ExtendToInt32 regexpTag: "convert" asm: "VPMOVSXBD" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -342,10 +322,6 @@ - go: TruncateToInt8 regexpTag: "convert" asm: "VPMOV[WDQ]B" - addDoc: &truncDocZeroUpper - !string |- - // Conversion is done with truncation on the vector elements. - // Results are packed to low elements in the returned vector, its upper elements are zero-cleared. in: - base: int out: @@ -354,7 +330,6 @@ - go: TruncateToUint8 regexpTag: "convert" asm: "VPMOV[WDQ]B" - addDoc: *truncDocZeroUpper in: - base: uint out: @@ -363,9 +338,6 @@ - go: TruncateToInt8 regexpTag: "convert" asm: "VPMOV[WDQ]B" - addDoc: &truncDoc - !string |- - // Conversion is done with truncation on the vector elements. in: - base: int out: @@ -374,7 +346,6 @@ - go: TruncateToUint8 regexpTag: "convert" asm: "VPMOV[WDQ]B" - addDoc: *truncDoc in: - base: uint out: @@ -383,7 +354,6 @@ - go: TruncateToInt16 regexpTag: "convert" asm: "VPMOV[DQ]W" - addDoc: *truncDoc in: - base: int out: @@ -391,7 +361,6 @@ - go: TruncateToUint16 regexpTag: "convert" asm: "VPMOV[DQ]W" - addDoc: *truncDoc in: - base: uint out: @@ -399,7 +368,6 @@ - go: TruncateToInt32 regexpTag: "convert" asm: "VPMOVQD" - addDoc: *truncDoc in: - base: int out: @@ -407,7 +375,6 @@ - go: TruncateToUint32 regexpTag: "convert" asm: "VPMOVQD" - addDoc: *truncDoc in: - base: uint out: @@ -416,10 +383,6 @@ - go: SaturateToInt8 regexpTag: "convert" asm: "VPMOVS[WDQ]B" - addDoc: &satDocZeroUpper - !string |- - // Conversion is done with saturation on the vector elements. - // Results are packed to low elements in the returned vector, its upper elements are zero-cleared. in: - base: int out: @@ -428,7 +391,6 @@ - go: SaturateToUint8 regexpTag: "convert" asm: "VPMOVS[WDQ]B" - addDoc: *satDocZeroUpper in: - base: int out: @@ -437,9 +399,6 @@ - go: SaturateToInt8 regexpTag: "convert" asm: "VPMOVS[WDQ]B" - addDoc: &satDoc - !string |- - // Conversion is done with saturation on the vector elements. in: - base: int out: @@ -448,7 +407,6 @@ - go: SaturateToUint8 regexpTag: "convert" asm: "VPMOVUS[WDQ]B" - addDoc: *satDoc in: - base: uint out: @@ -457,7 +415,6 @@ - go: SaturateToInt16 regexpTag: "convert" asm: "VPMOVS[DQ]W" - addDoc: *satDoc in: - base: int out: @@ -465,7 +422,6 @@ - go: SaturateToUint16 regexpTag: "convert" asm: "VPMOVUS[DQ]W" - addDoc: *satDoc in: - base: uint out: @@ -473,7 +429,6 @@ - go: SaturateToInt32 regexpTag: "convert" asm: "VPMOVSQD" - addDoc: *satDoc in: - base: int out: @@ -481,7 +436,6 @@ - go: SaturateToUint32 regexpTag: "convert" asm: "VPMOVUSQD" - addDoc: *satDoc in: - base: uint out: @@ -495,7 +449,6 @@ // With each 128-bit as a group: // The converted group from the first input vector will be packed to the lower part of the result vector, // the converted group from the second input vector will be packed to the upper part of the result vector. - // Conversion is done with saturation on the vector elements. in: - base: int - base: int @@ -504,7 +457,6 @@ - go: SaturateToUint16Concat regexpTag: "convert" asm: "VPACKUSDW" - addDoc: *satDocConcat in: - base: uint - base: uint @@ -516,7 +468,6 @@ - go: ExtendLo8ToUint16x8 regexpTag: "convert" asm: "VPMOVZXBW" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -525,7 +476,6 @@ - go: ExtendLo8ToInt16x8 regexpTag: "convert" asm: "VPMOVSXBW" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -534,7 +484,6 @@ - go: ExtendLo4ToUint32x4 regexpTag: "convert" asm: "VPMOVZXWD" - addDoc: *zeroExtendDoc in: - *u16x8 out: @@ -543,7 +492,6 @@ - go: ExtendLo4ToInt32x4 regexpTag: "convert" asm: "VPMOVSXWD" - addDoc: *signExtendDoc in: - *i16x8 out: @@ -552,7 +500,6 @@ - go: ExtendLo2ToUint64x2 regexpTag: "convert" asm: "VPMOVZXDQ" - addDoc: *zeroExtendDoc in: - *u32x4 out: @@ -564,7 +511,6 @@ - go: ExtendLo2ToInt64x2 regexpTag: "convert" asm: "VPMOVSXDQ" - addDoc: *signExtendDoc in: - *i32x4 out: @@ -576,7 +522,6 @@ - go: ExtendLo2ToUint64x2 regexpTag: "convert" asm: "VPMOVZXWQ" - addDoc: *zeroExtendDoc in: - *u16x8 out: @@ -584,7 +529,6 @@ - go: ExtendLo4ToUint64x4 regexpTag: "convert" asm: "VPMOVZXWQ" - addDoc: *zeroExtendDoc in: - *u16x8 out: @@ -593,7 +537,6 @@ - go: ExtendLo2ToInt64x2 regexpTag: "convert" asm: "VPMOVSXWQ" - addDoc: *signExtendDoc in: - *i16x8 out: @@ -601,7 +544,6 @@ - go: ExtendLo4ToInt64x4 regexpTag: "convert" asm: "VPMOVSXWQ" - addDoc: *signExtendDoc in: - *i16x8 out: @@ -610,7 +552,6 @@ - go: ExtendLo4ToUint32x4 regexpTag: "convert" asm: "VPMOVZXBD" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -618,7 +559,6 @@ - go: ExtendLo8ToUint32x8 regexpTag: "convert" asm: "VPMOVZXBD" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -627,7 +567,6 @@ - go: ExtendLo4ToInt32x4 regexpTag: "convert" asm: "VPMOVSXBD" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -635,7 +574,6 @@ - go: ExtendLo8ToInt32x8 regexpTag: "convert" asm: "VPMOVSXBD" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -644,7 +582,6 @@ - go: ExtendLo2ToUint64x2 regexpTag: "convert" asm: "VPMOVZXBQ" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -652,7 +589,6 @@ - go: ExtendLo4ToUint64x4 regexpTag: "convert" asm: "VPMOVZXBQ" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -660,7 +596,6 @@ - go: ExtendLo8ToUint64x8 regexpTag: "convert" asm: "VPMOVZXBQ" - addDoc: *zeroExtendDoc in: - *u8x16 out: @@ -669,7 +604,6 @@ - go: ExtendLo2ToInt64x2 regexpTag: "convert" asm: "VPMOVSXBQ" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -677,7 +611,6 @@ - go: ExtendLo4ToInt64x4 regexpTag: "convert" asm: "VPMOVSXBQ" - addDoc: *signExtendDoc in: - *i8x16 out: @@ -685,8 +618,7 @@ - go: ExtendLo8ToInt64x8 regexpTag: "convert" asm: "VPMOVSXBQ" - addDoc: *signExtendDoc in: - *i8x16 out: - - *i64x8 \ No newline at end of file + - *i64x8 diff --git a/src/simd/archsimd/ops_amd64.go b/src/simd/archsimd/ops_amd64.go index d01f340d25..2d596ac5f3 100644 --- a/src/simd/archsimd/ops_amd64.go +++ b/src/simd/archsimd/ops_amd64.go @@ -2356,252 +2356,216 @@ func (x Uint64x8) Expand(mask Mask64x8) Uint64x8 /* ExtendLo2ToInt64x2 */ -// ExtendLo2ToInt64x2 converts 2 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo2ToInt64x2 sign-extends 2 lowest vector element values to int64. // // Asm: VPMOVSXBQ, CPU Feature: AVX func (x Int8x16) ExtendLo2ToInt64x2() Int64x2 -// ExtendLo2ToInt64x2 converts 2 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo2ToInt64x2 sign-extends 2 lowest vector element values to int64. // // Asm: VPMOVSXWQ, CPU Feature: AVX func (x Int16x8) ExtendLo2ToInt64x2() Int64x2 -// ExtendLo2ToInt64x2 converts 2 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo2ToInt64x2 sign-extends 2 lowest vector element values to int64. // // Asm: VPMOVSXDQ, CPU Feature: AVX func (x Int32x4) ExtendLo2ToInt64x2() Int64x2 /* ExtendLo2ToUint64x2 */ -// ExtendLo2ToUint64x2 converts 2 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo2ToUint64x2 zero-extends 2 lowest vector element values to uint64. // // Asm: VPMOVZXBQ, CPU Feature: AVX func (x Uint8x16) ExtendLo2ToUint64x2() Uint64x2 -// ExtendLo2ToUint64x2 converts 2 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo2ToUint64x2 zero-extends 2 lowest vector element values to uint64. // // Asm: VPMOVZXWQ, CPU Feature: AVX func (x Uint16x8) ExtendLo2ToUint64x2() Uint64x2 -// ExtendLo2ToUint64x2 converts 2 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo2ToUint64x2 zero-extends 2 lowest vector element values to uint64. // // Asm: VPMOVZXDQ, CPU Feature: AVX func (x Uint32x4) ExtendLo2ToUint64x2() Uint64x2 /* ExtendLo4ToInt32x4 */ -// ExtendLo4ToInt32x4 converts 4 lowest vector element values to int32. -// The result vector's elements are sign-extended. +// ExtendLo4ToInt32x4 sign-extends 4 lowest vector element values to int32. // // Asm: VPMOVSXBD, CPU Feature: AVX func (x Int8x16) ExtendLo4ToInt32x4() Int32x4 -// ExtendLo4ToInt32x4 converts 4 lowest vector element values to int32. -// The result vector's elements are sign-extended. +// ExtendLo4ToInt32x4 sign-extends 4 lowest vector element values to int32. // // Asm: VPMOVSXWD, CPU Feature: AVX func (x Int16x8) ExtendLo4ToInt32x4() Int32x4 /* ExtendLo4ToInt64x4 */ -// ExtendLo4ToInt64x4 converts 4 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo4ToInt64x4 sign-extends 4 lowest vector element values to int64. // // Asm: VPMOVSXBQ, CPU Feature: AVX2 func (x Int8x16) ExtendLo4ToInt64x4() Int64x4 -// ExtendLo4ToInt64x4 converts 4 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo4ToInt64x4 sign-extends 4 lowest vector element values to int64. // // Asm: VPMOVSXWQ, CPU Feature: AVX2 func (x Int16x8) ExtendLo4ToInt64x4() Int64x4 /* ExtendLo4ToUint32x4 */ -// ExtendLo4ToUint32x4 converts 4 lowest vector element values to uint32. -// The result vector's elements are zero-extended. +// ExtendLo4ToUint32x4 zero-extends 4 lowest vector element values to uint32. // // Asm: VPMOVZXBD, CPU Feature: AVX func (x Uint8x16) ExtendLo4ToUint32x4() Uint32x4 -// ExtendLo4ToUint32x4 converts 4 lowest vector element values to uint32. -// The result vector's elements are zero-extended. +// ExtendLo4ToUint32x4 zero-extends 4 lowest vector element values to uint32. // // Asm: VPMOVZXWD, CPU Feature: AVX func (x Uint16x8) ExtendLo4ToUint32x4() Uint32x4 /* ExtendLo4ToUint64x4 */ -// ExtendLo4ToUint64x4 converts 4 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo4ToUint64x4 zero-extends 4 lowest vector element values to uint64. // // Asm: VPMOVZXBQ, CPU Feature: AVX2 func (x Uint8x16) ExtendLo4ToUint64x4() Uint64x4 -// ExtendLo4ToUint64x4 converts 4 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo4ToUint64x4 zero-extends 4 lowest vector element values to uint64. // // Asm: VPMOVZXWQ, CPU Feature: AVX2 func (x Uint16x8) ExtendLo4ToUint64x4() Uint64x4 /* ExtendLo8ToInt16x8 */ -// ExtendLo8ToInt16x8 converts 8 lowest vector element values to int16. -// The result vector's elements are sign-extended. +// ExtendLo8ToInt16x8 sign-extends 8 lowest vector element values to int16. // // Asm: VPMOVSXBW, CPU Feature: AVX func (x Int8x16) ExtendLo8ToInt16x8() Int16x8 /* ExtendLo8ToInt32x8 */ -// ExtendLo8ToInt32x8 converts 8 lowest vector element values to int32. -// The result vector's elements are sign-extended. +// ExtendLo8ToInt32x8 sign-extends 8 lowest vector element values to int32. // // Asm: VPMOVSXBD, CPU Feature: AVX2 func (x Int8x16) ExtendLo8ToInt32x8() Int32x8 /* ExtendLo8ToInt64x8 */ -// ExtendLo8ToInt64x8 converts 8 lowest vector element values to int64. -// The result vector's elements are sign-extended. +// ExtendLo8ToInt64x8 sign-extends 8 lowest vector element values to int64. // // Asm: VPMOVSXBQ, CPU Feature: AVX512 func (x Int8x16) ExtendLo8ToInt64x8() Int64x8 /* ExtendLo8ToUint16x8 */ -// ExtendLo8ToUint16x8 converts 8 lowest vector element values to uint16. -// The result vector's elements are zero-extended. +// ExtendLo8ToUint16x8 zero-extends 8 lowest vector element values to uint16. // // Asm: VPMOVZXBW, CPU Feature: AVX func (x Uint8x16) ExtendLo8ToUint16x8() Uint16x8 /* ExtendLo8ToUint32x8 */ -// ExtendLo8ToUint32x8 converts 8 lowest vector element values to uint32. -// The result vector's elements are zero-extended. +// ExtendLo8ToUint32x8 zero-extends 8 lowest vector element values to uint32. // // Asm: VPMOVZXBD, CPU Feature: AVX2 func (x Uint8x16) ExtendLo8ToUint32x8() Uint32x8 /* ExtendLo8ToUint64x8 */ -// ExtendLo8ToUint64x8 converts 8 lowest vector element values to uint64. -// The result vector's elements are zero-extended. +// ExtendLo8ToUint64x8 zero-extends 8 lowest vector element values to uint64. // // Asm: VPMOVZXBQ, CPU Feature: AVX512 func (x Uint8x16) ExtendLo8ToUint64x8() Uint64x8 /* ExtendToInt16 */ -// ExtendToInt16 converts element values to int16. -// The result vector's elements are sign-extended. +// ExtendToInt16 sign-extends element values to int16. // // Asm: VPMOVSXBW, CPU Feature: AVX2 func (x Int8x16) ExtendToInt16() Int16x16 -// ExtendToInt16 converts element values to int16. -// The result vector's elements are sign-extended. +// ExtendToInt16 sign-extends element values to int16. // // Asm: VPMOVSXBW, CPU Feature: AVX512 func (x Int8x32) ExtendToInt16() Int16x32 /* ExtendToInt32 */ -// ExtendToInt32 converts element values to int32. -// The result vector's elements are sign-extended. +// ExtendToInt32 sign-extends element values to int32. // // Asm: VPMOVSXBD, CPU Feature: AVX512 func (x Int8x16) ExtendToInt32() Int32x16 -// ExtendToInt32 converts element values to int32. -// The result vector's elements are sign-extended. +// ExtendToInt32 sign-extends element values to int32. // // Asm: VPMOVSXWD, CPU Feature: AVX2 func (x Int16x8) ExtendToInt32() Int32x8 -// ExtendToInt32 converts element values to int32. -// The result vector's elements are sign-extended. +// ExtendToInt32 sign-extends element values to int32. // // Asm: VPMOVSXWD, CPU Feature: AVX512 func (x Int16x16) ExtendToInt32() Int32x16 /* ExtendToInt64 */ -// ExtendToInt64 converts element values to int64. -// The result vector's elements are sign-extended. +// ExtendToInt64 sign-extends element values to int64. // // Asm: VPMOVSXWQ, CPU Feature: AVX512 func (x Int16x8) ExtendToInt64() Int64x8 -// ExtendToInt64 converts element values to int64. -// The result vector's elements are sign-extended. +// ExtendToInt64 sign-extends element values to int64. // // Asm: VPMOVSXDQ, CPU Feature: AVX2 func (x Int32x4) ExtendToInt64() Int64x4 -// ExtendToInt64 converts element values to int64. -// The result vector's elements are sign-extended. +// ExtendToInt64 sign-extends element values to int64. // // Asm: VPMOVSXDQ, CPU Feature: AVX512 func (x Int32x8) ExtendToInt64() Int64x8 /* ExtendToUint16 */ -// ExtendToUint16 converts element values to uint16. -// The result vector's elements are zero-extended. +// ExtendToUint16 zero-extends element values to uint16. // // Asm: VPMOVZXBW, CPU Feature: AVX2 func (x Uint8x16) ExtendToUint16() Uint16x16 -// ExtendToUint16 converts element values to uint16. -// The result vector's elements are zero-extended. +// ExtendToUint16 zero-extends element values to uint16. // // Asm: VPMOVZXBW, CPU Feature: AVX512 func (x Uint8x32) ExtendToUint16() Uint16x32 /* ExtendToUint32 */ -// ExtendToUint32 converts element values to uint32. -// The result vector's elements are zero-extended. +// ExtendToUint32 zero-extends element values to uint32. // // Asm: VPMOVZXBD, CPU Feature: AVX512 func (x Uint8x16) ExtendToUint32() Uint32x16 -// ExtendToUint32 converts element values to uint32. -// The result vector's elements are zero-extended. +// ExtendToUint32 zero-extends element values to uint32. // // Asm: VPMOVZXWD, CPU Feature: AVX2 func (x Uint16x8) ExtendToUint32() Uint32x8 -// ExtendToUint32 converts element values to uint32. -// The result vector's elements are zero-extended. +// ExtendToUint32 zero-extends element values to uint32. // // Asm: VPMOVZXWD, CPU Feature: AVX512 func (x Uint16x16) ExtendToUint32() Uint32x16 /* ExtendToUint64 */ -// ExtendToUint64 converts element values to uint64. -// The result vector's elements are zero-extended. +// ExtendToUint64 zero-extends element values to uint64. // // Asm: VPMOVZXWQ, CPU Feature: AVX512 func (x Uint16x8) ExtendToUint64() Uint64x8 -// ExtendToUint64 converts element values to uint64. -// The result vector's elements are zero-extended. +// ExtendToUint64 zero-extends element values to uint64. // // Asm: VPMOVZXDQ, CPU Feature: AVX2 func (x Uint32x4) ExtendToUint64() Uint64x4 -// ExtendToUint64 converts element values to uint64. -// The result vector's elements are zero-extended. +// ExtendToUint64 zero-extends element values to uint64. // // Asm: VPMOVZXDQ, CPU Feature: AVX512 func (x Uint32x8) ExtendToUint64() Uint64x8 @@ -5365,302 +5329,255 @@ func (x Uint32x4) SHA256TwoRounds(y Uint32x4, z Uint32x4) Uint32x4 /* SaturateToInt8 */ -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSWB, CPU Feature: AVX512 func (x Int16x8) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. // // Asm: VPMOVSWB, CPU Feature: AVX512 func (x Int16x16) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. +// SaturateToInt8 converts element values to int8 with signed saturation. // // Asm: VPMOVSWB, CPU Feature: AVX512 func (x Int16x32) SaturateToInt8() Int8x32 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x4) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x8) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x16) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x2) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x4) SaturateToInt8() Int8x16 -// SaturateToInt8 converts element values to int8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToInt8 converts element values to int8 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x8) SaturateToInt8() Int8x16 /* SaturateToInt16 */ -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSDW, CPU Feature: AVX512 func (x Int32x4) SaturateToInt16() Int16x8 -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. // // Asm: VPMOVSDW, CPU Feature: AVX512 func (x Int32x8) SaturateToInt16() Int16x8 -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. // // Asm: VPMOVSDW, CPU Feature: AVX512 func (x Int32x16) SaturateToInt16() Int16x16 -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQW, CPU Feature: AVX512 func (x Int64x2) SaturateToInt16() Int16x8 -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQW, CPU Feature: AVX512 func (x Int64x4) SaturateToInt16() Int16x8 -// SaturateToInt16 converts element values to int16. -// Conversion is done with saturation on the vector elements. +// SaturateToInt16 converts element values to int16 with signed saturation. // // Asm: VPMOVSQW, CPU Feature: AVX512 func (x Int64x8) SaturateToInt16() Int16x8 /* SaturateToInt16Concat */ -// SaturateToInt16Concat converts element values to int16. +// SaturateToInt16Concat converts element values to int16 with signed saturation. // With each 128-bit as a group: // The converted group from the first input vector will be packed to the lower part of the result vector, // the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. // // Asm: VPACKSSDW, CPU Feature: AVX func (x Int32x4) SaturateToInt16Concat(y Int32x4) Int16x8 -// SaturateToInt16Concat converts element values to int16. +// SaturateToInt16Concat converts element values to int16 with signed saturation. // With each 128-bit as a group: // The converted group from the first input vector will be packed to the lower part of the result vector, // the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. // // Asm: VPACKSSDW, CPU Feature: AVX2 func (x Int32x8) SaturateToInt16Concat(y Int32x8) Int16x16 -// SaturateToInt16Concat converts element values to int16. +// SaturateToInt16Concat converts element values to int16 with signed saturation. // With each 128-bit as a group: // The converted group from the first input vector will be packed to the lower part of the result vector, // the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. // // Asm: VPACKSSDW, CPU Feature: AVX512 func (x Int32x16) SaturateToInt16Concat(y Int32x16) Int16x32 /* SaturateToInt32 */ -// SaturateToInt32 converts element values to int32. -// Conversion is done with saturation on the vector elements. +// SaturateToInt32 converts element values to int32 with signed saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQD, CPU Feature: AVX512 func (x Int64x2) SaturateToInt32() Int32x4 -// SaturateToInt32 converts element values to int32. -// Conversion is done with saturation on the vector elements. +// SaturateToInt32 converts element values to int32 with signed saturation. // // Asm: VPMOVSQD, CPU Feature: AVX512 func (x Int64x4) SaturateToInt32() Int32x4 -// SaturateToInt32 converts element values to int32. -// Conversion is done with saturation on the vector elements. +// SaturateToInt32 converts element values to int32 with signed saturation. // // Asm: VPMOVSQD, CPU Feature: AVX512 func (x Int64x8) SaturateToInt32() Int32x8 /* SaturateToUint8 */ -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSWB, CPU Feature: AVX512 func (x Int16x8) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. // // Asm: VPMOVSWB, CPU Feature: AVX512 func (x Int16x16) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x4) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x8) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. // // Asm: VPMOVSDB, CPU Feature: AVX512 func (x Int32x16) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x2) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x4) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVSQB, CPU Feature: AVX512 func (x Int64x8) SaturateToUint8() Int8x16 -// SaturateToUint8 converts element values to uint8. -// Conversion is done with saturation on the vector elements. +// SaturateToUint8 converts element values to uint8 with unsigned saturation. // // Asm: VPMOVUSWB, CPU Feature: AVX512 func (x Uint16x32) SaturateToUint8() Uint8x32 /* SaturateToUint16 */ -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVUSDW, CPU Feature: AVX512 func (x Uint32x4) SaturateToUint16() Uint16x8 -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. // // Asm: VPMOVUSDW, CPU Feature: AVX512 func (x Uint32x8) SaturateToUint16() Uint16x8 -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. // // Asm: VPMOVUSDW, CPU Feature: AVX512 func (x Uint32x16) SaturateToUint16() Uint16x16 -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVUSQW, CPU Feature: AVX512 func (x Uint64x2) SaturateToUint16() Uint16x8 -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVUSQW, CPU Feature: AVX512 func (x Uint64x4) SaturateToUint16() Uint16x8 -// SaturateToUint16 converts element values to uint16. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16 converts element values to uint16 with unsigned saturation. // // Asm: VPMOVUSQW, CPU Feature: AVX512 func (x Uint64x8) SaturateToUint16() Uint16x8 /* SaturateToUint16Concat */ -// SaturateToUint16Concat converts element values to uint16. -// With each 128-bit as a group: -// The converted group from the first input vector will be packed to the lower part of the result vector, -// the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16Concat converts element values to uint16 with unsigned saturation. // // Asm: VPACKUSDW, CPU Feature: AVX func (x Uint32x4) SaturateToUint16Concat(y Uint32x4) Uint16x8 -// SaturateToUint16Concat converts element values to uint16. -// With each 128-bit as a group: -// The converted group from the first input vector will be packed to the lower part of the result vector, -// the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16Concat converts element values to uint16 with unsigned saturation. // // Asm: VPACKUSDW, CPU Feature: AVX2 func (x Uint32x8) SaturateToUint16Concat(y Uint32x8) Uint16x16 -// SaturateToUint16Concat converts element values to uint16. -// With each 128-bit as a group: -// The converted group from the first input vector will be packed to the lower part of the result vector, -// the converted group from the second input vector will be packed to the upper part of the result vector. -// Conversion is done with saturation on the vector elements. +// SaturateToUint16Concat converts element values to uint16 with unsigned saturation. // // Asm: VPACKUSDW, CPU Feature: AVX512 func (x Uint32x16) SaturateToUint16Concat(y Uint32x16) Uint16x32 /* SaturateToUint32 */ -// SaturateToUint32 converts element values to uint32. -// Conversion is done with saturation on the vector elements. +// SaturateToUint32 converts element values to uint32 with unsigned saturation. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVUSQD, CPU Feature: AVX512 func (x Uint64x2) SaturateToUint32() Uint32x4 -// SaturateToUint32 converts element values to uint32. -// Conversion is done with saturation on the vector elements. +// SaturateToUint32 converts element values to uint32 with unsigned saturation. // // Asm: VPMOVUSQD, CPU Feature: AVX512 func (x Uint64x4) SaturateToUint32() Uint32x4 -// SaturateToUint32 converts element values to uint32. -// Conversion is done with saturation on the vector elements. +// SaturateToUint32 converts element values to uint32 with unsigned saturation. // // Asm: VPMOVUSQD, CPU Feature: AVX512 func (x Uint64x8) SaturateToUint32() Uint32x8 @@ -7478,244 +7395,212 @@ func (x Float64x8) TruncScaledResidue(prec uint8) Float64x8 /* TruncateToInt8 */ -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Int16x8) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Int16x16) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. +// TruncateToInt8 truncates element values to int8. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Int16x32) TruncateToInt8() Int8x32 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Int32x4) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Int32x8) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Int32x16) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Int64x2) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Int64x4) TruncateToInt8() Int8x16 -// TruncateToInt8 converts element values to int8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToInt8 truncates element values to int8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Int64x8) TruncateToInt8() Int8x16 /* TruncateToInt16 */ -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Int32x4) TruncateToInt16() Int16x8 -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Int32x8) TruncateToInt16() Int16x8 -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Int32x16) TruncateToInt16() Int16x16 -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Int64x2) TruncateToInt16() Int16x8 -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Int64x4) TruncateToInt16() Int16x8 -// TruncateToInt16 converts element values to int16. -// Conversion is done with truncation on the vector elements. +// TruncateToInt16 truncates element values to int16. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Int64x8) TruncateToInt16() Int16x8 /* TruncateToInt32 */ -// TruncateToInt32 converts element values to int32. -// Conversion is done with truncation on the vector elements. +// TruncateToInt32 truncates element values to int32. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Int64x2) TruncateToInt32() Int32x4 -// TruncateToInt32 converts element values to int32. -// Conversion is done with truncation on the vector elements. +// TruncateToInt32 truncates element values to int32. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Int64x4) TruncateToInt32() Int32x4 -// TruncateToInt32 converts element values to int32. -// Conversion is done with truncation on the vector elements. +// TruncateToInt32 truncates element values to int32. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Int64x8) TruncateToInt32() Int32x8 /* TruncateToUint8 */ -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Uint16x8) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Uint16x16) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. +// TruncateToUint8 truncates element values to uint8. // // Asm: VPMOVWB, CPU Feature: AVX512 func (x Uint16x32) TruncateToUint8() Uint8x32 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Uint32x4) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Uint32x8) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. // // Asm: VPMOVDB, CPU Feature: AVX512 func (x Uint32x16) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Uint64x2) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Uint64x4) TruncateToUint8() Uint8x16 -// TruncateToUint8 converts element values to uint8. -// Conversion is done with truncation on the vector elements. -// Results are packed to low elements in the returned vector, its upper elements are zero-cleared. +// TruncateToUint8 truncates element values to uint8. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQB, CPU Feature: AVX512 func (x Uint64x8) TruncateToUint8() Uint8x16 /* TruncateToUint16 */ -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Uint32x4) TruncateToUint16() Uint16x8 -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Uint32x8) TruncateToUint16() Uint16x8 -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. // // Asm: VPMOVDW, CPU Feature: AVX512 func (x Uint32x16) TruncateToUint16() Uint16x16 -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Uint64x2) TruncateToUint16() Uint16x8 -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Uint64x4) TruncateToUint16() Uint16x8 -// TruncateToUint16 converts element values to uint16. -// Conversion is done with truncation on the vector elements. +// TruncateToUint16 truncates element values to uint16. // // Asm: VPMOVQW, CPU Feature: AVX512 func (x Uint64x8) TruncateToUint16() Uint16x8 /* TruncateToUint32 */ -// TruncateToUint32 converts element values to uint32. -// Conversion is done with truncation on the vector elements. +// TruncateToUint32 truncates element values to uint32. +// Results are packed to low elements in the returned vector, its upper elements are zeroed. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Uint64x2) TruncateToUint32() Uint32x4 -// TruncateToUint32 converts element values to uint32. -// Conversion is done with truncation on the vector elements. +// TruncateToUint32 truncates element values to uint32. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Uint64x4) TruncateToUint32() Uint32x4 -// TruncateToUint32 converts element values to uint32. -// Conversion is done with truncation on the vector elements. +// TruncateToUint32 truncates element values to uint32. // // Asm: VPMOVQD, CPU Feature: AVX512 func (x Uint64x8) TruncateToUint32() Uint32x8