Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

simd.h improvements #2621

Merged
merged 1 commit into from
Jul 6, 2020
Merged

Conversation

lgritz
Copy link
Collaborator

@lgritz lgritz commented Jun 29, 2020

SIMD improvements for emulating 8-wide on 4-wide HW: for many methods
on 8-wide SIMD types when running on 4-wide hardware, it's better (as
revealed by benchmarks) to implement as two 4-wide ops rather than
falling back to a purely scalar path.

Add operator*(vfloat{4,6,16}, float). On SSE, it hardly matters, no
better than letting the float be promoted to vfloat. But NEON has
vec*float.

Add NEON implementation of blend, min, max, reduce_add.

Signed-off-by: Larry Gritz lg@larrygritz.com

SIMD improvements for emulating 8-wide on 4-wide HW: for many methods
on 8-wide SIMD types when running on 4-wide hardware, it's better (as
revealed by benchmarks) to implement as two 4-wide ops rather than
falling back to a purely scalar path.

Add operator*(vfloat{4,6,16}, float). On SSE, it hardly matters, no
better than letting the float be promoted to vfloat. But NEON has
vec*float.

Add NEON implementation of blend, min, max, reduce_add.

Signed-off-by: Larry Gritz <lg@larrygritz.com>
@lgritz lgritz merged commit f30f2b7 into AcademySoftwareFoundation:master Jul 6, 2020
@lgritz lgritz deleted the lg-simd branch July 6, 2020 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant