incd

SVE Increment Scalar by Doubleword Count

INCD <Xdn>, <pattern> {, MUL #<imm>}

Increments a register by the number of active doublewords.

Pseudocode Operation

count ← CountActiveDoublewords(pattern)
multiplier ← imm4 if imm4 != 0 else 1
Xdn ← Xdn + (count * multiplier)

Example

INCD Xdn, pattern

Encoding

Binary Layout
00000100
31:24
1
23
1
22
11
21:20
imm4
19:16
11100
15:11
0
10
pattern
9:5
Rdn
4:0
 
Format SVE Inc/Dec
Opcode 0x04F0E000
Extension SVE

Operands

  • Xdn
    Register
  • pattern
    Predicate Pattern

Related

More in SVE

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0x04F0E000 INCD <Xdn>{, <pattern>{, MUL #<imm>}} A64 00000100 | 1 | 1 | 11 | imm4 | 11100 | 0 | pattern | Rdn
0x04F0C000 INCD <Zdn>.D{, <pattern>{, MUL #<imm>}} A64 00000100 | 1 | 1 | 11 | imm4 | 11000 | 0 | pattern | Zdn

Description

Determines the number of active elements implied by the named predicate constraint, multiplies that by an immediate in the range 1 to 16 inclusive, and then uses the result to increment the scalar destination. The named predicate constraint limits the number of active elements in a single predicate to: Unspecified or out of range constraint encodings generate an empty predicate or zero element count rather than Undefined Instruction exception.

Operation

CheckSVEEnabled();
integer count = DecodePredCount(pat, esize);
constant integer VL = CurrentVL;
bits(64) operand1 = X[dn, 64];

X[dn, 64] = operand1 + (count * imm);