public static YMM vpermd(YMM src, Perm8 spec) { var control = vload <uint>(ref spec); var subject = vload <uint>(ref src); return(PermuteVar8x32(subject, control)); }
public void identity() { YMM src = YmmPattern.Increasing <uint>(); YMM expect = YmmPattern.Increasing <uint>(); var actual = vpermd(src, Perm8.Identity); Claim.eq(expect, actual); }
public static Vector256 <byte> vperm2f128(YMM a, YMM b, Perm2x128 control) => Permute2x128(vload <byte>(ref a), vload <byte>(ref b), (byte)control);
public static YMM vperm2i128(YMM a, YMM b, Perm2x128 control) => YMM.From(vperm2i128(a, b, (byte)control));
public static Vector256 <double> vperm2f128(YMM a, YMM b, byte control) => Permute2x128(vload <double>(ref a), vload <double>(ref b), control);
public static Vector256 <ulong> vperm2i128(YMM a, YMM b, byte control) => Permute2x128(vload <ulong>(ref a), vload <ulong>(ref b), control);
public static YMM vcmpeqq(YMM ymm0, YMM ymm1) { return(CompareEqual(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1))); }
public static YMM <uint> vpermd(YMM <uint> ymm0, Perm8 spec) { var control = vload <uint>(ref spec); return(PermuteVar8x32(ymm0, control)); }
public static ref YMM <ulong> vpaddq(YMM ymm0, YMM ymm1, ref YMM <ulong> dst) { dst = Add(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)); return(ref dst); }
public static ref YMM vpxor(YMM ymm0, YMM ymm1, ref YMM ymm2) { ymm2 = Xor(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)); return(ref ymm2); }
public static YMM vpxor(YMM ymm0, YMM ymm1) => Xor(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1));
public static ref YMM MoveTo <T>(Vector256 <T> src, ref YMM dst) where T : unmanaged => ref Reg.move(src, ref dst);
public void vperm_2x128() { YMM ymm0 = YMM.FromCells(1ul, 2u, 3ul, 4ul); YMM ymm1 = YMM.FromCells(5ul, 6ul, 7ul, 8ul); YMM ymm2 = default, ymm2e = default;
public static Vector256 <byte> vpcmpeqb(YMM ymm0, YMM ymm1) { return(CompareEqual(vload <byte>(ref ymm0), vload <byte>(ref ymm1))); }
public static ref Vector256 <ulong> vcmpeqq(YMM ymm0, YMM ymm1, ref Vector256 <ulong> dst) { dst = CompareEqual(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)); return(ref dst); }
public static YMM vpaddq(YMM ymm0, YMM ymm1) { return(Add(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1))); }
public static YMM <ulong> vpaddq(YMM <ulong> ymm0, YMM <ulong> ymm1) => Add(ymm0, ymm1);
public static ref Vector256 <ulong> vpxor(YMM ymm0, YMM ymm1, out Vector256 <ulong> ymm2) { ymm2 = Xor(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)); return(ref ymm2); }
public static YMM vpermd(YMM src, YMM control) => PermuteVar8x32(vload <uint>(ref src), vload <uint>(ref control));
public unsafe static ref YMEM vmovdqa(YMM src, ref YMEM dst) { dst = vload <ulong>(ref src); return(ref dst); }
public static ref YMM move <T>(Vector256 <T> src, ref YMM dst) where T : unmanaged { dst = YMM.From(src); return(ref dst); }
static Vector256 <T> vload <T>(ref YMM src) where T : unmanaged => ginx.lddqu256(in YMM.As <T>(ref src));