https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94700
Bug ID: 94700 Summary: ICE in forwprop when folding to a VEC_PERM_EXPR Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rsandifo at gcc dot gnu.org Target Milestone: --- Compiling this with -march=armv8.2-a+sve -msve-vector-bits=256 -O3: #include <arm_sve.h> typedef float v8sf __attribute__((vector_size(32))); svfloat32_t f (svbool_t pg, svfloat32_t x, svfloat32_t y) { v8sf a = svadd_x (pg, x, 1); v8sf b = { a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7] }; return svdiv_x (pg, b, y); } gives: foo.c: In function ‘svfloat32_t f(svbool_t, svfloat32_t, svfloat32_t)’: foo.c:11:1: error: non-trivial conversion in ‘ssa_name’ 11 | } | ^ v8sf __SVFloat32_t b_18 = _1; during GIMPLE pass: forwprop dump file: foo.031t.forwprop1 This is the maybe_ident equivalent of PR94683. I should have realised at the time that both arms would need fixing.