compile with -O3 flag instead of -O2