An earthquake with a preliminary magnitude of 7.6 has struck off the coast of the southern Philippines island of Mindanao.