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
|