It seems that reading the IRQ pending register may actually clear some bits