On Mon, Jul 31, 2017 at 11:19:26AM -0500, Bill Schmidt wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81622 reports an ICE-on-invalid > for the vec_ld and vec_st built-in functions. This fires when the last > argument of the built-in is not a pointer or array type, as is required. > We break on this during early expansion of the built-ins into tree code > during parsing. The solution, as with other ill-formed uses of these > built-ins, is to avoid the early expansion when the argument has an invalid > type, so that normal error handling can kick in later. > > (The long-term solution is to move the vec_ld and vec_st built-ins to the > gimple folding work that Will Schmidt has been doing, but that hasn't > happened yet.) > > Bootstrapped and tested on powerpc64le-linux-gnu with no regressions. > Is this ok for trunk and GCC 7? I'd like to get it into 7.2 since it > is a 7 regression.
See the patch I've attached in the PR, this isn't sufficient (and for the ARRAY_TYPE I wonder if you can ever see there ARRAY_TYPE), the function has various other issues, including e.g. ICE on vec_cmpne (1, 2) with -mpower9. Jakub