https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104026
--- Comment #11 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to rdapp from comment #8)
> The following should help:
> @@ -1170,6 +1170,9 @@ vect_verify_loop_lens (loop_vec_info loop_vinfo)
> + LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo) =
> + VECT_PARTIAL_BIAS_UNSUPPORTED;
Unfortunately, this does not seem to help. If I place the debugger there,
it seems to call that function.
For the newlib testcase, I now get (in vect_set_loop_controls_directly):
(gdb) p partial_load_bias
$15 = 88
The value first pops up at:
Breakpoint 6, vect_create_loop_vinfo (loop=0x7ffff7c49578,
shared=0x7fffffffe250, info=0x7fffffffe130, main_loop_info=0x0) at
gcc-mainline/gcc/tree-vect-loop.c:1515
1515 loop_vec_info loop_vinfo = new _loop_vec_info (loop, shared);
(gdb) n
1516 LOOP_VINFO_NITERSM1 (loop_vinfo) = info->number_of_iterationsm1;
(gdb) p loop_vinfo->partial_load_store_bias
$35 = 88 'X'
Wouldn't it make sense to add that value as initializer
to _loop_vec_info::_loop_vec_info?
Additionally, I have the feeling that vect_set_loop_controls_directly is also
supposed to be called for masked load/store not only for len_(store/load). But
I have not properly read the file.
If so, shouldn't in addition the condition
if (partial_load_bias != 0)
then be changed to
if (partial_load_bias != VECT_PARTIAL_BIAS_UNSUPPORTED && partial_load_bias
!= 0)
?