[Bug rtl-optimization/84989] [8 Regression] _mm512_broadcast_f32x4 triggers ICE in simplify_const_unary_operation, at simplify-rtx.c:1731
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84989 --- Comment #3 from Sven Woop <m...@sven-woop.de> --- Thus the bug is fixed in the master branch?
[Bug c++/84989] New: _mm512_broadcast_f32x4 triggers internal compiler bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84989 Bug ID: 84989 Summary: _mm512_broadcast_f32x4 triggers internal compiler bug Product: gcc Version: 8.0.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- Created attachment 43717 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43717=edit reproducer The following code produces an internal compiler error: __m512 occluded(float a, float* b) { return _mm512_sub_ps(_mm512_broadcast_f32x4(_mm_load_ps(b)), _mm512_broadcast_f32x4(_mm_set1_ps(a))); }
[Bug target/80381] AVX512: -O3, _mm512_srai_epi32, the last argument must be an 8-bit immediate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80381 --- Comment #8 from Sven Woop <m...@sven-woop.de> --- Thanks a lot. Sven
[Bug c++/80390] New: std::pair of aligned type gives bogus warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80390 Bug ID: 80390 Summary: std::pair of aligned type gives bogus warning Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following code gives a weird warning regarding using a wrong version of ::new for the aligned type. As this code does not do any allocations, and the std::pair struct should inherit the alignment from its members this code should be fine. Code: -- #include struct alignas(32) AlignedStruct { int a; }; std::pair<AlignedStruct,AlignedStruct> my_make_pair(const AlignedStruct& p0, const AlignedStruct& p1) { return std::make_pair(p0,p1); } Command line: -- g++ -Wall -o test.o -c test.cpp Output: In file included from /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/bits/move.h:54:0, from /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/bits/stl_pair.h:59, from /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/utility:70, from test.cpp:1: /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits: In substitution of \u2018template static std::true_type std::__do_is_direct_constructible_impl::__test(int) [with _Tp = AlignedStruct; _Arg = const AlignedStruct&; = ]\u2019: /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:987:41: required from \u2018struct std::__is_direct_constructible_impl<AlignedStruct, const AlignedStruct&>\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:143:12: required from \u2018struct std::__and_<std::is_destructible, std::__is_direct_constructible_impl<AlignedStruct, const AlignedStruct&> >\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:991:12: required from \u2018struct std::__is_direct_constructible_new_safe<AlignedStruct, const AlignedStruct&>\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:1073:12: required from \u2018struct std::__is_direct_constructible_new<AlignedStruct, const AlignedStruct&>\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:1081:12: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:1132:12: required from \u2018struct std::is_constructible<AlignedStruct, const AlignedStruct&>\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:143:12: required from \u2018struct std::__and_<std::is_constructible<AlignedStruct, const AlignedStruct&>, std::is_constructible<AlignedStruct, const AlignedStruct&> >\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/bits/stl_pair.h:101:45: required from \u2018static constexpr bool std::_PCC<, _T1, _T2>::_ConstructiblePair() [with _U1 = AlignedStruct; _U2 = AlignedStruct; bool = true; _T1 = AlignedStruct; _T2 = AlignedStruct]\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/bits/stl_pair.h:245:35: required by substitution of \u2018template() && _ImplicitlyConvertiblePair<_U1, _U2>()), bool>::type > constexpr std::pair<AlignedStruct, AlignedStruct>::pair(const AlignedStruct&, const AlignedStruct&) [with _U1 = AlignedStruct; _U2 = AlignedStruct; typename std::enable_if<(_ConstructiblePair<_U1, _U2>() && _ImplicitlyConvertiblePair<_U1, _U2>()), bool>::type = ]\u2019 /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/bits/stl_pair.h:524:14: required from \u2018constexpr std::pair::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const AlignedStruct&; _T2 = const AlignedStruct&; typename std::__decay_and_strip<_T2>::__type = AlignedStruct; typename std::__decay_and_strip<_Tp>::__type = AlignedStruct]\u2019 test.cpp:8:30: required from here /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:976:18: note: uses \u2018void* operator new(long unsigned int)\u2019, which does not have an alignment parameter = decltype(::new _Tp(declval<_Arg>()))> ^~ /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits:976:18: note: use \u2018-faligned-new\u2019 to enable C++17 over-aligned new support /home/swoop/projects/gcc/latest/usr/local/include/c++/7.0.1/type_traits: In substitution of \u2018template static std::true_type std::__do_is_direct_constructible_impl::__test(int) [with _Tp = AlignedStruct; _Arg = const AlignedStruct&&; = ]
[Bug target/80381] AVX512: -O3, _mm512_srai_epi32, the last argument must be an 8-bit immediate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80381 --- Comment #4 from Sven Woop <m...@sven-woop.de> --- BTW, the AVX-512 version of this "bug" also compiles with ICC and Clang 4.
[Bug target/80381] AVX512: -O3, _mm512_srai_epi32, the last argument must be an 8-bit immediate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80381 --- Comment #3 from Sven Woop <m...@sven-woop.de> --- Right, this could be considered a user bug. However, we ran into this as we are successfully using this code sequence in our code: #include #define __forceinline inline __attribute__((always_inline)) struct vint8 { __forceinline vint8(const int i) : v(_mm256_set1_epi32(i)) {} __forceinline vint8(const __m256i& t) : v(t) {} friend __forceinline const vint8 operator >>( const vint8& a, const int n ) { return _mm256_srai_epi32(a.v, n); } __m256i v; }; vint8 test8(int shift) { const vint8 blocks_add(shift); return blocks_add >> shift; } Which is essentially the same bug for AVX2. However, this code compiles with every compiler that supports AVX2, be it GCC, Clang, or MSVC. Also the corresponding sequence for SSE compiles with every compiler we tried so far. I would have expected GCC to behave consistent for AVX-256 and AVX-512 for this code.
[Bug c++/80381] New: AVX512: -O3, _mm512_srai_epi32, the last argument must be an 8-bit immediate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80381 Bug ID: 80381 Summary: AVX512: -O3, _mm512_srai_epi32, the last argument must be an 8-bit immediate Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- I again reduced the issue we ran into, this time I have a reproducer that fails when compiling with -O3. Code: - #include #define __forceinline inline __attribute__((always_inline)) struct vint16 { __forceinline vint16(const int i) : v(_mm512_set1_epi32(i)) {} __forceinline vint16(const __m512i& t) : v(t) {} friend __forceinline const vint16 operator >>( const vint16& a, const int n ) { return _mm512_srai_epi32(a.v, n); } __m512i v; }; vint16 test16(int shift) { const vint16 blocks_add = shift; return blocks_add >> shift; } Command line: -- g++ -mavx512f -mavx512dq -mavx512cd -mavx512bw -mavx512vl -mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2 -O3 test.cpp -c -o test.o Output: --- /home/swoop/projects/gcc/latest/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.0.1/include/avx512fintrin.h: In function \u2018vint16 test16(int)\u2019: /home/swoop/projects/gcc/latest/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.0.1/include/avx512fintrin.h:1318:50: error: the last argument must be an 8-bit immediate return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B, ~~^~~~ (__v16si) ~ _mm512_undefined_epi32 (), ~~ (__mmask16) -1);
[Bug c++/80353] New: AVX512: _mm512_slli_epi32, the last argument must be an 8-bit immediate
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80353 Bug ID: 80353 Summary: AVX512: _mm512_slli_epi32, the last argument must be an 8-bit immediate Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- GCC trunk does not propagate constant to _mm512_slli_epi32 intrinsic: #include #define __forceinline inline __attribute__((always_inline)) __forceinline __m128i sll128 ( const __m128i a, const int& n ) { return _mm_slli_epi32(a, n); } __forceinline __m256i sll256 ( const __m256i a, const int& n ) { return _mm256_slli_epi32(a, n); } __forceinline __m512i sll512 ( const __m512i a, const int& n ) { return _mm512_slli_epi32(a, n); } void test() { __m128i a = sll128(_mm_set1_epi32(0),4); __m256i b = sll256(_mm256_set1_epi32(0),4); __m512i c = sll512(_mm512_set1_epi32(0),4); } The first two work, while the last not. Output is: test.cpp:8:73: error: the last argument must be an 8-bit immediate __forceinline __m512i sll512 ( const __m512i a, const int& n ) { return _mm512_slli_epi32(a, n); }
[Bug target/80339] internal compiler error: in int_mode_for_mode, at stor-layout.c:406
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80339 --- Comment #2 from Sven Woop <m...@sven-woop.de> --- Ok I isolated the issue, please see attached reproducer. The bug is quite delicate. Removing some unused variables in the code, and further minor adjustments easily let the bug disappear.
[Bug target/80339] internal compiler error: in int_mode_for_mode, at stor-layout.c:406
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80339 --- Comment #1 from Sven Woop <m...@sven-woop.de> --- Created attachment 41141 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41141=edit reproducer just do make
[Bug c++/80337] AVX512: operand type mismatch for `vxorps'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80337 Sven Woop <m...@sven-woop.de> changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Sven Woop <m...@sven-woop.de> --- Duplicate *** This bug has been marked as a duplicate of bug 80336 ***
[Bug target/80338] no such instruction: kmovb, operand type mismatch for vrcp14ps
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80338 --- Comment #3 from Sven Woop <m...@sven-woop.de> --- Ok with binutils.x86_64 2.25.1-22.base.el7 this works. Now I have an internal compiler error, will try to isolate this too.
[Bug target/80338] no such instruction: kmovb, operand type mismatch for vrcp14ps
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80338 --- Comment #2 from Sven Woop <m...@sven-woop.de> --- binutils.x86_64 2.23.52.0.1-16.el7 Will check if I can upgrade somehow.
[Bug c++/80339] New: internal compiler error: in int_mode_for_mode, at stor-layout.c:406
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80339 Bug ID: 80339 Summary: internal compiler error: in int_mode_for_mode, at stor-layout.c:406 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- Here some internal compiler error I just got. Will work an a reproducer and submit later. Looks like this issue was reported already several times, but could never get reproduced (bugs 79733, 79808). /home/swoop/projects/gcc/latest/usr/local/lib/gcc/x86_64-pc-linux-gnu/7.0.1/include/avx512fintrin.h:10087:48: internal compiler error: in int_mode_for_mode, at stor-layout.c:406 return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A, ~~^ (__mmask16) __B); 0xd2544b int_mode_for_mode(machine_mode) ../../gcc/stor-layout.c:406 0xa007ae emit_move_via_integer ../../gcc/expr.c:3289 0xa0d175 emit_move_insn_1(rtx_def*, rtx_def*) ../../gcc/expr.c:3670 0xa0d454 emit_move_insn(rtx_def*, rtx_def*) ../../gcc/expr.c:3738 0x9f0582 copy_to_reg(rtx_def*) ../../gcc/explow.c:585 0x109e6a7 ix86_expand_builtin ../../gcc/config/i386/i386.c:37854 0x8d3eb7 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) ../../gcc/builtins.c:6362 0xa09c2d expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10822 0xa15303 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) ../../gcc/expr.c:5552 0xa16b07 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:5321 0x8f8776 expand_call_stmt ../../gcc/cfgexpand.c:2656 0x8f8776 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3571 0x8f8776 expand_gimple_stmt ../../gcc/cfgexpand.c:3737 0x8fa1ff expand_gimple_basic_block ../../gcc/cfgexpand.c:5744 0x8ffcf6 execute ../../gcc/cfgexpand.c:6357 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.
[Bug target/80336] AVX512: operand type mismatch for `vxorps'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80336 --- Comment #2 from Sven Woop <m...@sven-woop.de> --- *** Bug 80337 has been marked as a duplicate of this bug. ***
[Bug c++/80338] New: no such instruction: kmovb, operand type mismatch for vrcp14ps
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80338 Bug ID: 80338 Summary: no such instruction: kmovb, operand type mismatch for vrcp14ps Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following code fails to compile with GCC 6.3 and trunk: #include inline __attribute__((always_inline)) const __m128 rcp2 ( const __m128& a ) { #if defined(__AVX512VL__) const __m128 r = _mm_rcp14_ps(a); #else const __m128 r = _mm_rcp_ps(a); #endif #if defined(__AVX2__) const __m128 res = _mm_mul_ps(r,_mm_fnmadd_ps(r, a, _mm_set1_ps(2.0f))); #else const __m128 res = _mm_mul_ps(r,_mm_sub_ps(_mm_set1_ps(2.0f), _mm_mul_ps(r, a))); //return _mm_sub_ps(_mm_add_ps(r, r), _mm_mul_ps(_mm_mul_ps(r, r), a)); #endif return res; } inline __attribute__((always_inline)) __m128 load4 ( const void* const a ) { return _mm_load_ps((float*)a); } inline __attribute__((always_inline)) const __m128 msub ( const __m128& a, const __m128& b, const __m128& c) { return _mm_fmsub_ps(a,b,c); } void test(__m128 ray_org, __m128 ray_dir, float ray_tnear, float ray_tfar) { char* stack[100]; char** stackPtr = stack+1; const __m128 ray_rdir = rcp2(ray_dir); __m128 rdir = _mm_set1_ps(*(float*)_rdir); __m128 org_rdir = _mm_set1_ps(*(float*)_org); /* pop loop */ while (true) pop: { stackPtr--; char* cur = (char*) *stackPtr; /* downtraversal loop */ while (true) { const __m128 tNearX = msub(load4((float*)((const char*)+0)), rdir, org_rdir); const __m128 tFarX = msub(load4((float*)((const char*)+3)), rdir, org_rdir); const __m128 tNear_ = _mm_max_ps(tNearX,_mm_set1_ps(ray_tnear)); const __m128 tFar_ = _mm_min_ps(tFarX ,_mm_set1_ps(ray_tfar)); const __mmask8 vmask = _mm_cmp_ps_mask(tNear_, tFar_, _MM_CMPINT_LE); size_t mask = _mm512_kmov(vmask); if (mask == 0) goto pop; } } } Command line: g++ -mavx512f -mavx512dq -mavx512cd -mavx512bw -mavx512vl -mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2 test.cpp -c -o test Output: /tmp/ccNhXh57.s: Assembler messages: /tmp/ccNhXh57.s:26: Error: no such instruction: `kmovb %eax,%k2' /tmp/ccNhXh57.s:27: Error: operand type mismatch for `vrcp14ps' /tmp/ccNhXh57.s:125: Error: no such instruction: `kmovb %eax,%k3' /tmp/ccNhXh57.s:126: Error: operand type mismatch for `vcmpps' /tmp/ccNhXh57.s:127: Error: no such instruction: `kmovb %k1,-49(%rbp)'
[Bug c++/80337] New: AVX512: operand type mismatch for `vxorps'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80337 Bug ID: 80337 Summary: AVX512: operand type mismatch for `vxorps' Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following code fails to compile with the GCC 6.3 and trunk: #include inline __attribute__((always_inline))float fmin(floata, floatb) { return a
[Bug c++/80336] New: AVX512: operand type mismatch for `vxorps'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80336 Bug ID: 80336 Summary: AVX512: operand type mismatch for `vxorps' Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following code fails to compile with the GCC 6.3 and trunk: #include inline __attribute__((always_inline))float fmin(floata, floatb) { return a
[Bug target/80327] _mm512_abs_ps intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80327 --- Comment #1 from Sven Woop <m...@sven-woop.de> --- This intrinsic is documented here: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_abs_ps=AVX_512=41 This is supported by latest ICC and Clang.
[Bug target/80326] _mm512_trunc_ps intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80326 --- Comment #1 from Sven Woop <m...@sven-woop.de> --- Ok that one is in the SVML and only supported by ICC, not by Clang: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#techs=SVML=_mm512_trunc_ps There seem to be no SVML for GCC, thus please close this issue.
[Bug target/80325] _mm512_undefined intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80325 --- Comment #2 from Sven Woop <m...@sven-woop.de> --- For AVX512 the Intel Intrinsics guide also mentioned the _mm512_undefined as alias for _mm512_undefined_ps. https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_undefined=AVX_512 ICC and Clang support _mm512_undefined.
[Bug target/80324] _mm512_reduce_xxx type instrinsics are missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80324 --- Comment #1 from Sven Woop <m...@sven-woop.de> --- These intrinsics are supported by latest ICC and Clang. Documentation of these can be found here: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=reduce=AVX_512 Likely many other reduce intrinsics that show up in the Intrinsics Guide are missing in GCC too.
[Bug target/80323] _mm512_int2mask and _mm512_mask2int intrinsics are missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80323 --- Comment #1 from Sven Woop <m...@sven-woop.de> --- Documentation of these can be found here: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm512_int2mask These are supported by the latest ICC and Clang.
[Bug c++/80327] New: _mm512_abs_ps intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80327 Bug ID: 80327 Summary: _mm512_abs_ps intrinsic missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The _mm512_abs_ps intrinsic is missing in GCC 6.3 and trunk version.
[Bug c++/80326] New: _mm512_trunc_ps intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80326 Bug ID: 80326 Summary: _mm512_trunc_ps intrinsic missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The _mm512_trunc_ps intrinsic is missing in GCC 6.3 and trunk version.
[Bug c++/80325] New: _mm512_undefined intrinsic missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80325 Bug ID: 80325 Summary: _mm512_undefined intrinsic missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The _mm512_undefined intrinsic is missing in GCC 6.3 and also in the trunk version.
[Bug c++/80324] New: _mm512_reduce_xxx type instrinsics are missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80324 Bug ID: 80324 Summary: _mm512_reduce_xxx type instrinsics are missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following intrinsics are missing in GCC 6.3 (and also in trunk): _mm512_reduce_add_epi32 _mm512_reduce_add_epi64 _mm512_reduce_add_pd _mm512_reduce_add_ps _mm512_reduce_and_epi32 _mm512_reduce_and_epi64 _mm512_reduce_max_epi32 _mm512_reduce_max_epi64 _mm512_reduce_max_epu32 _mm512_reduce_max_pd _mm512_reduce_max_ps _mm512_reduce_min_epi32 _mm512_reduce_min_epi64 _mm512_reduce_min_epu32 _mm512_reduce_min_pd _mm512_reduce_min_ps _mm512_reduce_mul_epi32 _mm512_reduce_mul_ps _mm512_reduce_or_epi64 There are likely some others too, but these are the ones for which compilation of our project fails.
[Bug c++/80323] New: _mm512_int2mask and _mm512_mask2int intrinsics are missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80323 Bug ID: 80323 Summary: _mm512_int2mask and _mm512_mask2int intrinsics are missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following intrinsics are missing in GCC 6.3 (and also in trunk). _mm512_int2mask _mm512_mask2int
[Bug c++/80322] New: convert intrinsics missing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80322 Bug ID: 80322 Summary: convert intrinsics missing Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: m...@sven-woop.de Target Milestone: --- The following intrinsics are missing in GCC 6.3 (and also in trunk). _mm512_cvtsd_f64 _mm512_cvtss_f32 _mm256_cvtsd_f64 _mm256_cvtss_f32