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`.