https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104026

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to rdapp from comment #4)
> This code path should only be active when the backend has len_load/len_store
> patterns.
>     signed char partial_load_store_bias;
> is new in the "middle" of loop_vect_info. Could this become
> overwritten/corrupted by something?

My impression is:
- VECT_PARTIAL_BIAS_UNSUPPORTED is not always set when it should
- If it is not set, it is has some random value (stack variable, malloc not
calloc,
  ...); Still 0 is common - and it might work by chance as there is
  'if (partial_load_bias != 0)' around the ICEing code.
  (Side note: VECT_PARTIAL_BIAS_UNSUPPORTED = 127 while 0 is a valid/supported
value).
- It probably only affects loops where vect_verify_full_masking
  + LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P are true
  (and vect_verify_loop_lens is false)

Caveat: I might be completely off here.

Reply via email to