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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |middle-end

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
This is middle-end problem; middle-end is expanding to:

    1: NOTE_INSN_DELETED
    3: NOTE_INSN_BASIC_BLOCK 2
    2: NOTE_INSN_FUNCTION_BEG
    5: di:DI=[`d']
    6: bp:DI=[const(`d'+0x8)]
    7: sp:DI=[const(`d'+0x10)]
    8: st:DI=[const(`d'+0x18)]
    9: st(1):DI=[const(`d'+0x20)]
   10: st(2):DI=[const(`d'+0x28)]
   11: st(3):DI=[const(`d'+0x30)]
   12: st(4):DI=[const(`d'+0x38)]
   13: st(5):DI=[const(`d'+0x40)]
   14: st(6):DI=[const(`d'+0x48)]
   15: st(7):DI=[const(`d'+0x50)]
   16: argp:DI=[const(`d'+0x58)]
   17: flags:DI=[const(`d'+0x60)]
   18: fpsr:DI=[const(`d'+0x68)]
   19: frame:DI=[const(`d'+0x70)]
   20: xmm0:DI=[const(`d'+0x78)]
   21: ax:QI=0
   22: call [`f'] argc:0
      REG_CALL_DECL `f'
   23: barrier

The number of insns depend on the parameter of the aligned(...) attribute.
having "aligned(512)", we get loads all the way to k0 mask register.

Please note that the above are just consecutive registers from REG_ALLOC_ORDER.

Reply via email to