[Bug target/85236] missing _mm256_atan2_ps

2024-04-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85236

--- Comment #7 from Andrew Pinski  ---
clang does not implement this intrinsics either and there is no issue filed
there about it either (I am kinda of shocked).

Note ICX (which is the new ICC but with using clang/LLVM) does and it calls
__svml_atan2f8_e9 directly.


Looks like SIMD-everywhere has implement it though, see
https://github.com/simd-everywhere/simde/issues/40

and
https://github.com/simd-everywhere/simde/commit/5b28b3d4672a9cc0616d5d6813b8e31e9bde8148

[Bug target/85236] missing _mm256_atan2_ps

2024-04-03 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85236

--- Comment #6 from Andrew Pinski  ---
https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#!=undefined=SVML=_mm256_atan2_ps_expand=393

[Bug target/85236] missing _mm256_atan2_ps

2018-04-06 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85236

--- Comment #5 from Marc Glisse  ---
(In reply to bking from comment #4)
> I understand that is a part of SVML, but doesn't that mean using the Intel
> Compiler?  Which means not using GCC.  Is there not a plan to add it?  Or is
> that the intent of glibc?

As Richard said, yes, the current situation is that this would fit much better
in glibc's libmvec. It already provides vector versions of sin, cos, exp, log,
pow and sincos (under different names than SVML), it should be extended to more
functions. Another possibility would be to link to Intel's SVML when it is
present. Although gcc already has a way to use SVML for autovectorization, it
isn't clear in this particular case whether it is something the compiler should
provide, the library vendor (Intel), or the user.

[Bug target/85236] missing _mm256_atan2_ps

2018-04-06 Thread bking at rtlogic dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85236

--- Comment #4 from bking at rtlogic dot com ---
I understand that is a part of SVML, but doesn't that mean using the Intel
Compiler?  Which means not using GCC.  Is there not a plan to add it?  Or is
that the intent of glibc?

[Bug target/85236] missing _mm256_atan2_ps

2018-04-06 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85236

Richard Biener  changed:

   What|Removed |Added

 Target||x86_64-*-*, i?86-*-*
  Component|c++ |target

--- Comment #3 from Richard Biener  ---
You might want to file this against glibc in case they want to provide
intrinsic headers for libmvec supported functions.  Hopefully _mm256_atan2_ps
isn't in a header provided by GCC ... hmm, ICC seems to have it in immintrin.h:

/suse/matz/bin/2018.1/include/icc/immintrin.h:extern __m256  __ICL_INTRINCC
_mm256_atan2_ps(__m256, __m256);

and also:

/suse/matz/bin/2018.1/include/dvec.h:friend F32vec8 atan2(const F32vec8 ,
const F32vec8 ) { return _mm256_atan2_ps(a, b); }

not sure if we have a way to provide the intrinsic in a reasonable way from
GCC,
doing auto-dispatch to libmvec or alternatively open-coding elementwise?