On Fri, 5 Aug 2022 at 18:26, Andre Vieira (lists) <andre.simoesdiasvie...@arm.com> wrote: > > Hi, > > This patch is part of the WIP patch that follows in this series. It's > goal is to teach forwprop to handle VLA VEC_PERM_EXPRs with VLS > CONSTRUCTORs as arguments as preparation for the 'VLA constructor' hook > approach.
/* Shuffle of a constructor. */ bool ret = false; - tree res_type = TREE_TYPE (arg0); + tree res_type = TREE_TYPE (gimple_get_lhs (stmt)); tree opt = fold_ternary (VEC_PERM_EXPR, res_type, arg0, arg1, op2); if (!opt || (TREE_CODE (opt) != CONSTRUCTOR && TREE_CODE (opt) != VECTOR_CST)) This has to be TREE_TYPE (arg0). I had changed it to TREE_TYPE (gimple_assign_lhs (stmt)) and it caused several ICE's on ppc64le (PR106360) For details, see: https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598611.html I currently have a patch in review that extends fold_vec_perm to handle differing vector lengths: https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599126.html Thanks, Prathamesh > > Kind Regards, > Andre