1 # RUN: llc -mtriple=x86_64-- -o - %s -run-pass=none -verify-machineinstrs -simplify-mir | FileCheck %s
3 # We shouldn't need any explicit successor lists in these examples
4 # CHECK-LABEL: name: func0
6 # CHECK-NOT: successors
7 # CHECK: JCC_1 %bb.1, 4, implicit undef $eflags
10 # CHECK-NOT: successors
12 # CHECK-NOT: successors
13 # CHECK: JCC_1 %bb.1, 4, implicit undef $eflags
15 # CHECK: RETQ undef $eax
19 JCC_1 %bb.1, 4, implicit undef $eflags
25 JCC_1 %bb.1, 4, implicit undef $eflags
28 JCC_1 %bb.4, 4, implicit undef $eflags ; condjump+fallthrough to same block
34 # Some cases that need explicit successors:
35 # CHECK-LABEL: name: func1
40 ; CHECK: successors: %bb.3, %bb.1
41 successors: %bb.3, %bb.1 ; different order than operands
42 JCC_1 %bb.1, 4, implicit undef $eflags
47 ; CHECK: successors: %bb.2, %bb.1
48 successors: %bb.2, %bb.1 ; different order (fallthrough variant)
49 JCC_1 %bb.1, 4, implicit undef $eflags
53 ; CHECK: successors: %bb.1(0x60000000), %bb.3(0x20000000)
54 successors: %bb.1(3), %bb.3(1) ; branch probabilities not normalized
55 JCC_1 %bb.1, 4, implicit undef $eflags
59 ; CHECK: RETQ undef $eax