Add POLY_INT_CST support to code within
fold_ctor_reference. This code previously
only supported INTEGER_CST which caused a
bug when using VEC_PERM_EXPR with SVE vectors.
gcc/ChangeLog:
* gimple-fold.cc (fold_ctor_reference):
Add support for poly_int.
result. */
if (!AGGREGATE_TYPE_P (TREE_TYPE (ctor)) && !offset
/* VIEW_CONVERT_EXPR is defined only for matching sizes. */
- && !compare_tree_int (TYPE_SIZE (type), size)
- && !compare_tree_int (TYPE_SIZE (TREE_TYPE (ctor)), size))
+ && known_eq (wi::to_poly_widest (TYPE_SIZE (type)), size)
+ && known_eq (wi::to_poly_widest (TYPE_SIZE (TREE_TYPE (ctor))), size))
{
ret = canonicalize_constructor_val (unshare_expr (ctor), from_decl);
if (ret)