]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vect: remove cast to pointer for create_if in vect_create_data_ref_ptr
authorAlfie Richards <alfie.richards@arm.com>
Thu, 24 Jul 2025 08:16:30 +0000 (08:16 +0000)
committerAlfie Richards <alfie.richards@arm.com>
Thu, 24 Jul 2025 13:44:25 +0000 (13:44 +0000)
Removes `fold_convert (aggr_ptr_type, iv_step)` when using create_iv.

This was previously constructing statements like:
```
unsigned int _49;
vector([4,4]) int * _50;
sizetype _51;
vector([4,4]) int * vectp_x.6;
...
_50 = (vector([4,4]) int *) _49;
_51 = (sizetype) _50;
...
vectp_x.6_48 = vectp_x.6_47 + _51;
```

And instead creates:
```
unsigned int _49;
sizetype _50;
vector([4,4]) int * vectp_x.6;
...
_50 = (sizetype) _49;
...
vectp_x.6_48 = vectp_x.6_47 + _50;
```

As create_iv already has the logic to handle a pointer mode base and an integer
mode var this seems a more natural expression of this.

gcc/ChangeLog:

* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Remove unnecessary
casts to aggr_ptr_type.

gcc/tree-vect-data-refs.cc

index 460a48db2e60e3c61a2af48a29313c1dd1478c18..5f672132a8ac0b5e85deb0a7ae8227c66cc72a08 100644 (file)
@@ -5718,8 +5718,7 @@ vect_create_data_ref_ptr (vec_info *vinfo, stmt_vec_info stmt_info,
       standard_iv_increment_position (loop, &incr_gsi, &insert_after);
 
       create_iv (aggr_ptr_init, PLUS_EXPR,
-                fold_convert (aggr_ptr_type, iv_step),
-                aggr_ptr, loop, &incr_gsi, insert_after,
+                iv_step, aggr_ptr, loop, &incr_gsi, insert_after,
                 &indx_before_incr, &indx_after_incr);
       incr = gsi_stmt (incr_gsi);
 
@@ -5747,7 +5746,7 @@ vect_create_data_ref_ptr (vec_info *vinfo, stmt_vec_info stmt_info,
     {
       standard_iv_increment_position (containing_loop, &incr_gsi,
                                      &insert_after);
-      create_iv (aptr, PLUS_EXPR, fold_convert (aggr_ptr_type, DR_STEP (dr)),
+      create_iv (aptr, PLUS_EXPR, DR_STEP (dr),
                 aggr_ptr, containing_loop, &incr_gsi, insert_after,
                 &indx_before_incr, &indx_after_incr);
       incr = gsi_stmt (incr_gsi);