| // 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 (x Int8x16) Masked(mask Mask8x16) Int8x16 { |
| im := mask.ToInt8x16() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int8x16) Merge(y Int8x16, mask Mask8x16) Int8x16 { |
| im := mask.ToInt8x16() |
| return y.blend(x, im) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int16x8) Masked(mask Mask16x8) Int16x8 { |
| im := mask.ToInt16x8() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int16x8) Merge(y Int16x8, mask Mask16x8) Int16x8 { |
| im := mask.ToInt16x8().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsInt16x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int32x4) Masked(mask Mask32x4) Int32x4 { |
| im := mask.ToInt32x4() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int32x4) Merge(y Int32x4, mask Mask32x4) Int32x4 { |
| im := mask.ToInt32x4().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsInt32x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int64x2) Masked(mask Mask64x2) Int64x2 { |
| im := mask.ToInt64x2() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int64x2) Merge(y Int64x2, mask Mask64x2) Int64x2 { |
| im := mask.ToInt64x2().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsInt64x2() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint8x16) Masked(mask Mask8x16) Uint8x16 { |
| im := mask.ToInt8x16() |
| return x.AsInt8x16().And(im).AsUint8x16() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint8x16) Merge(y Uint8x16, mask Mask8x16) Uint8x16 { |
| im := mask.ToInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsUint8x16() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint16x8) Masked(mask Mask16x8) Uint16x8 { |
| im := mask.ToInt16x8() |
| return x.AsInt16x8().And(im).AsUint16x8() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint16x8) Merge(y Uint16x8, mask Mask16x8) Uint16x8 { |
| im := mask.ToInt16x8().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsUint16x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint32x4) Masked(mask Mask32x4) Uint32x4 { |
| im := mask.ToInt32x4() |
| return x.AsInt32x4().And(im).AsUint32x4() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint32x4) Merge(y Uint32x4, mask Mask32x4) Uint32x4 { |
| im := mask.ToInt32x4().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsUint32x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint64x2) Masked(mask Mask64x2) Uint64x2 { |
| im := mask.ToInt64x2() |
| return x.AsInt64x2().And(im).AsUint64x2() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint64x2) Merge(y Uint64x2, mask Mask64x2) Uint64x2 { |
| im := mask.ToInt64x2().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsUint64x2() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float32x4) Masked(mask Mask32x4) Float32x4 { |
| im := mask.ToInt32x4() |
| return x.AsInt32x4().And(im).AsFloat32x4() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Float32x4) Merge(y Float32x4, mask Mask32x4) Float32x4 { |
| im := mask.ToInt32x4().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsFloat32x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float64x2) Masked(mask Mask64x2) Float64x2 { |
| im := mask.ToInt64x2() |
| return x.AsInt64x2().And(im).AsFloat64x2() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Float64x2) Merge(y Float64x2, mask Mask64x2) Float64x2 { |
| im := mask.ToInt64x2().AsInt8x16() |
| ix := x.AsInt8x16() |
| iy := y.AsInt8x16() |
| return iy.blend(ix, im).AsFloat64x2() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int8x32) Masked(mask Mask8x32) Int8x32 { |
| im := mask.ToInt8x32() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int8x32) Merge(y Int8x32, mask Mask8x32) Int8x32 { |
| im := mask.ToInt8x32() |
| return y.blend(x, im) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int16x16) Masked(mask Mask16x16) Int16x16 { |
| im := mask.ToInt16x16() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int16x16) Merge(y Int16x16, mask Mask16x16) Int16x16 { |
| im := mask.ToInt16x16().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsInt16x16() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int32x8) Masked(mask Mask32x8) Int32x8 { |
| im := mask.ToInt32x8() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int32x8) Merge(y Int32x8, mask Mask32x8) Int32x8 { |
| im := mask.ToInt32x8().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsInt32x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int64x4) Masked(mask Mask64x4) Int64x4 { |
| im := mask.ToInt64x4() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Int64x4) Merge(y Int64x4, mask Mask64x4) Int64x4 { |
| im := mask.ToInt64x4().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsInt64x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint8x32) Masked(mask Mask8x32) Uint8x32 { |
| im := mask.ToInt8x32() |
| return x.AsInt8x32().And(im).AsUint8x32() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint8x32) Merge(y Uint8x32, mask Mask8x32) Uint8x32 { |
| im := mask.ToInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsUint8x32() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint16x16) Masked(mask Mask16x16) Uint16x16 { |
| im := mask.ToInt16x16() |
| return x.AsInt16x16().And(im).AsUint16x16() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint16x16) Merge(y Uint16x16, mask Mask16x16) Uint16x16 { |
| im := mask.ToInt16x16().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsUint16x16() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint32x8) Masked(mask Mask32x8) Uint32x8 { |
| im := mask.ToInt32x8() |
| return x.AsInt32x8().And(im).AsUint32x8() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint32x8) Merge(y Uint32x8, mask Mask32x8) Uint32x8 { |
| im := mask.ToInt32x8().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsUint32x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint64x4) Masked(mask Mask64x4) Uint64x4 { |
| im := mask.ToInt64x4() |
| return x.AsInt64x4().And(im).AsUint64x4() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Uint64x4) Merge(y Uint64x4, mask Mask64x4) Uint64x4 { |
| im := mask.ToInt64x4().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsUint64x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float32x8) Masked(mask Mask32x8) Float32x8 { |
| im := mask.ToInt32x8() |
| return x.AsInt32x8().And(im).AsFloat32x8() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Float32x8) Merge(y Float32x8, mask Mask32x8) Float32x8 { |
| im := mask.ToInt32x8().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsFloat32x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float64x4) Masked(mask Mask64x4) Float64x4 { |
| im := mask.ToInt64x4() |
| return x.AsInt64x4().And(im).AsFloat64x4() |
| } |
| |
| // Merge returns x but with elements set to y where mask is false. |
| func (x Float64x4) Merge(y Float64x4, mask Mask64x4) Float64x4 { |
| im := mask.ToInt64x4().AsInt8x32() |
| ix := x.AsInt8x32() |
| iy := y.AsInt8x32() |
| return iy.blend(ix, im).AsFloat64x4() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int8x64) Masked(mask Mask8x64) Int8x64 { |
| im := mask.ToInt8x64() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Int8x64) Merge(y Int8x64, mask Mask8x64) Int8x64 { |
| return y.blendMasked(x, mask) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int16x32) Masked(mask Mask16x32) Int16x32 { |
| im := mask.ToInt16x32() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Int16x32) Merge(y Int16x32, mask Mask16x32) Int16x32 { |
| return y.blendMasked(x, mask) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int32x16) Masked(mask Mask32x16) Int32x16 { |
| im := mask.ToInt32x16() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Int32x16) Merge(y Int32x16, mask Mask32x16) Int32x16 { |
| return y.blendMasked(x, mask) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Int64x8) Masked(mask Mask64x8) Int64x8 { |
| im := mask.ToInt64x8() |
| return im.And(x) |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Int64x8) Merge(y Int64x8, mask Mask64x8) Int64x8 { |
| return y.blendMasked(x, mask) |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint8x64) Masked(mask Mask8x64) Uint8x64 { |
| im := mask.ToInt8x64() |
| return x.AsInt8x64().And(im).AsUint8x64() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Uint8x64) Merge(y Uint8x64, mask Mask8x64) Uint8x64 { |
| ix := x.AsInt8x64() |
| iy := y.AsInt8x64() |
| return iy.blendMasked(ix, mask).AsUint8x64() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint16x32) Masked(mask Mask16x32) Uint16x32 { |
| im := mask.ToInt16x32() |
| return x.AsInt16x32().And(im).AsUint16x32() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Uint16x32) Merge(y Uint16x32, mask Mask16x32) Uint16x32 { |
| ix := x.AsInt16x32() |
| iy := y.AsInt16x32() |
| return iy.blendMasked(ix, mask).AsUint16x32() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint32x16) Masked(mask Mask32x16) Uint32x16 { |
| im := mask.ToInt32x16() |
| return x.AsInt32x16().And(im).AsUint32x16() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Uint32x16) Merge(y Uint32x16, mask Mask32x16) Uint32x16 { |
| ix := x.AsInt32x16() |
| iy := y.AsInt32x16() |
| return iy.blendMasked(ix, mask).AsUint32x16() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Uint64x8) Masked(mask Mask64x8) Uint64x8 { |
| im := mask.ToInt64x8() |
| return x.AsInt64x8().And(im).AsUint64x8() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Uint64x8) Merge(y Uint64x8, mask Mask64x8) Uint64x8 { |
| ix := x.AsInt64x8() |
| iy := y.AsInt64x8() |
| return iy.blendMasked(ix, mask).AsUint64x8() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float32x16) Masked(mask Mask32x16) Float32x16 { |
| im := mask.ToInt32x16() |
| return x.AsInt32x16().And(im).AsFloat32x16() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Float32x16) Merge(y Float32x16, mask Mask32x16) Float32x16 { |
| ix := x.AsInt32x16() |
| iy := y.AsInt32x16() |
| return iy.blendMasked(ix, mask).AsFloat32x16() |
| } |
| |
| // Masked returns x but with elements zeroed where mask is false. |
| func (x Float64x8) Masked(mask Mask64x8) Float64x8 { |
| im := mask.ToInt64x8() |
| return x.AsInt64x8().And(im).AsFloat64x8() |
| } |
| |
| // Merge returns x but with elements set to y where m is false. |
| func (x Float64x8) Merge(y Float64x8, mask Mask64x8) Float64x8 { |
| ix := x.AsInt64x8() |
| iy := y.AsInt64x8() |
| return iy.blendMasked(ix, mask).AsFloat64x8() |
| } |