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

--- Comment #2 from JuzheZhong <juzhe.zhong at rivai dot ai> ---
I think there is a too conservative analysis here:

note:   _1: type = float, start = 1, end = 6
note:   _5: type = float, start = 6, end = 8
note:   _3: type = float, start = 3, end = 7
note:   _4: type = float, start = 5, end = 6
note:   _2: type = float, start = 2, end = 3
note:   _28: type = float, start = 7, end = 9
note:   sum_18: type = real_t, start = 9, end = 9
note:   sum_26: type = real_t, start = 0, end = 9

The variables live at point 6 should be:
1. _1
2. _3
3. _4
4. sum_26

So there are total 4 variables each variable occupies 8 register at LMUL = 8.

Then the total live register should 4 * 8 = 32 which is ok to pick LMUL = 8.

Reply via email to