1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/CodeGen/ARM/ifcvt_canFallThroughTo.mir
David Green 5ca377e901 [ARM] Update ifcvt test target triples and opcodes. NFC
Some of the instructions in these tests were technically invalid
combinations (using ARM opcodes in Thumb mode, for example). Update the
targets and the instructions used to be more correct.
2020-01-02 14:18:54 +00:00

66 lines
1.3 KiB
YAML

# 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