https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88698
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #12 from Alexander Monakov <amonakov at gcc dot gnu.org> --- The union-of-vectors pattern from comment #6 has been added to the documentation. I'm closing this bug, as I believe it's not really possible to change type compatibility and related rules for the vector extension, mostly because it's constrained by compatibility to earlier extensions like Altivec (it would be nice if the documentation explained that, though). In some places GCC may be able to relax requirements, making some previously invalid code valid, but not vice versa. In C++ it's probably extra problematic because making some expression valid has implications for template tricks like SFINAE. (personally I don't like the status quo, ideally the rules would be the same for scalar types and vector types as much as possible, but it's too late now; likewise, relaxing vector conversions further than what is usually accepted for scalar types sounds controversial)