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.