This patch introduces conversion pattern for spv.selection op. The conversion can only be applied to selection with all blocks being reachable. Moreover, selection with control attributes "Flatten" and "DontFlatten" is not supported.
Since the PatternRewriter hook for block merging has not been implemented for ConversionPatternRewriter, merge and continue blocks are kept separately.
Also, straight lowering to LLVM was chosen over going via SCF dialect.
Remove the trailing // pred: part from all the tests.