fminp
FMINP <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>
Floating-point Minimum Pairwise.
Pseudocode Operation
No pseudocode available.
Reference
View in Arm A64 ISA Reference ↗
Arm A64 ISA
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x5EB0F800 | FMINP H<d>, <Vn>.2H | A64 | 01 | 0 | 11110 | 1 | 0 | 11000 | 01111 | 10 | Rn | Rd | ||
| 0x7EB0F800 | FMINP <V><d>, <Vn>.<T> | A64 | 01 | 1 | 11110 | 1 | sz | 11000 | 01111 | 10 | Rn | Rd | ||
| 0x2EC03400 | FMINP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> | A64 | 0 | Q | 1 | 01110 | 1 | 10 | Rm | 00 | 110 | 1 | Rn | Rd | ||
| 0x2EA0F400 | FMINP <Vd>.<T>, <Vn>.<T>, <Vm>.<T> | A64 | 0 | Q | 1 | 01110 | 1 | sz | 1 | Rm | 11110 | 1 | Rn | Rd | ||
| 0x64178000 | FMINP <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T> | A64 | 01100100 | size | 010 | 11 | 1 | 100 | Pg | Zm | Zdn |
Description
Compute the minimum value of each pair of adjacent floating-point elements within each source vector, and interleave the results from corresponding lanes. The interleaved result values are destructively placed in the first source vector. When FPCR.AH is 0, the behavior is as follows for each pairwise operation: When FPCR.AH is 1, the behavior is as follows for each pairwise operation:
Operation
CheckSVEEnabled();
constant integer VL = CurrentVL;
constant integer PL = VL DIV 8;
constant integer elements = VL DIV esize;
bits(PL) mask = P[g, PL];
bits(VL) operand1 = Z[dn, VL];
bits(VL) operand2 = if AnyActiveElement(mask, esize) then Z[m, VL] else Zeros(VL);
bits(VL) result = Z[dn, VL];
bits(esize) element1;
bits(esize) element2;
for e = 0 to elements-1
if ActivePredicateElement(mask, e, esize) then
if IsEven(e) then
element1 = Elem[operand1, e + 0, esize];
element2 = Elem[operand1, e + 1, esize];
else
element1 = Elem[operand2, e - 1, esize];
element2 = Elem[operand2, e + 0, esize];
Elem[result, e, esize] = FPMin(element1, element2, FPCR);
Z[dn, VL] = result;