https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102897
Bug ID: 102897 Summary: [12 Regression] simplify_permutation ICEs on assert Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: tnfchris at gcc dot gnu.org Target Milestone: --- The following testcase typedef __attribute__((vector_size(8))) signed char int8x8_t; typedef __attribute__((vector_size(8))) unsigned char uint8x8_t; int8x8_t fn1(int8x8_t val20, char tmp) { uint8x8_t __trans_tmp_3; __trans_tmp_3 = (uint8x8_t){tmp}; int8x8_t __a = (int8x8_t)__trans_tmp_3; return __builtin_shuffle(__a, val20, (uint8x8_t){}); } ICEs at -O1 and higher with during GIMPLE pass: forwprop <source>: In function 'fn1': <source>:12:1: internal compiler error: in simplify_permutation, at tree-ssa-forwprop.c:2271 12 | } | ^ 0x1000e00 simplify_permutation src/gcc/gcc/tree-ssa-forwprop.c:2271 0x1007ae8 execute src/gcc/gcc/tree-ssa-forwprop.c:3397 That line contains an assert with the comment tree op2_type = TREE_TYPE (op2); /* Should have folded this before. */ gcc_assert (op2_type != tgt_type);