google / google/highway

Implement a few missing things using SSE or NEON intrinsics.

Open
#1,338 14 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
5.8k
Forks
471
Avg merge
1d 6h
Merged PRs (30d)
81

Description

I have the following code:

```
int32_t MulInt(int32_t out, int32_t a, int32_t b) {
return static_cast((static_cast(a[i]) * static_cast(b[i])) >> 16);
}
```

I tried to implement it through Highway alone, but it doesn't work. Highway currently doesn't support multiplication of int32_t to produce int64_t efficiently. Many architectures will multiply two int32_t to produce int64_t without explicit casting, and I want to take advantage of that.

I already have implementations for SSE and NEON, but I want to make them available to Highway. I want to have Highway function
V MulInt(V v2, V v2) for Vec128 for SSE and NEON. Is there any official guide on how to supplement Highway with custom build functions?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.