Genetic programming (GP) is one of evolutionary computation algorithms, which simulates the evolution procedure in nature. To improve the search ability of GP, the integration of semantics and/or local search into GP has attracted significant attention. Since the existing works have shown the advantage of preserving semantic diversity through genetic operators (crossover and mutation) during evolution in GP, this work focuses on investigating new genetic operators aware of semantic diversity for GP. However, the existing semantic diversity operators rarely consider local search that may further improve their search ability. To address this issue, two new genetic operators (a crossover and a mutation) are designed, which involve both a mechanism of increasing semantic diversity and a step of local search. They are termed as semantic crossover with local search (SCls) and semantic mutation with local search (SMls), based on which two new GP-based methods are developed, i.e. GP_SCls and GP_SMls. The proposed methods are compared with GP, three reference semantic diversity methods and five non-GP regression methods for regression tasks. Results show that GP_SCls and GP_SMls are generally better than both GP and the reference semantic diversity methods, since their evolved solutions achieve lower RMSE (root mean square error) values and they converge faster for most test cases. In addition, compared with five non-GP regression methods, the proposed methods perform consistently better for the given tasks.