### 5.3.1. Control of scalar, vector, and mixed operations

When `LEN` is greater than 1, the behavior of arithmetic operations depends on which register bank the destination and operand registers are in (see Register banks).

Given instructions of the following general forms:

```    `Op`  `Fd`,`Fn`,`Fm`
`Op`  `Fd`,`Fm`
```

the behavior is as follows:

• If `Fd` is in the first bank of registers, s0 to s7 or d0 to d3, the operation is scalar.

• If the `Fm` is in the first bank of registers, but `Fd` is not, the operation is mixed.

• If neither `Fd` nor `Fm` are in the first bank of registers, the operation is vector.

#### Scalar operations

`Op` acts on the value in `Fm`, and the value in `Fn` if present. The result is placed in `Fd`.

#### Vector operations

`Op` acts on the values in the vector starting at `Fm`, together with the values in the vector starting at `Fn` if present. The results are placed in the vector starting at `Fd`.

#### Mixed scalar and vector operations

For single-operand instructions, `Op` acts on the single value in `Fm`. `LEN` copies of the result are placed in the vector starting at `Fd`.

For multiple-operand instructions, `Op` acts on the single value in `Fm`, together with the values in the vector starting at `Fn`. The results are placed in the vector starting at `Fd`.