https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92276
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Lijian Zhang from comment #4) > (In reply to Richard Biener from comment #1) > > Instead of trying to force the compiler to unroll with -funroll-loops you > > can > > use #pragma GCC unroll N on individual loops instead. > > > > The attributes should not conflict in any way. > > Hi Richard, > Does it make sense to you that '__attribute__ ((optimize("unroll-loops")))' > has to be moved ahead of the caller, if the callee is defined with > '__attribute__ ((__always_inline__))'? Those attributes apply to a function so once the callee is inlined what matters is the callers attribute. So yes.