// Copyright 2026 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build goexperiment.simd && arm64 package simd_test import ( "simd/archsimd" "testing" ) func TestConvertArm64(t *testing.T) { testFloat64x2ConvertToFloat32x4(t, archsimd.Float64x2.ConvertToFloat32, map1[float64](toFloat32)) testFloat32x4ConvertToFloat64x2(t, archsimd.Float32x4.ConvertLo2ToFloat64, map1n[float32](toFloat64, 2)) testFloat32x4ConvertToInt32x4(t, archsimd.Float32x4.ConvertToInt32, map1[float32](floatToInt32_arm64)) testFloat64x2ConvertToInt64x2(t, archsimd.Float64x2.ConvertToInt64, map1[float64](floatToInt64_arm64)) testFloat32x4ConvertToUint32x4(t, archsimd.Float32x4.ConvertToUint32, map1[float32](floatToUint32_arm64)) testFloat64x2ConvertToUint64x2(t, archsimd.Float64x2.ConvertToUint64, map1[float64](floatToUint64_arm64)) testInt32x4ConvertToFloat32x4(t, archsimd.Int32x4.ConvertToFloat32, map1[int32](toFloat32)) testInt64x2ConvertToFloat64x2(t, archsimd.Int64x2.ConvertToFloat64, map1[int64](toFloat64)) testUint32x4ConvertToFloat32x4(t, archsimd.Uint32x4.ConvertToFloat32, map1[uint32](toFloat32)) testUint64x2ConvertToFloat64x2(t, archsimd.Uint64x2.ConvertToFloat64, map1[uint64](toFloat64)) } func TestTruncateArm64(t *testing.T) { testInt16x8ConvertToInt8x16(t, archsimd.Int16x8.TruncToInt8, map1[int16](toInt8)) testInt32x4ConvertToInt16x8(t, archsimd.Int32x4.TruncToInt16, map1[int32](toInt16)) testInt64x2ConvertToInt32x4(t, archsimd.Int64x2.TruncToInt32, map1[int64](toInt32)) testUint16x8ConvertToUint8x16(t, archsimd.Uint16x8.TruncToUint8, map1[uint16](toUint8)) testUint32x4ConvertToUint16x8(t, archsimd.Uint32x4.TruncToUint16, map1[uint32](toUint16)) testUint64x2ConvertToUint32x4(t, archsimd.Uint64x2.TruncToUint32, map1[uint64](toUint32)) }