VMS Help
MACRO, VAX MACRO Assembler, Vector Instructions, VCMP

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

      Vector Floating Compare

    Format:

                        { VVGTRF }
                        { VVGTRD }
                        { VVGTRG }
                        {        }
                        { VVEQLF }
                        { VVEQLD }
                        { VVEQLG }
                        {        }
                        { VVLSSF }
                        { VVLSSD }
                        { VVLSSG }
      vector - vector:  {        }   [/U[0|1]]   Va, Vb
                        { VVLEQF }
                        { VVLEQD }
                        { VVLEQG }
                        {        }
                        { VVNEQF }
                        { VVNEQD }
                        { VVNEQG }
                        {        }
                        { VVGEQF }
                        { VVGEQD }
                        { VVGEQG }
                        {        }

                        { VSGTRF }
                        { VSGTRD }
                        { VSGTRG }
                        {        }
                        { VSEQLF }
                        { VSEQLD }
                        { VSEQLG }
                        {        }
                        { VSLSSF }
                        { VSLSSD }
                        { VSLSSG }
      scalar - vector:  {        }   [/U[0|1]]   src, Vb
                        { VSLEQF }
                        { VSLEQD }
                        { VSLEQG }
                        {        }
                        { VSNEQF }
                        { VSNEQD }
                        { VSNEQG }
                        {        }
                        { VSGEQF }
                        { VSGEQD }
                        { VSGEQG }
                        {        }

    Architecture

    Format
    vector - vector:

       opcode   cntrl.rw

    scalar - vector (F_floating):

       opcode   cntrl.rw, src.rl

    scalar - vector (D_ and G_floating):

       opcode   cntrl.rw, src.rq
    opcodes

    C4FD    VVCMPF    Vector Vector Compare F_floating

    C5FD    VSCMPF    Vector Scalar Compare F_floating

    C6FD    VVCMPD    Vector Vector Compare D_floating

    C7FD    VSCMPD    Vector Scalar Compare D_floating

    C2FD    VVCMPG    Vector Vector Compare G_floating

    C3FD    VSCMPG    Vector Scalar Compare G_floating

    vector_control_word

             1 1 1 1 1
             5 4 3 2 1     8 7     4 3     0
            +-+-+-+-+-------+-------+-------+
            |M|M| | |  Va   |       |  cmp  |
            |O|T|0|0|  or   |  Vb   |  func |
            |E|F| | |  0    |       |       |
            +-+-+-+-+-------+-------+-------+

    The condition being tested is determined by cntrl<2:0>, as
    follows:

    Value of
    cntrl<2:0>          Meaning

    0                   Greater than
    1                   Equal
    2                   Less than
    3                   Reserved
    4                   Less than or equal
    5                   Not equal
    6                   Greater than or equal
    7                   Reserved

                                   NOTE

       Cntrl<3> should be zero; if it is set, the results of the
       instruction are UNPREDICTABLE.

    exceptions

       floating reserved operand

    operation
      FOR i <- 0 TO VLR-1
        IF {{MOE EQL 0} OR {{MOE EQL 1} AND {VMR<i> EQL MTF}}} THEN
          BEGIN
            IF VVCMPF THEN
              IF Va[i]<31:0> SIGNED_RELATION Vb[i]<31:0> THEN
                 VMR<i> <- 1
              ELSE
                 VMR<i> <- 0
            IF VVCMPD OR VVCMPG THEN
              IF Va[i] SIGNED_RELATION Vb[i] THEN
                 VMR<i> <- 1
              ELSE
                 VMR<i> <- 0
            IF VSCMPF THEN
              IF src SIGNED_RELATION Vb[i]<31:0> THEN
                 VMR<i> <- 1
              ELSE
                 VMR<i> <- 0
            IF VSCMPD OR VSCMPG THEN
              IF src SIGNED_RELATION Vb[i] THEN
                 VMR<i> <- 1
              ELSE
                 VMR<i> <- 0
          END
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.