We can't push/pop optimize options because they don't apply for inlined functions. Function attributes also won't apply for inlined functions. Because most (if not all) vector operations are inlined, neither of these are appropriate options. However, GCC 8.1 introduces a new pragma, unroll, that allows us to unroll specific loops. This pragma does apply for inlined functions.