# RUN: llc -mtriple=armv7-apple-ios -o - %s -run-pass if-converter | FileCheck %s --- name: f1 body: | bb.0: successors: %bb.1 B %bb.1 bb.1: successors: %bb.2, %bb.4 Bcc %bb.4, 1, $cpsr bb.2: successors: %bb.3, %bb.5 Bcc %bb.5, 1, $cpsr bb.3: successors: %bb.5 B %bb.5 bb.4: successors: bb.5: successors: %bb.1, %bb.6 Bcc %bb.1, 1, $cpsr bb.6: BX_RET 14, _ ... # IfConversion.cpp/canFallThroughTo thought there was a fallthrough from # bb.4 to bb5 even if the successor list was empty. # bb.4 is empty, so it surely looks like it can fallthrough, but this is what # happens for a bb just containing an "unreachable". #CHECK: body: | #CHECK: bb.0: #CHECK: successors: %bb.1 #CHECK: bb.1: #CHECK: successors: %bb.3({{.*}}), %bb.2 # The original brr_cond from bb.1, jumping to the empty bb #CHECK: Bcc %bb.2 #CHECK: B %bb.3 # Empty bb.2, originally containing "unreachable" and thus has no successors # and we cannot guess them: we should print an empty list of successors. #CHECK: bb.2: #CHECK: successors:{{ *$}} #CHECK: bb.3: #CHECK: successors: %bb.1 # Conditional BX_RET and then loop back to bb.1 #CHECK: BX_RET 0 #CHECK: B %bb.1