62 lines · plain
1# RUN: llc -mtriple=x86_64-- -o - %s -run-pass=none -verify-machineinstrs -simplify-mir | FileCheck %s2---3# We shouldn't need any explicit successor lists in these examples4# CHECK-LABEL: name: func05# CHECK: bb.0:6# CHECK-NOT: successors7# CHECK: JCC_1 %bb.1, 4, implicit undef $eflags8# CHECK: JMP_1 %bb.39# CHECK: bb.1:10# CHECK-NOT: successors11# CHECK: bb.2:12# CHECK-NOT: successors13# CHECK: JCC_1 %bb.1, 4, implicit undef $eflags14# CHECK: bb.3:15# CHECK: RET64 undef $eax16name: func017body: |18 bb.0:19 JCC_1 %bb.1, 4, implicit undef $eflags20 JMP_1 %bb.321 22 bb.1:23 24 bb.2:25 JCC_1 %bb.1, 4, implicit undef $eflags26 27 bb.3:28 JCC_1 %bb.4, 4, implicit undef $eflags ; condjump+fallthrough to same block29 30 bb.4:31 RET64 undef $eax32...33---34# Some cases that need explicit successors:35# CHECK-LABEL: name: func136name: func137body: |38 bb.0:39 ; CHECK: bb.0:40 ; CHECK: successors: %bb.3, %bb.141 successors: %bb.3, %bb.1 ; different order than operands42 JCC_1 %bb.1, 4, implicit undef $eflags43 JMP_1 %bb.344 45 bb.1:46 ; CHECK: bb.1:47 ; CHECK: successors: %bb.2, %bb.148 successors: %bb.2, %bb.1 ; different order (fallthrough variant)49 JCC_1 %bb.1, 4, implicit undef $eflags50 51 bb.2:52 ; CHECK: bb.2:53 ; CHECK: successors: %bb.1(0x60000000), %bb.3(0x20000000)54 successors: %bb.1(3), %bb.3(1) ; branch probabilities not normalized55 JCC_1 %bb.1, 4, implicit undef $eflags56 57 bb.3:58 ; CHECK: bb.3:59 ; CHECK: RET64 undef $eax60 RET64 undef $eax61...62