194 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -run-pass=amdgpu-insert-delay-alu %s -o - | FileCheck %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -passes=amdgpu-insert-delay-alu %s -o - | FileCheck %s4 5---6name: valu_dep_17body: |8 bb.0:9 ; CHECK-LABEL: name: valu_dep_110 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec11 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_112 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec13 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec14 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec15...16 17---18name: valu_dep_219body: |20 bb.0:21 ; CHECK-LABEL: name: valu_dep_222 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec23 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec24 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_225 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec26 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec27 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec28 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec29...30 31---32name: valu_dep_333body: |34 bb.0:35 ; CHECK-LABEL: name: valu_dep_336 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec37 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec38 ; CHECK-NEXT: $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec39 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_340 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec41 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec42 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec43 $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec44 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec45...46 47---48name: valu_dep_449body: |50 bb.0:51 ; CHECK-LABEL: name: valu_dep_452 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec53 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec54 ; CHECK-NEXT: $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec55 ; CHECK-NEXT: $vgpr3 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec56 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_457 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec58 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec59 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec60 $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec61 $vgpr3 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec62 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec63...64 65---66name: trans32_dep_167body: |68 bb.0:69 ; CHECK-LABEL: name: trans32_dep_170 ; CHECK: $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode71 ; CHECK-NEXT: S_DELAY_ALU .id0_TRANS32_DEP_172 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec73 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode74 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec75...76 77---78name: trans32_dep_279body: |80 bb.0:81 ; CHECK-LABEL: name: trans32_dep_282 ; CHECK: $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode83 ; CHECK-NEXT: $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode84 ; CHECK-NEXT: S_DELAY_ALU .id0_TRANS32_DEP_285 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec86 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode87 $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode88 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec89...90 91---92name: trans32_dep_393body: |94 bb.0:95 ; CHECK-LABEL: name: trans32_dep_396 ; CHECK: $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode97 ; CHECK-NEXT: $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode98 ; CHECK-NEXT: $vgpr2 = V_EXP_F32_e32 $vgpr2, implicit $exec, implicit $mode99 ; CHECK-NEXT: S_DELAY_ALU .id0_TRANS32_DEP_3100 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec101 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode102 $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode103 $vgpr2 = V_EXP_F32_e32 $vgpr2, implicit $exec, implicit $mode104 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec105...106 107---108name: salu_cycle_1109body: |110 bb.0:111 ; CHECK-LABEL: name: salu_cycle_1112 ; CHECK: $sgpr0 = S_MOV_B32 0113 ; CHECK-NEXT: S_DELAY_ALU .id0_SALU_CYCLE_1114 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec115 $sgpr0 = S_MOV_B32 0116 $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec117...118 119---120name: valu_dep_1_same_trans32_dep_1121body: |122 bb.0:123 ; CHECK-LABEL: name: valu_dep_1_same_trans32_dep_1124 ; CHECK: $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode125 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec126 ; CHECK-NEXT: S_DELAY_ALU .id0_TRANS32_DEP_1_skip_SAME_id1_VALU_DEP_1127 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec128 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode129 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec130 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec131...132 133---134name: valu_dep_1_same_salu_cycle_1135body: |136 bb.0:137 ; CHECK-LABEL: name: valu_dep_1_same_salu_cycle_1138 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec139 ; CHECK-NEXT: $sgpr0 = S_MOV_B32 0140 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_1_skip_SAME_id1_SALU_CYCLE_1141 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec142 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec143 $sgpr0 = S_MOV_B32 0144 $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec145...146 147---148name: valu_dep_1_next_valu_dep_1149body: |150 bb.0:151 ; CHECK-LABEL: name: valu_dep_1_next_valu_dep_1152 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec153 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_1_skip_NEXT_id1_VALU_DEP_1154 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec155 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec156 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec157 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec158 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec159...160 161---162name: valu_dep_2_next_valu_dep_2163body: |164 bb.0:165 ; CHECK-LABEL: name: valu_dep_2_next_valu_dep_2166 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec167 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec168 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_2_skip_NEXT_id1_VALU_DEP_2169 ; CHECK-NEXT: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec170 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec171 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec172 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec173 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec174 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec175...176 177---178name: valu_dep_2_skip_valu_dep_2179body: |180 bb.0:181 ; CHECK-LABEL: name: valu_dep_2_skip_valu_dep_2182 ; CHECK: $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec183 ; CHECK-NEXT: $vgpr2 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec184 ; CHECK-NEXT: S_DELAY_ALU .id0_VALU_DEP_2_skip_SKIP_1_id1_VALU_DEP_2185 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec186 ; CHECK-NEXT: $vgpr4 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec187 ; CHECK-NEXT: $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec188 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec189 $vgpr2 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec190 $vgpr1 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec191 $vgpr4 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec192 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec193...194