vrintp
Vector Round Floating-Point Double (Plus Infinity)
VRINTP<c>.F64 <Dd>, <Dm>
Rounds double towards Plus Infinity (Ceil).
Pseudocode Operation
Dd ← RoundTowardPlusInfinity(Dm)
Example
VRINTP.F64 d0, d2
Encoding
Binary Layout
111111101
31:23
D
22
111
21:19
0
18
10
17:16
Vd
15:12
10
11:10
11
9:8
0
7
1
6
M
5
0
4
Vm
3:0
Operands
-
Dd
Destination 64-bit SIMD/FP register -
Dm
Second source 64-bit SIMD/FP register
Related
Other forms of vrintp
- vrintp Vector Round Floating-Point (Plus Infinity)
More in VFP (Float)
Reference
View in Arm A64 ISA Reference ↗
Arm AArch32 ISA
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0xF3B20780 | VRINTP{<q>}.<dt> <Dd>, <Dm> | A32 | 111100111 | D | 11 | size | 10 | Vd | 0 | 1 | 111 | 0 | M | 0 | Vm | ||
| 0xF3B207C0 | VRINTP{<q>}.<dt> <Qd>, <Qm> | A32 | 111100111 | D | 11 | size | 10 | Vd | 0 | 1 | 111 | 1 | M | 0 | Vm | ||
| 0xFFB20780 | VRINTP{<q>}.<dt> <Dd>, <Dm> | T32 | 111111111 | D | 11 | size | 10 | Vd | 0 | 1 | 111 | 0 | M | 0 | Vm | ||
| 0xFFB207C0 | VRINTP{<q>}.<dt> <Qd>, <Qm> | T32 | 111111111 | D | 11 | size | 10 | Vd | 0 | 1 | 111 | 1 | M | 0 | Vm | ||
| 0xFEBA0940 | VRINTP{<q>}.F16 <Sd>, <Sm> | A32 | 111111101 | D | 111 | 0 | 10 | Vd | 10 | 01 | 0 | 1 | M | 0 | Vm | ||
| 0xFEBA0A40 | VRINTP{<q>}.F32 <Sd>, <Sm> | A32 | 111111101 | D | 111 | 0 | 10 | Vd | 10 | 10 | 0 | 1 | M | 0 | Vm | ||
| 0xFEBA0B40 | VRINTP{<q>}.F64 <Dd>, <Dm> | A32 | 111111101 | D | 111 | 0 | 10 | 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);