https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107283

            Bug ID: 107283
           Summary: conversions u/int64_t to float64/32_t are not
                    vectorized
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: g.peterh...@t-online.de
  Target Milestone: ---

The conversions u/int64_t to float64/32_t are not vectorisized if no HW-support
(eg AVX512) available.

But we can do that manually
https://stackoverflow.com/questions/41144668/how-to-efficiently-perform-double-int64-conversions-with-sse-avx

In the case u/int64_t -> float32_t i first convert to float64_t and then to
float32_t. There might be a better way to implement this.

With HW-support the standard implementation is of course faster.

https://godbolt.org/z/WTa663PrK

thx
Gero

Reply via email to