Skip to content
This repository has been archived by the owner on Dec 22, 2021. It is now read-only.

Consistently support widening/long variants of integer instructions #226

Open
bjacob opened this issue May 11, 2020 · 0 comments · Fixed by #376
Open

Consistently support widening/long variants of integer instructions #226

bjacob opened this issue May 11, 2020 · 0 comments · Fixed by #376

Comments

@bjacob
Copy link

bjacob commented May 11, 2020

In SIMD instruction sets where integer arithmetic is really first-class, support for different bit width in different operands is not just an ad-hoc addition for a few instructions. Instead, generically most multiplication, addition, subtraction instructions support "long" and "widening" variants. In ARM parlance, "widening" means that one operand is narrower and gets widened to match the other, e.g. (widening addition, ARM SADDW)
int16 := int16 + int8
and "long" means that while both source operands are the same width, the result or accumulator is larger, e.g. (long addition, ARM SADDL)
int16 := int8 + int8
or (long multiply-add, ARM SMLAL)
int16 += int8 * int8

While some issues have been filed in the past to discuss a few specific cases, such as Issue #175 , such ad-hoc addition of a few instructions isn't going to solve the whole problem.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant