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

            Bug ID: 114803
           Summary: simd conversion to [[gnu::vector_size(N)]] type hits
                    invalid code in experimental/bits/simd_builtin.h
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: mkretz at gcc dot gnu.org
          Reporter: mkretz at gcc dot gnu.org
  Target Milestone: ---

Testcase (https://godbolt.org/z/roGdrfz85):

#include <experimental/simd>
namespace stdx = std::experimental;

using V = stdx::simd<int>;
using VB [[gnu::vector_size(16)]] = int;

V test(V x)
{
  auto intrin = static_cast<__m128i>(x);
  x = static_cast<V>(intrin);
  auto vb = static_cast<VB>(x);
  return static_cast<V>(vb);
}

The above should compile to a simple `ret`.

Reply via email to