// RUN: %target-sil-opt -enable-sil-verify-all -compute-dominance-info -compute-loop-info -loop-canonicalizer %s | %FileCheck %s sil_stage canonical import Builtin // Test insertBackedgeBlock. // // CHECK-LABEL: insert_backedge_block // CHECK: bb2: // CHECK: cond_br undef, bb3, bb5 // CHECK: bb3: // CHECK: br bb4 // CHECK: bb5: // CHECK: cond_br undef, bb6, bb7 // CHECK: bb6: // CHECK: br bb4 sil @insert_backedge_block : $@convention(thin) () -> () { bb0: br bb1 bb1: br bb2 bb2: cond_br undef, bb3, bb4 bb3: br bb1 bb4: cond_br undef, bb5, bb7 bb5: br bb1 bb7: return undef : $() } // CHECK-LABEL: sil @insert_backedge_block_inner_loop : $@convention(thin) () -> () { // CHECK: bb1: // CHECK: br bb2 // CHECK: bb2: // CHECK: br bb3 // CHECK: bb3: // CHECK: cond_br undef, bb4, bb6 // CHECK: bb4: // CHECK: br bb5 // CHECK: bb5: // CHECK: br bb2 // CHECK: bb6: // CHECK: cond_br undef, bb7, bb8 // CHECK: bb7: // CHECK: br bb5 // CHECK: bb8: // CHECK: cond_br undef, bb9, bb10 // CHECK: bb9: // CHECK: br bb1 // CHECK: bb10: // CHECK: return undef sil @insert_backedge_block_inner_loop : $@convention(thin) () -> () { bb0: br bb1 bb1: br bb2 bb2: br bb3 bb3: cond_br undef, bb4, bb5 bb4: br bb2 bb5: cond_br undef, bb6, bb7 bb6: br bb2 bb7: cond_br undef, bb8, bb9 bb8: br bb1 bb9: return undef : $() }