vrintm

Vector Round Floating-Point Double (Minus Infinity)

VRINTM<c>.F64 <Dd>, <Dm>

Rounds double towards Minus Infinity (Floor).

Pseudocode Operation

Dd ← RoundTowardMinusInfinity(Dm)

Example

VRINTM.F64 d0, d2

Encoding

Binary Layout
111111101
31:23
D
22
111
21:19
0
18
11
17:16
Vd
15:12
10
11:10
11
9:8
0
7
1
6
M
5
0
4
Vm
3:0
 
Format VFP Unary
Opcode 0xFEBB0B40
Extension VFP (Float)

Operands

  • Dd
    Destination 64-bit SIMD/FP register
  • Dm
    Second source 64-bit SIMD/FP register

Related

Other forms of vrintm

  • vrintm Vector Round Floating-Point (Minus Infinity)

More in VFP (Float)

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0xF3B20680 VRINTM{<q>}.<dt> <Dd>, <Dm> A32 111100111 | D | 11 | size | 10 | Vd | 0 | 1 | 101 | 0 | M | 0 | Vm
0xF3B206C0 VRINTM{<q>}.<dt> <Qd>, <Qm> A32 111100111 | D | 11 | size | 10 | Vd | 0 | 1 | 101 | 1 | M | 0 | Vm
0xFFB20680 VRINTM{<q>}.<dt> <Dd>, <Dm> T32 111111111 | D | 11 | size | 10 | Vd | 0 | 1 | 101 | 0 | M | 0 | Vm
0xFFB206C0 VRINTM{<q>}.<dt> <Qd>, <Qm> T32 111111111 | D | 11 | size | 10 | Vd | 0 | 1 | 101 | 1 | M | 0 | Vm
0xFEBB0940 VRINTM{<q>}.F16 <Sd>, <Sm> A32 111111101 | D | 111 | 0 | 11 | Vd | 10 | 01 | 0 | 1 | M | 0 | Vm
0xFEBB0A40 VRINTM{<q>}.F32 <Sd>, <Sm> A32 111111101 | D | 111 | 0 | 11 | Vd | 10 | 10 | 0 | 1 | M | 0 | Vm
0xFEBB0B40 VRINTM{<q>}.F64 <Dd>, <Dm> A32 111111101 | D | 111 | 0 | 11 | Vd | 10 | 11 | 0 | 1 | M | 0 | Vm

Description

Round floating-point to integer towards -Infinity rounds a floating-point value to an integral floating-point value of the same size using the Round towards -Infinity rounding mode. A zero input gives a zero result with the same sign, an infinite input gives an infinite result with the same sign, and a NaN is propagated as for normal arithmetic.

Operation

EncodingSpecificOperations(); CheckVFPEnabled(TRUE);
case esize of
    when 16
        S[d] = Zeros(16) : FPRoundInt(S[m]<15:0>, FPSCR[], rounding, exact);
    when 32
        S[d] = FPRoundInt(S[m], FPSCR[], rounding, exact);
    when 64
        D[d] = FPRoundInt(D[m], FPSCR[], rounding, exact);