コード例 #1
0
        public static YMM vpermd(YMM src, Perm8 spec)
        {
            var control = vload <uint>(ref spec);
            var subject = vload <uint>(ref src);

            return(PermuteVar8x32(subject, control));
        }
コード例 #2
0
        public void identity()
        {
            YMM src    = YmmPattern.Increasing <uint>();
            YMM expect = YmmPattern.Increasing <uint>();
            var actual = vpermd(src, Perm8.Identity);

            Claim.eq(expect, actual);
        }
コード例 #3
0
ファイル: vperm2i128.cs プロジェクト: 0xCM/arrows
 public static Vector256 <byte> vperm2f128(YMM a, YMM b, Perm2x128 control)
 => Permute2x128(vload <byte>(ref a), vload <byte>(ref b), (byte)control);
コード例 #4
0
ファイル: vperm2i128.cs プロジェクト: 0xCM/arrows
 public static YMM vperm2i128(YMM a, YMM b, Perm2x128 control)
 => YMM.From(vperm2i128(a, b, (byte)control));
コード例 #5
0
ファイル: vperm2i128.cs プロジェクト: 0xCM/arrows
 public static Vector256 <double> vperm2f128(YMM a, YMM b, byte control)
 => Permute2x128(vload <double>(ref a), vload <double>(ref b), control);
コード例 #6
0
ファイル: vperm2i128.cs プロジェクト: 0xCM/arrows
 public static Vector256 <ulong> vperm2i128(YMM a, YMM b, byte control)
 => Permute2x128(vload <ulong>(ref a), vload <ulong>(ref b), control);
コード例 #7
0
ファイル: vpcmpeqb.cs プロジェクト: 0xCM/arrows
 public static YMM vcmpeqq(YMM ymm0, YMM ymm1)
 {
     return(CompareEqual(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)));
 }
コード例 #8
0
        public static YMM <uint> vpermd(YMM <uint> ymm0, Perm8 spec)
        {
            var control = vload <uint>(ref spec);

            return(PermuteVar8x32(ymm0, control));
        }
コード例 #9
0
ファイル: vpadd.cs プロジェクト: 0xCM/arrows
 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);
 }
コード例 #10
0
 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);
 }
コード例 #11
0
 public static YMM vpxor(YMM ymm0, YMM ymm1)
 => Xor(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1));
コード例 #12
0
ファイル: Reg.x.cs プロジェクト: 0xCM/arrows
 public static ref YMM MoveTo <T>(Vector256 <T> src, ref YMM dst)
     where T : unmanaged
 => ref Reg.move(src, ref dst);
コード例 #13
0
ファイル: t_vperm2i128.cs プロジェクト: 0xCM/arrows
 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;
コード例 #14
0
ファイル: vpcmpeqb.cs プロジェクト: 0xCM/arrows
 public static Vector256 <byte> vpcmpeqb(YMM ymm0, YMM ymm1)
 {
     return(CompareEqual(vload <byte>(ref ymm0), vload <byte>(ref ymm1)));
 }
コード例 #15
0
ファイル: vpcmpeqb.cs プロジェクト: 0xCM/arrows
 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);
 }
コード例 #16
0
ファイル: vpadd.cs プロジェクト: 0xCM/arrows
 public static YMM vpaddq(YMM ymm0, YMM ymm1)
 {
     return(Add(vload <ulong>(ref ymm0), vload <ulong>(ref ymm1)));
 }
コード例 #17
0
ファイル: vpadd.cs プロジェクト: 0xCM/arrows
 public static YMM <ulong> vpaddq(YMM <ulong> ymm0, YMM <ulong> ymm1)
 => Add(ymm0, ymm1);
コード例 #18
0
 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);
 }
コード例 #19
0
 public static YMM vpermd(YMM src, YMM control)
 => PermuteVar8x32(vload <uint>(ref src), vload <uint>(ref control));
コード例 #20
0
ファイル: vmovdqa.cs プロジェクト: 0xCM/arrows
 public unsafe static ref YMEM vmovdqa(YMM src, ref YMEM dst)
 {
     dst = vload <ulong>(ref src);
     return(ref dst);
 }
コード例 #21
0
ファイル: Reg.cs プロジェクト: 0xCM/arrows
 public static ref YMM move <T>(Vector256 <T> src, ref YMM dst)
     where T : unmanaged
 {
     dst = YMM.From(src);
     return(ref dst);
 }
コード例 #22
0
ファイル: Asm.cs プロジェクト: 0xCM/arrows
 static Vector256 <T> vload <T>(ref YMM src)
     where T : unmanaged
 => ginx.lddqu256(in YMM.As <T>(ref src));