示例#1
0
            public static v128 mm256_cvtps_ph(v256 a, int rounding)
            {
                if (rounding == (int)RoundingMode.FROUND_RINT_NOEXC)
                {
                    switch (MXCSR & MXCSRBits.RoundingControlMask)
                    {
                    case MXCSRBits.RoundToNearest:
                        rounding = (int)RoundingMode.FROUND_NINT_NOEXC;
                        break;

                    case MXCSRBits.RoundDown:
                        rounding = (int)RoundingMode.FROUND_FLOOR_NOEXC;
                        break;

                    case MXCSRBits.RoundUp:
                        rounding = (int)RoundingMode.FROUND_CEIL_NOEXC;
                        break;

                    case MXCSRBits.RoundTowardZero:
                        rounding = (int)RoundingMode.FROUND_TRUNC_NOEXC;
                        break;
                    }
                }

                return(new v128(FloatToHalf(a.UInt0, rounding), FloatToHalf(a.UInt1, rounding), FloatToHalf(a.UInt2, rounding), FloatToHalf(a.UInt3, rounding), FloatToHalf(a.UInt4, rounding), FloatToHalf(a.UInt5, rounding), FloatToHalf(a.UInt6, rounding), FloatToHalf(a.UInt7, rounding)));
            }
示例#2
0
 public static v256 mm256_fmadd_ps(v256 a, v256 b, v256 c)
 {
     return(new v256(FmaHelper(a.Float0, b.Float0, c.Float0),
                     FmaHelper(a.Float1, b.Float1, c.Float1),
                     FmaHelper(a.Float2, b.Float2, c.Float2),
                     FmaHelper(a.Float3, b.Float3, c.Float3),
                     FmaHelper(a.Float4, b.Float4, c.Float4),
                     FmaHelper(a.Float5, b.Float5, c.Float5),
                     FmaHelper(a.Float6, b.Float6, c.Float6),
                     FmaHelper(a.Float7, b.Float7, c.Float7)));
 }
示例#3
0
 public static v256 mm256_fnmsub_ps(v256 a, v256 b, v256 c)
 {
     return(new v256(FnmaHelper(a.Float0, b.Float0, -c.Float0),
                     FnmaHelper(a.Float1, b.Float1, -c.Float1),
                     FnmaHelper(a.Float2, b.Float2, -c.Float2),
                     FnmaHelper(a.Float3, b.Float3, -c.Float3),
                     FnmaHelper(a.Float4, b.Float4, -c.Float4),
                     FnmaHelper(a.Float5, b.Float5, -c.Float5),
                     FnmaHelper(a.Float6, b.Float6, -c.Float6),
                     FnmaHelper(a.Float7, b.Float7, -c.Float7)));
 }
 public V256DebugView(v256 value)
 {
     m_Value = value;
 }
示例#5
0
 public static v256 mm256_fmadd_pd(v256 a, v256 b, v256 c)
 {
     throw new Exception("Double-precision FMA not emulated in C#");
 }