Data Driven Clock Gating