// Code generated by 'tmplgen'; DO NOT EDIT. //go:build goexperiment.simd && arm64 package archsimd // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Int8s) HiToLo() (z Int8s) { var zero Uint64s return x.ToBits().ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint8s().BitsToInt8() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Int16s) HiToLo() (z Int16s) { var zero Uint64s return x.ToBits().ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint16s().BitsToInt16() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Int32s) HiToLo() (z Int32s) { var zero Uint64s return x.ToBits().ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint32s().BitsToInt32() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Int64s) HiToLo() (z Int64s) { var zero Uint64s return x.ToBits().InterleaveHi(zero).ConcatEven(zero).BitsToInt64() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Uint8s) HiToLo() (z Uint8s) { var zero Uint64s return x.ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint8s() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Uint16s) HiToLo() (z Uint16s) { var zero Uint64s return x.ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint16s() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Uint32s) HiToLo() (z Uint32s) { var zero Uint64s return x.ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint32s() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Uint64s) HiToLo() (z Uint64s) { var zero Uint64s return x.InterleaveHi(zero).ConcatEven(zero) } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Float32s) HiToLo() (z Float32s) { var zero Uint64s return x.ToBits().ReshapeToUint64s().InterleaveHi(zero).ConcatEven(zero).ReshapeToUint32s().BitsToFloat32() } // HiToLo returns a vector whose low half is the high half of x and whose high // half is zero. // // z = {x[n/2], x[n/2+1], ..., x[n-1], 0, ..., 0}, where n = x.Len() // // Emulated, CPU Feature: SVE func (x Float64s) HiToLo() (z Float64s) { var zero Uint64s return x.ToBits().InterleaveHi(zero).ConcatEven(zero).BitsToFloat64() }