CSPspEmu.Core.Cpu.Emitter.CpuEmitter.vqmul C# (CSharp) Method

vqmul() public method

public vqmul ( ) : AstNodeStm
return AstNodeStm
        public AstNodeStm vqmul()
        {
            var v1 = VEC(VS, VType.VFloat, 4);
            var v2 = VEC(VT, VType.VFloat, 4);

            return VEC(VD, VType.VFloat, 4).SetVector(Index =>
            {
                switch (Index)
                {
                    case 0: return +(v1[0] * v2[3]) + (v1[1] * v2[2]) - (v1[2] * v2[1]) + (v1[3] * v2[0]);
                    case 1: return -(v1[0] * v2[2]) + (v1[1] * v2[3]) + (v1[2] * v2[0]) + (v1[3] * v2[1]);
                    case 2: return +(v1[0] * v2[1]) - (v1[1] * v2[0]) + (v1[2] * v2[3]) + (v1[3] * v2[2]);
                    case 3: return -(v1[0] * v2[0]) - (v1[1] * v2[1]) - (v1[2] * v2[2]) + (v1[3] * v2[3]);
                    default: throw (new InvalidOperationException("vqmul.Assert"));
                }
            }, PC);
        }
CpuEmitter