Only one overload of SelectionDAG::UpdateNodeOperands was modified to update divergence information in https://reviews.llvm.org/D35267 which leads to IsDivergent bits becoming stale, and so verification passes failing with an assert.
The test case is as simple as I could manage while still triggering the bug; redundant instructions are needed to get the correct combining/legalizing to call the right overloads.