add likely and unlikely macro