62 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=early-tailduplication -verify-machineinstrs -o - %s | FileCheck %s3# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -passes=early-tailduplication -o - %s | FileCheck %s4 5# Early tail duplication should not merge bb.6 into bb.5, adding a6# non-terminator (S_SLEEP) after the terminator S_MOV_B32_term.7 8---9name: tail_duplicate_terminator10tracksRegLiveness: true11body: |12 ; CHECK-LABEL: name: tail_duplicate_terminator13 ; CHECK: bb.0:14 ; CHECK-NEXT: successors: %bb.2(0x80000000)15 ; CHECK-NEXT: {{ $}}16 ; CHECK-NEXT: S_BRANCH %bb.217 ; CHECK-NEXT: {{ $}}18 ; CHECK-NEXT: bb.1:19 ; CHECK-NEXT: successors: %bb.2(0x80000000)20 ; CHECK-NEXT: {{ $}}21 ; CHECK-NEXT: S_SLEEP 122 ; CHECK-NEXT: {{ $}}23 ; CHECK-NEXT: bb.2:24 ; CHECK-NEXT: successors: %bb.3(0x80000000)25 ; CHECK-NEXT: {{ $}}26 ; CHECK-NEXT: [[S_MOV_B32_term:%[0-9]+]]:sreg_32_xm0_xexec = S_MOV_B32_term $exec_lo27 ; CHECK-NEXT: {{ $}}28 ; CHECK-NEXT: bb.3:29 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000)30 ; CHECK-NEXT: {{ $}}31 ; CHECK-NEXT: SI_WATERFALL_LOOP %bb.3, implicit $exec32 ; CHECK-NEXT: {{ $}}33 ; CHECK-NEXT: bb.4:34 ; CHECK-NEXT: successors: %bb.5(0x80000000)35 ; CHECK-NEXT: {{ $}}36 ; CHECK-NEXT: $exec_lo = S_MOV_B32_term [[S_MOV_B32_term]]37 ; CHECK-NEXT: {{ $}}38 ; CHECK-NEXT: bb.5:39 ; CHECK-NEXT: successors: %bb.1(0x80000000)40 ; CHECK-NEXT: {{ $}}41 ; CHECK-NEXT: S_SLEEP 242 ; CHECK-NEXT: S_BRANCH %bb.143 bb.1:44 S_BRANCH %bb.345 46 bb.2:47 S_SLEEP 148 49 bb.3:50 %0:sreg_32_xm0_xexec = S_MOV_B32_term $exec_lo51 52 bb.4:53 SI_WATERFALL_LOOP %bb.4, implicit $exec54 55 bb.5:56 $exec_lo = S_MOV_B32_term %057 58 bb.6:59 S_SLEEP 260 S_BRANCH %bb.261...62