97 lines
3.1 KiB
YAML
97 lines
3.1 KiB
YAML
# REQUIRES: aarch64-registered-target
|
|
# FIXME: Fails with -abort-on-invalid-reduction
|
|
# RUN: llvm-reduce -simplify-mir --delta-passes=instructions -mtriple=aarch64-- --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2> %t.log
|
|
# RUN: FileCheck --match-full-lines --check-prefix=RESULT %s < %t
|
|
|
|
# Check that jump table info is preserved through cloning
|
|
|
|
# CHECK-INTERESTINGNESS: MOVi32imm
|
|
|
|
# RESULT: jumpTable:
|
|
# RESULT-NEXT: kind: label-difference32
|
|
# RESULT-NEXT: entries:
|
|
# RESULT-NEXT: - id: 0
|
|
# RESULT-NEXT: blocks: [ '%bb.9', '%bb.5', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.6', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.7', '%bb.2',
|
|
# RESULT-NEXT: '%bb.2', '%bb.2', '%bb.2', '%bb.7' ]
|
|
|
|
---
|
|
name: widget
|
|
tracksRegLiveness: true
|
|
jumpTable:
|
|
kind: label-difference32
|
|
entries:
|
|
- id: 0
|
|
blocks: [ '%bb.9', '%bb.5', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.6', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.2', '%bb.7', '%bb.2',
|
|
'%bb.2', '%bb.2', '%bb.2', '%bb.7' ]
|
|
body: |
|
|
bb.0:
|
|
liveins: $w0, $w1, $x2, $x3, $x4, $w5, $w6
|
|
|
|
%0:gpr32 = COPY $w6
|
|
%1:gpr32 = COPY $w5
|
|
%2:gpr64common = COPY $x4
|
|
%3:gpr64 = COPY $x3
|
|
%4:gpr64common = COPY $x2
|
|
%5:gpr32common = COPY $w1
|
|
%6:gpr32 = COPY $w0
|
|
undef %7.sub_32:gpr64 = ORRWrs $wzr, %5, 0, implicit-def %7
|
|
%8:gpr64common = MOVaddrJT target-flags(aarch64-page) %jump-table.0, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0
|
|
%9:gpr32 = MOVi32imm 1
|
|
undef %10.sub_32:gpr64 = IMPLICIT_DEF
|
|
|
|
bb.1:
|
|
|
|
bb.2:
|
|
successors: %bb.3(0x0fbefbf0), %bb.4(0x70410410)
|
|
|
|
dead $wzr = SUBSWri %5, 39, 0, implicit-def $nzcv
|
|
Bcc 8, %bb.3, implicit killed $nzcv
|
|
B %bb.4
|
|
|
|
bb.3:
|
|
successors: %bb.11(0x00000000), %bb.2(0x80000000)
|
|
|
|
dead $wzr = SUBSWri %5, 64, 0, implicit-def $nzcv
|
|
Bcc 0, %bb.11, implicit killed $nzcv
|
|
B %bb.2
|
|
|
|
bb.4:
|
|
successors: %bb.9(0x01288b01), %bb.5(0x01288b01), %bb.2(0x11f46a91), %bb.6(0x23e8d524), %bb.7(0x47d1aa49)
|
|
|
|
early-clobber %11:gpr64, dead early-clobber %12:gpr64sp = JumpTableDest32 %8, %7, %jump-table.0
|
|
JUMP_TABLE_DEBUG_INFO 0
|
|
BR %11
|
|
|
|
bb.5:
|
|
B %bb.8
|
|
|
|
bb.6:
|
|
B %bb.2
|
|
|
|
bb.7:
|
|
B %bb.2
|
|
|
|
bb.8:
|
|
B %bb.8
|
|
|
|
bb.9:
|
|
TBZW %0, 0, %bb.1
|
|
B %bb.10
|
|
|
|
bb.10:
|
|
B %bb.1
|
|
|
|
bb.11:
|
|
BRK 1
|
|
|
|
...
|