brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · ef9ed5c Raw
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