Here is a first go at what was discussed in the thread of https://lists.llvm.org/pipermail/llvm-dev/2021-May/150739.html
Hoist llvm.assume instrinsics (and rewrite condition) from blocks where they would inhibit transformation by SimplifyCFGOpt::simplifyUncondBranch.
Please split the new transform in SimplifyCFG and the deletion of the old CGP code into two patches. The former should be independently worthwhile if structured properly.