[dev.simd] cmd/compile, simd: complete u?int widening conversions

Change-Id: I21da09261b6b278768d99229fe2db387aef1e812
Reviewed-on: https://go-review.googlesource.com/c/go/+/697915
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Junyang Shao 2025-08-21 02:47:53 +00:00
parent 6af8881adb
commit f4c41d9922
10 changed files with 1993 additions and 14 deletions

View file

@ -1195,6 +1195,25 @@ func (x Uint64x4) Compress(mask Mask64x4) Uint64x4
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
func (x Uint64x8) Compress(mask Mask64x8) Uint64x8
/* ConvertToInt16 */
// ConvertToInt16 converts element values to int16.
//
// Asm: VPMOVSXBW, CPU Feature: AVX2
func (x Int8x16) ConvertToInt16() Int16x16
// ConvertToInt16 converts element values to int16.
//
// Asm: VPMOVSXBW, CPU Feature: AVX512
func (x Int8x32) ConvertToInt16() Int16x32
/* ConvertToInt16x8 */
// ConvertToInt16x8 converts 8 lowest vector element values to int16.
//
// Asm: VPMOVSXBW, CPU Feature: AVX
func (x Int8x16) ConvertToInt16x8() Int16x8
/* ConvertToInt32 */
// ConvertToInt32 converts element values to int32.
@ -1212,6 +1231,88 @@ func (x Float32x8) ConvertToInt32() Int32x8
// Asm: VCVTTPS2DQ, CPU Feature: AVX512
func (x Float32x16) ConvertToInt32() Int32x16
// ConvertToInt32 converts element values to int32.
//
// Asm: VPMOVSXBD, CPU Feature: AVX512
func (x Int8x16) ConvertToInt32() Int32x16
// ConvertToInt32 converts element values to int32.
//
// Asm: VPMOVSXWD, CPU Feature: AVX2
func (x Int16x8) ConvertToInt32() Int32x8
// ConvertToInt32 converts element values to int32.
//
// Asm: VPMOVSXWD, CPU Feature: AVX512
func (x Int16x16) ConvertToInt32() Int32x16
/* ConvertToInt32x4 */
// ConvertToInt32x4 converts 4 lowest vector element values to int32.
//
// Asm: VPMOVSXBD, CPU Feature: AVX
func (x Int8x16) ConvertToInt32x4() Int32x4
// ConvertToInt32x4 converts 4 lowest vector element values to int32.
//
// Asm: VPMOVSXWD, CPU Feature: AVX
func (x Int16x8) ConvertToInt32x4() Int32x4
/* ConvertToInt32x8 */
// ConvertToInt32x8 converts 8 lowest vector element values to int32.
//
// Asm: VPMOVSXBD, CPU Feature: AVX2
func (x Int8x16) ConvertToInt32x8() Int32x8
/* ConvertToInt64 */
// ConvertToInt64 converts element values to int64.
//
// Asm: VPMOVSXWQ, CPU Feature: AVX512
func (x Int16x8) ConvertToInt64() Int64x8
// ConvertToInt64 converts element values to int64.
//
// Asm: VPMOVSXDQ, CPU Feature: AVX2
func (x Int32x4) ConvertToInt64() Int64x4
// ConvertToInt64 converts element values to int64.
//
// Asm: VPMOVSXDQ, CPU Feature: AVX512
func (x Int32x8) ConvertToInt64() Int64x8
/* ConvertToInt64x2 */
// ConvertToInt64x2 converts 2 lowest vector element values to int64.
//
// Asm: VPMOVSXBQ, CPU Feature: AVX
func (x Int8x16) ConvertToInt64x2() Int64x2
// ConvertToInt64x2 converts 2 lowest vector element values to int64.
//
// Asm: VPMOVSXWQ, CPU Feature: AVX
func (x Int16x8) ConvertToInt64x2() Int64x2
// ConvertToInt64x2 converts 2 lowest vector element values to int64.
//
// Asm: VPMOVSXDQ, CPU Feature: AVX
func (x Int32x4) ConvertToInt64x2() Int64x2
/* ConvertToInt64x4 */
// ConvertToInt64x4 converts 4 lowest vector element values to int64.
//
// Asm: VPMOVSXBQ, CPU Feature: AVX2
func (x Int8x16) ConvertToInt64x4() Int64x4
/* ConvertToInt64x8 */
// ConvertToInt64x8 converts 8 lowest vector element values to int64.
//
// Asm: VPMOVSXBQ, CPU Feature: AVX512
func (x Int8x16) ConvertToInt64x8() Int64x8
/* ConvertToUint16 */
// ConvertToUint16 converts element values to uint16.
@ -1248,6 +1349,11 @@ func (x Float32x8) ConvertToUint32() Uint32x8
// Asm: VCVTPS2UDQ, CPU Feature: AVX512
func (x Float32x16) ConvertToUint32() Uint32x16
// ConvertToUint32 converts element values to uint32.
//
// Asm: VPMOVZXBD, CPU Feature: AVX512
func (x Uint8x16) ConvertToUint32() Uint32x16
// ConvertToUint32 converts element values to uint32.
//
// Asm: VPMOVZXWD, CPU Feature: AVX2
@ -1260,11 +1366,81 @@ func (x Uint16x16) ConvertToUint32() Uint32x16
/* ConvertToUint32x4 */
// ConvertToUint32x4 converts 4 lowest vector element values to uint32.
//
// Asm: VPMOVZXBD, CPU Feature: AVX
func (x Uint8x16) ConvertToUint32x4() Uint32x4
// ConvertToUint32x4 converts 4 lowest vector element values to uint32.
//
// Asm: VPMOVZXWD, CPU Feature: AVX
func (x Uint16x8) ConvertToUint32x4() Uint32x4
/* ConvertToUint32x8 */
// ConvertToUint32x8 converts 8 lowest vector element values to uint32.
//
// Asm: VPMOVZXBD, CPU Feature: AVX2
func (x Uint8x16) ConvertToUint32x8() Uint32x8
/* ConvertToUint64 */
// ConvertToUint64 converts element values to uint64.
//
// Asm: VPMOVZXWQ, CPU Feature: AVX512
func (x Uint16x8) ConvertToUint64() Uint64x8
// ConvertToUint64 converts element values to uint64.
//
// Asm: VPMOVZXDQ, CPU Feature: AVX2
func (x Uint32x4) ConvertToUint64() Uint64x4
// ConvertToUint64 converts element values to uint64.
//
// Asm: VPMOVZXDQ, CPU Feature: AVX512
func (x Uint32x8) ConvertToUint64() Uint64x8
/* ConvertToUint64x2 */
// ConvertToUint64x2 converts 2 lowest vector element values to uint64.
//
// Asm: VPMOVZXBQ, CPU Feature: AVX
func (x Uint8x16) ConvertToUint64x2() Uint64x2
// ConvertToUint64x2 converts 2 lowest vector element values to uint64.
//
// Asm: VPMOVZXWQ, CPU Feature: AVX
func (x Uint16x8) ConvertToUint64x2() Uint64x2
// ConvertToUint64x2 converts 2 lowest vector element values to uint64.
//
// Asm: VPMOVZXDQ, CPU Feature: AVX
func (x Uint32x4) ConvertToUint64x2() Uint64x2
/* ConvertToUint64x4 */
// ConvertToUint64x4 converts 4 lowest vector element values to uint64.
//
// Asm: VPMOVSXWQ, CPU Feature: AVX2
func (x Int16x8) ConvertToUint64x4() Int64x4
// ConvertToUint64x4 converts 4 lowest vector element values to uint64.
//
// Asm: VPMOVZXBQ, CPU Feature: AVX2
func (x Uint8x16) ConvertToUint64x4() Uint64x4
// ConvertToUint64x4 converts 4 lowest vector element values to uint64.
//
// Asm: VPMOVZXWQ, CPU Feature: AVX2
func (x Uint16x8) ConvertToUint64x4() Uint64x4
/* ConvertToUint64x8 */
// ConvertToUint64x8 converts 8 lowest vector element values to uint64.
//
// Asm: VPMOVZXBQ, CPU Feature: AVX512
func (x Uint8x16) ConvertToUint64x8() Uint64x8
/* CopySign */
// CopySign returns the product of the first operand with -1, 0, or 1,