| # 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 |
| |
| ... |