// Code generated by 'go run genfiles.go'; DO NOT EDIT.

//go:build goexperiment.simd

package archsimd

// Masked returns x but with elements zeroed where mask is false.
func ( Int8x16) ( Mask8x16) Int8x16 {
	 := .ToInt8x16()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int8x16) ( Int8x16,  Mask8x16) Int8x16 {
	 := .ToInt8x16()
	return .blend(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int16x8) ( Mask16x8) Int16x8 {
	 := .ToInt16x8()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int16x8) ( Int16x8,  Mask16x8) Int16x8 {
	 := .ToInt16x8().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsInt16x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int32x4) ( Mask32x4) Int32x4 {
	 := .ToInt32x4()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int32x4) ( Int32x4,  Mask32x4) Int32x4 {
	 := .ToInt32x4().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsInt32x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int64x2) ( Mask64x2) Int64x2 {
	 := .ToInt64x2()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int64x2) ( Int64x2,  Mask64x2) Int64x2 {
	 := .ToInt64x2().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsInt64x2()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint8x16) ( Mask8x16) Uint8x16 {
	 := .ToInt8x16()
	return .AsInt8x16().And().AsUint8x16()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint8x16) ( Uint8x16,  Mask8x16) Uint8x16 {
	 := .ToInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsUint8x16()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint16x8) ( Mask16x8) Uint16x8 {
	 := .ToInt16x8()
	return .AsInt16x8().And().AsUint16x8()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint16x8) ( Uint16x8,  Mask16x8) Uint16x8 {
	 := .ToInt16x8().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsUint16x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint32x4) ( Mask32x4) Uint32x4 {
	 := .ToInt32x4()
	return .AsInt32x4().And().AsUint32x4()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint32x4) ( Uint32x4,  Mask32x4) Uint32x4 {
	 := .ToInt32x4().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsUint32x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint64x2) ( Mask64x2) Uint64x2 {
	 := .ToInt64x2()
	return .AsInt64x2().And().AsUint64x2()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint64x2) ( Uint64x2,  Mask64x2) Uint64x2 {
	 := .ToInt64x2().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsUint64x2()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float32x4) ( Mask32x4) Float32x4 {
	 := .ToInt32x4()
	return .AsInt32x4().And().AsFloat32x4()
}

// Merge returns x but with elements set to y where mask is false.
func ( Float32x4) ( Float32x4,  Mask32x4) Float32x4 {
	 := .ToInt32x4().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsFloat32x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float64x2) ( Mask64x2) Float64x2 {
	 := .ToInt64x2()
	return .AsInt64x2().And().AsFloat64x2()
}

// Merge returns x but with elements set to y where mask is false.
func ( Float64x2) ( Float64x2,  Mask64x2) Float64x2 {
	 := .ToInt64x2().AsInt8x16()
	 := .AsInt8x16()
	 := .AsInt8x16()
	return .blend(, ).AsFloat64x2()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int8x32) ( Mask8x32) Int8x32 {
	 := .ToInt8x32()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int8x32) ( Int8x32,  Mask8x32) Int8x32 {
	 := .ToInt8x32()
	return .blend(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int16x16) ( Mask16x16) Int16x16 {
	 := .ToInt16x16()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int16x16) ( Int16x16,  Mask16x16) Int16x16 {
	 := .ToInt16x16().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsInt16x16()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int32x8) ( Mask32x8) Int32x8 {
	 := .ToInt32x8()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int32x8) ( Int32x8,  Mask32x8) Int32x8 {
	 := .ToInt32x8().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsInt32x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int64x4) ( Mask64x4) Int64x4 {
	 := .ToInt64x4()
	return .And()
}

// Merge returns x but with elements set to y where mask is false.
func ( Int64x4) ( Int64x4,  Mask64x4) Int64x4 {
	 := .ToInt64x4().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsInt64x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint8x32) ( Mask8x32) Uint8x32 {
	 := .ToInt8x32()
	return .AsInt8x32().And().AsUint8x32()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint8x32) ( Uint8x32,  Mask8x32) Uint8x32 {
	 := .ToInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsUint8x32()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint16x16) ( Mask16x16) Uint16x16 {
	 := .ToInt16x16()
	return .AsInt16x16().And().AsUint16x16()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint16x16) ( Uint16x16,  Mask16x16) Uint16x16 {
	 := .ToInt16x16().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsUint16x16()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint32x8) ( Mask32x8) Uint32x8 {
	 := .ToInt32x8()
	return .AsInt32x8().And().AsUint32x8()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint32x8) ( Uint32x8,  Mask32x8) Uint32x8 {
	 := .ToInt32x8().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsUint32x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint64x4) ( Mask64x4) Uint64x4 {
	 := .ToInt64x4()
	return .AsInt64x4().And().AsUint64x4()
}

// Merge returns x but with elements set to y where mask is false.
func ( Uint64x4) ( Uint64x4,  Mask64x4) Uint64x4 {
	 := .ToInt64x4().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsUint64x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float32x8) ( Mask32x8) Float32x8 {
	 := .ToInt32x8()
	return .AsInt32x8().And().AsFloat32x8()
}

// Merge returns x but with elements set to y where mask is false.
func ( Float32x8) ( Float32x8,  Mask32x8) Float32x8 {
	 := .ToInt32x8().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsFloat32x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float64x4) ( Mask64x4) Float64x4 {
	 := .ToInt64x4()
	return .AsInt64x4().And().AsFloat64x4()
}

// Merge returns x but with elements set to y where mask is false.
func ( Float64x4) ( Float64x4,  Mask64x4) Float64x4 {
	 := .ToInt64x4().AsInt8x32()
	 := .AsInt8x32()
	 := .AsInt8x32()
	return .blend(, ).AsFloat64x4()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int8x64) ( Mask8x64) Int8x64 {
	 := .ToInt8x64()
	return .And()
}

// Merge returns x but with elements set to y where m is false.
func ( Int8x64) ( Int8x64,  Mask8x64) Int8x64 {
	return .blendMasked(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int16x32) ( Mask16x32) Int16x32 {
	 := .ToInt16x32()
	return .And()
}

// Merge returns x but with elements set to y where m is false.
func ( Int16x32) ( Int16x32,  Mask16x32) Int16x32 {
	return .blendMasked(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int32x16) ( Mask32x16) Int32x16 {
	 := .ToInt32x16()
	return .And()
}

// Merge returns x but with elements set to y where m is false.
func ( Int32x16) ( Int32x16,  Mask32x16) Int32x16 {
	return .blendMasked(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Int64x8) ( Mask64x8) Int64x8 {
	 := .ToInt64x8()
	return .And()
}

// Merge returns x but with elements set to y where m is false.
func ( Int64x8) ( Int64x8,  Mask64x8) Int64x8 {
	return .blendMasked(, )
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint8x64) ( Mask8x64) Uint8x64 {
	 := .ToInt8x64()
	return .AsInt8x64().And().AsUint8x64()
}

// Merge returns x but with elements set to y where m is false.
func ( Uint8x64) ( Uint8x64,  Mask8x64) Uint8x64 {
	 := .AsInt8x64()
	 := .AsInt8x64()
	return .blendMasked(, ).AsUint8x64()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint16x32) ( Mask16x32) Uint16x32 {
	 := .ToInt16x32()
	return .AsInt16x32().And().AsUint16x32()
}

// Merge returns x but with elements set to y where m is false.
func ( Uint16x32) ( Uint16x32,  Mask16x32) Uint16x32 {
	 := .AsInt16x32()
	 := .AsInt16x32()
	return .blendMasked(, ).AsUint16x32()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint32x16) ( Mask32x16) Uint32x16 {
	 := .ToInt32x16()
	return .AsInt32x16().And().AsUint32x16()
}

// Merge returns x but with elements set to y where m is false.
func ( Uint32x16) ( Uint32x16,  Mask32x16) Uint32x16 {
	 := .AsInt32x16()
	 := .AsInt32x16()
	return .blendMasked(, ).AsUint32x16()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Uint64x8) ( Mask64x8) Uint64x8 {
	 := .ToInt64x8()
	return .AsInt64x8().And().AsUint64x8()
}

// Merge returns x but with elements set to y where m is false.
func ( Uint64x8) ( Uint64x8,  Mask64x8) Uint64x8 {
	 := .AsInt64x8()
	 := .AsInt64x8()
	return .blendMasked(, ).AsUint64x8()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float32x16) ( Mask32x16) Float32x16 {
	 := .ToInt32x16()
	return .AsInt32x16().And().AsFloat32x16()
}

// Merge returns x but with elements set to y where m is false.
func ( Float32x16) ( Float32x16,  Mask32x16) Float32x16 {
	 := .AsInt32x16()
	 := .AsInt32x16()
	return .blendMasked(, ).AsFloat32x16()
}

// Masked returns x but with elements zeroed where mask is false.
func ( Float64x8) ( Mask64x8) Float64x8 {
	 := .ToInt64x8()
	return .AsInt64x8().And().AsFloat64x8()
}

// Merge returns x but with elements set to y where m is false.
func ( Float64x8) ( Float64x8,  Mask64x8) Float64x8 {
	 := .AsInt64x8()
	 := .AsInt64x8()
	return .blendMasked(, ).AsFloat64x8()
}