1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs -run-pass=si-i1-copies -o - %s | FileCheck %s 3 4# The strange block ordering visits the use before the def. 5--- 6name: inserted_cmp_operand_class_rpo 7tracksRegLiveness: true 8machineFunctionInfo: 9 isEntryFunction: true 10body: | 11 ; CHECK-LABEL: name: inserted_cmp_operand_class_rpo 12 ; CHECK: bb.0: 13 ; CHECK: successors: %bb.3(0x80000000) 14 ; CHECK: S_BRANCH %bb.3 15 ; CHECK: bb.1: 16 ; CHECK: successors: %bb.2(0x80000000) 17 ; CHECK: [[COPY:%[0-9]+]]:sreg_64 = COPY %1 18 ; CHECK: bb.2: 19 ; CHECK: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec 20 ; CHECK: [[COPY1:%[0-9]+]]:sreg_64_xexec = COPY [[COPY]] 21 ; CHECK: S_ENDPGM 0 22 ; CHECK: bb.3: 23 ; CHECK: successors: %bb.1(0x80000000) 24 ; CHECK: [[V_MOV_B32_e32_1:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec 25 ; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 0 26 ; CHECK: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U32_e64 killed [[V_MOV_B32_e32_1]], killed [[S_MOV_B32_]], implicit $exec 27 ; CHECK: [[COPY2:%[0-9]+]]:sreg_64 = COPY [[V_CMP_EQ_U32_e64_]] 28 ; CHECK: S_BRANCH %bb.1 29 bb.0: 30 successors: %bb.3 31 32 S_BRANCH %bb.3 33 34 bb.1: 35 successors: %bb.2 36 37 %0:vreg_1 = COPY %1 38 39 bb.2: 40 %2:vgpr_32 = V_MOV_B32_e32 0, implicit $exec 41 %3:sreg_64_xexec = COPY %0 42 S_ENDPGM 0 43 44 bb.3: 45 successors: %bb.1 46 47 %4:vgpr_32 = V_MOV_B32_e32 0, implicit $exec 48 %5:sreg_32_xm0 = S_MOV_B32 0 49 %6:sreg_64 = V_CMP_EQ_U32_e64 killed %4, killed %5, implicit $exec 50 %1:vreg_1 = COPY %6 51 S_BRANCH %bb.1 52