On 09/07/2025 12:16, Jan Stanek wrote:

I recently ran into build failure in the upcoming nodejs24, on i686
architecture (yay!). It seems like some of the sse vector instructions
are not defined, on just this arch:

```
../../deps/v8/src/strings/string-hasher.cc: In static member function
‘static uint64_t v8::internal::ConvertTo8BitHashReader::Read64(const
uint8_t*)’:
../../deps/v8/src/strings/string-hasher.cc:28:12: error:
‘_mm_cvtsi128_si64’ was not declared in this scope; did you mean
‘_mm_cvtsi32_si64’?
    28 |     return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
       |            ^~~~~~~~~~~~~~~~~
       |            _mm_cvtsi32_si64
../../deps/v8/src/strings/string-hasher.cc: In static member function
‘static uint64_t v8::internal::ConvertTo8BitHashReader::Read32(const
uint8_t*)’:
../../deps/v8/src/strings/string-hasher.cc:49:12: error:
‘_mm_cvtsi128_si64’ was not declared in this scope; did you mean
‘_mm_cvtsi32_si64’?
    49 |     return _mm_cvtsi128_si64(_mm_packus_epi16(x, x));
       |            ^~~~~~~~~~~~~~~~~
       |            _mm_cvtsi32_si64
```

I tried digging around in the relevant headers (emmintrin.h) and did
not find any defines that would hide the _mm_cvtsi128_si64 on i686.
Can anyone enlighten me about what is going on?

In the gcc version of emmintrin.h it is guarded by #ifdef __x86_64__
so only available on 64 bit systems.

The intel definition is here:

https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_cvtsi128_si64&ig_expand=2228

Which has the underlying instruction targeting a 64 bit register
for the result so I guess that's correct?

Tom

--
Tom Hughes (t...@compton.nu)
http://compton.nu/
--
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to