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)
?

Reply via email to