[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / ARM / ifcvt_canFallThroughTo.mir
blob99e82e7c0fe9ab33441b3b5a67c241198e6bbeeb
1 # RUN: llc -mtriple=arm-apple-ios -o - %s -run-pass if-converter | FileCheck %s
2 ---
3 name:            f1
4 body:             |
5   bb.0:
6     successors: %bb.1
8     B %bb.1
10   bb.1:
11     successors: %bb.2, %bb.4
13     Bcc %bb.4, 1, $cpsr
15   bb.2:
16     successors: %bb.3, %bb.5
18     Bcc %bb.5, 1, $cpsr
20   bb.3:
21     successors: %bb.5
23     B %bb.5
25   bb.4:
26     successors:
28   bb.5:
29     successors: %bb.1, %bb.6
31     Bcc %bb.1, 1, $cpsr
33   bb.6:
34     BX_RET 14, _
36 ...
38 # IfConversion.cpp/canFallThroughTo thought there was a fallthrough from
39 # bb.4 to bb5 even if the successor list was empty.
40 # bb.4 is empty, so it surely looks like it can fallthrough, but this is what
41 # happens for a bb just containing an "unreachable".
43 #CHECK: body:             |
44 #CHECK:   bb.0:
45 #CHECK:     successors: %bb.1
47 #CHECK:   bb.1:
48 #CHECK:     successors: %bb.3({{.*}}), %bb.2
50 # The original brr_cond from bb.1, jumping to the empty bb
51 #CHECK:     Bcc %bb.2
52 #CHECK:     B %bb.3
54 # Empty bb.2, originally containing "unreachable" and thus has no successors
55 # and we cannot guess them: we should print an empty list of successors.
56 #CHECK:   bb.2:
57 #CHECK: successors:{{ *$}}
59 #CHECK:   bb.3:
60 #CHECK:     successors: %bb.1
62 # Conditional BX_RET and then loop back to bb.1
63 #CHECK:     BX_RET 0
64 #CHECK:     B %bb.1