mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
5ca377e901
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.
66 lines
1.3 KiB
YAML
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
|
|
|