I think the !isJumpExpensive() optimization in SelectionDAGBuilder is not appropriate for any target given that we're not using any branch predictability information or even asking what the cost of boolean logic ops are relative to branches, but this 1-line patch just disables the transform for x86 to solve PR23827:
https://llvm.org/bugs/show_bug.cgi?id=23827
The proper long-term fix IMO is to make isJumpExpensive() a virtual method rather than a bool so targets can override it to use whatever branch prediction and micro-arch info they have. As noted in PR23827, SimplifyCFG does the opposite transform, and that may be a separate bug.
I've added a command-line override to preserve secondary regression test behavior and to make it easier to measure performance differences going forward. The existing or-branch.ll regression test confirms that we're not splitting the condition logic whereas before it confirmed that we were splitting that logic (creating an extra branch).