Belinda Bencic is into the semi-finals at Indian Wells after a tight three-set win over Karolina Pliskova.