#
e51896b3 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VADD (scalar)
Implement the scalar form of the MVE VADD insn. This takes the scalar operand from a general purpose register.
Signed-off-by: Peter Maydell <peter.maydell@li
target/arm: Implement MVE VADD (scalar)
Implement the scalar form of the MVE VADD insn. This takes the scalar operand from a general purpose register.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-23-peter.maydell@linaro.org
show more ...
|
#
38548747 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VRMLALDAVH, VRMLSLDAVH
Implement the MVE VRMLALDAVH and VRMLSLDAVH insns, which accumulate the results of a rounded multiply of pairs of elements into a 72-bit accumulator,
target/arm: Implement MVE VRMLALDAVH, VRMLSLDAVH
Implement the MVE VRMLALDAVH and VRMLSLDAVH insns, which accumulate the results of a rounded multiply of pairs of elements into a 72-bit accumulator, returning the top 64 bits in a pair of general purpose registers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-22-peter.maydell@linaro.org
show more ...
|
#
181cd971 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMLSLDAV
Implement the MVE insn VMLSLDAV, which multiplies source elements, alternately adding and subtracting them, and accumulates into a 64-bit result in a pair of gener
target/arm: Implement MVE VMLSLDAV
Implement the MVE insn VMLSLDAV, which multiplies source elements, alternately adding and subtracting them, and accumulates into a 64-bit result in a pair of general purpose registers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-21-peter.maydell@linaro.org
show more ...
|
#
1d2386f7 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMLALDAV
Implement the MVE VMLALDAV insn, which multiplies pairs of integer elements, accumulating them into a 64-bit result in a pair of general-purpose registers.
Signed
target/arm: Implement MVE VMLALDAV
Implement the MVE VMLALDAV insn, which multiplies pairs of integer elements, accumulating them into a 64-bit result in a pair of general-purpose registers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-20-peter.maydell@linaro.org
show more ...
|
#
ac6ad1dc |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMULL
Implement the MVE VMULL insn, which multiplies two single width integer elements to produce a double width result.
Signed-off-by: Peter Maydell <peter.maydell@linaro
target/arm: Implement MVE VMULL
Implement the MVE VMULL insn, which multiplies two single width integer elements to produce a double width result.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-19-peter.maydell@linaro.org
show more ...
|
#
abc48e31 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VHADD, VHSUB
Implement MVE VHADD and VHSUB insns, which perform an addition or subtraction and then halve the result.
Signed-off-by: Peter Maydell <peter.maydell@linaro.or
target/arm: Implement MVE VHADD, VHSUB
Implement MVE VHADD and VHSUB insns, which perform an addition or subtraction and then halve the result.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-18-peter.maydell@linaro.org
show more ...
|
#
bc67aa8d |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VABD
Implement the MVE VABD insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 2021061
target/arm: Implement MVE VABD
Implement the MVE VABD insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-17-peter.maydell@linaro.org
show more ...
|
#
cd367ff3 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMAX, VMIN
Implement the MVE VMAX and VMIN insns.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Mes
target/arm: Implement MVE VMAX, VMIN
Implement the MVE VMAX and VMIN insns.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-16-peter.maydell@linaro.org
show more ...
|
#
fca87b78 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VRMULH
Implement the MVE VRMULH insn, which performs a rounding multiply and then returns the high half.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-b
target/arm: Implement MVE VRMULH
Implement the MVE VRMULH insn, which performs a rounding multiply and then returns the high half.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-15-peter.maydell@linaro.org
show more ...
|
#
ba62cc56 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMULH
Implement the MVE VMULH insn, which performs a vector multiply and returns the high half of the result.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Revie
target/arm: Implement MVE VMULH
Implement the MVE VMULH insn, which performs a vector multiply and returns the high half of the result.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-14-peter.maydell@linaro.org
show more ...
|
#
9333fe4d |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VADD, VSUB, VMUL
Implement the MVE VADD, VSUB and VMUL insns.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@lin
target/arm: Implement MVE VADD, VSUB, VMUL
Implement the MVE VADD, VSUB and VMUL insns.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-13-peter.maydell@linaro.org
show more ...
|
#
68245e44 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VAND, VBIC, VORR, VORN, VEOR
Implement the MVE vector logical operations operating on two registers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: R
target/arm: Implement MVE VAND, VBIC, VORR, VORN, VEOR
Implement the MVE vector logical operations operating on two registers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-12-peter.maydell@linaro.org
show more ...
|
#
ab59362f |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VDUP
Implement the MVE VDUP insn, which duplicates a value from a general-purpose register into every lane of a vector register (subject to predication).
Signed-off-by: Pe
target/arm: Implement MVE VDUP
Implement the MVE VDUP insn, which duplicates a value from a general-purpose register into every lane of a vector register (subject to predication).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-11-peter.maydell@linaro.org
show more ...
|
#
399a8c76 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VNEG
Implement the MVE VNEG insn (both integer and floating point forms).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.h
target/arm: Implement MVE VNEG
Implement the MVE VNEG insn (both integer and floating point forms).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-9-peter.maydell@linaro.org
show more ...
|
#
59c91773 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VABS
Implement the MVE VABS functions (both integer and floating point).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.he
target/arm: Implement MVE VABS
Implement the MVE VABS functions (both integer and floating point).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-8-peter.maydell@linaro.org
show more ...
|
#
8abd3c80 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VMVN (register)
Implement the MVE VMVN(register) operation. Note that for predication this operation is byte-by-byte.
Signed-off-by: Peter Maydell <peter.maydell@linaro.o
target/arm: Implement MVE VMVN (register)
Implement the MVE VMVN(register) operation. Note that for predication this operation is byte-by-byte.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-7-peter.maydell@linaro.org
show more ...
|
#
249b5309 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VREV16, VREV32, VREV64
Implement the MVE instructions VREV16, VREV32 and VREV64.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <ri
target/arm: Implement MVE VREV16, VREV32, VREV64
Implement the MVE instructions VREV16, VREV32 and VREV64.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-6-peter.maydell@linaro.org
show more ...
|
#
6437f1f7 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VCLS
Implement the MVE VCLS insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 2021061
target/arm: Implement MVE VCLS
Implement the MVE VCLS insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-5-peter.maydell@linaro.org
show more ...
|
#
0f0f2bd5 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VCLZ
Implement the MVE VCLZ insn (and the necessary machinery for MVE 1-input vector ops).
Note that for non-load instructions predication is always performed at a byte le
target/arm: Implement MVE VCLZ
Implement the MVE VCLZ insn (and the necessary machinery for MVE 1-input vector ops).
Note that for non-load instructions predication is always performed at a byte level granularity regardless of element size (R_ZLSJ), and so the masking logic here differs from that used in the VLDR and VSTR helpers.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-4-peter.maydell@linaro.org
show more ...
|
#
2fc6b751 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement widening/narrowing MVE VLDR/VSTR insns
Implement the variants of MVE VLDR (encodings T1, T2) which perform "widening" loads where bytes or halfwords are loaded from memory and
target/arm: Implement widening/narrowing MVE VLDR/VSTR insns
Implement the variants of MVE VLDR (encodings T1, T2) which perform "widening" loads where bytes or halfwords are loaded from memory and zero or sign-extended into halfword or word length vector elements, and the narrowing MVE VSTR (encodings T1, T2) where bytes or halfwords are stored from halfword or word elements.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-3-peter.maydell@linaro.org
show more ...
|
#
507b6a50 |
| 17-Jun-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VLDR/VSTR (non-widening forms)
Implement the forms of the MVE VLDR and VSTR insns which perform non-widening loads of bytes, halfwords or words from memory into vector elem
target/arm: Implement MVE VLDR/VSTR (non-widening forms)
Implement the forms of the MVE VLDR and VSTR insns which perform non-widening loads of bytes, halfwords or words from memory into vector elements of the same width (encodings T5, T6, T7).
(At the moment we know for MVE and M-profile in general that vfp_access_check() can never return false, but we include the conventional return-true-on-failure check for consistency with non-M-profile translation code.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-2-peter.maydell@linaro.org
show more ...
|