218 lines · plain
1# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs -start-after=amdgpu-insert-delay-alu %s -o - | FileCheck %s2 3---4name: valu_dep_15body: |6 bb.0:7 ; CHECK-LABEL: {{^}}valu_dep_1:8 ; CHECK: %bb.0:9 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v010 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_1)11 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v012 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec13 S_DELAY_ALU .id0_VALU_DEP_114 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec15...16 17---18name: valu_dep_219body: |20 bb.0:21 ; CHECK-LABEL: {{^}}valu_dep_2:22 ; CHECK: %bb.0:23 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v024 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v125 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_2)26 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v027 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec28 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec29 S_DELAY_ALU .id0_VALU_DEP_230 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec31...32 33---34name: valu_dep_335body: |36 bb.0:37 ; CHECK-LABEL: {{^}}valu_dep_3:38 ; CHECK: %bb.0:39 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v040 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v141 ; CHECK-NEXT: v_add_nc_u32_e32 v2, v2, v242 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_3)43 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v044 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec45 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec46 $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec47 S_DELAY_ALU .id0_VALU_DEP_348 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec49...50 51---52name: valu_dep_453body: |54 bb.0:55 ; CHECK-LABEL: {{^}}valu_dep_4:56 ; CHECK: %bb.0:57 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v058 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v159 ; CHECK-NEXT: v_add_nc_u32_e32 v2, v2, v260 ; CHECK-NEXT: v_add_nc_u32_e32 v3, v3, v361 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_4)62 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v063 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec64 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec65 $vgpr2 = V_ADD_U32_e32 $vgpr2, $vgpr2, implicit $exec66 $vgpr3 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec67 S_DELAY_ALU .id0_VALU_DEP_468 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec69...70 71---72name: trans32_dep_173body: |74 bb.0:75 ; CHECK-LABEL: {{^}}trans32_dep_1:76 ; CHECK: %bb.0:77 ; CHECK-NEXT: v_exp_f32_e32 v0, v078 ; CHECK-NEXT: s_delay_alu instid0(TRANS32_DEP_1)79 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v080 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode81 S_DELAY_ALU .id0_TRANS32_DEP_182 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec83...84 85---86name: trans32_dep_287body: |88 bb.0:89 ; CHECK-LABEL: {{^}}trans32_dep_2:90 ; CHECK: %bb.0:91 ; CHECK-NEXT: v_exp_f32_e32 v0, v092 ; CHECK-NEXT: v_exp_f32_e32 v1, v193 ; CHECK-NEXT: s_delay_alu instid0(TRANS32_DEP_2)94 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v095 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode96 $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode97 S_DELAY_ALU .id0_TRANS32_DEP_298 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec99...100 101---102name: trans32_dep_3103body: |104 bb.0:105 ; CHECK-LABEL: {{^}}trans32_dep_3:106 ; CHECK: %bb.0:107 ; CHECK-NEXT: v_exp_f32_e32 v0, v0108 ; CHECK-NEXT: v_exp_f32_e32 v1, v1109 ; CHECK-NEXT: v_exp_f32_e32 v2, v2110 ; CHECK-NEXT: s_delay_alu instid0(TRANS32_DEP_3)111 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0112 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode113 $vgpr1 = V_EXP_F32_e32 $vgpr1, implicit $exec, implicit $mode114 $vgpr2 = V_EXP_F32_e32 $vgpr2, implicit $exec, implicit $mode115 S_DELAY_ALU .id0_TRANS32_DEP_3116 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec117...118 119---120name: salu_cycle_1121body: |122 bb.0:123 ; CHECK-LABEL: {{^}}salu_cycle_1:124 ; CHECK: %bb.0:125 ; CHECK-NEXT: s_mov_b32 s0, 0126 ; CHECK-NEXT: s_delay_alu instid0(SALU_CYCLE_1)127 ; CHECK-NEXT: v_add_nc_u32_e32 v0, s0, v0128 $sgpr0 = S_MOV_B32 0129 S_DELAY_ALU .id0_SALU_CYCLE_1130 $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec131...132 133---134name: valu_dep_1_same_trans32_dep_1135body: |136 bb.0:137 ; CHECK-LABEL: {{^}}valu_dep_1_same_trans32_dep_1:138 ; CHECK: %bb.0:139 ; CHECK-NEXT: v_exp_f32_e32 v0, v0140 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v1141 ; CHECK-NEXT: s_delay_alu instid0(TRANS32_DEP_1) | instid1(VALU_DEP_1)142 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v1143 $vgpr0 = V_EXP_F32_e32 $vgpr0, implicit $exec, implicit $mode144 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec145 S_DELAY_ALU .id0_TRANS32_DEP_1_skip_SAME_id1_VALU_DEP_1146 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec147...148 149---150name: valu_dep_1_same_salu_cycle_1151body: |152 bb.0:153 ; CHECK-LABEL: {{^}}valu_dep_1_same_salu_cycle_1:154 ; CHECK: %bb.0:155 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0156 ; CHECK-NEXT: s_mov_b32 s0, 0157 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1)158 ; CHECK-NEXT: v_add_nc_u32_e32 v0, s0, v0159 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec160 $sgpr0 = S_MOV_B32 0161 S_DELAY_ALU .id0_VALU_DEP_1_skip_SAME_id1_SALU_CYCLE_1162 $vgpr0 = V_ADD_U32_e32 $sgpr0, $vgpr0, implicit $exec163...164 165---166name: valu_dep_1_next_valu_dep_1167body: |168 bb.0:169 ; CHECK-LABEL: {{^}}valu_dep_1_next_valu_dep_1:170 ; CHECK: %bb.0:171 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0172 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)173 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0174 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0175 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec176 S_DELAY_ALU .id0_VALU_DEP_1_skip_NEXT_id1_VALU_DEP_1177 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec178 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec179...180 181---182name: valu_dep_2_next_valu_dep_2183body: |184 bb.0:185 ; CHECK-LABEL: {{^}}valu_dep_2_next_valu_dep_2:186 ; CHECK: %bb.0:187 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0188 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v1189 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)190 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0191 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v1192 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec193 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec194 S_DELAY_ALU .id0_VALU_DEP_2_skip_NEXT_id1_VALU_DEP_2195 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec196 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec197...198 199---200name: valu_dep_2_skip_valu_dep_2201body: |202 bb.0:203 ; CHECK-LABEL: {{^}}valu_dep_2_skip_valu_dep_2204 ; CHECK: %bb.0:205 ; CHECK-NEXT: v_add_nc_u32_e32 v0, v0, v0206 ; CHECK-NEXT: v_add_nc_u32_e32 v2, v1, v1207 ; CHECK-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2)208 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v0, v1209 ; CHECK-NEXT: v_add_nc_u32_e32 v4, v3, v3210 ; CHECK-NEXT: v_add_nc_u32_e32 v1, v1, v1211 $vgpr0 = V_ADD_U32_e32 $vgpr0, $vgpr0, implicit $exec212 $vgpr2 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec213 S_DELAY_ALU .id0_VALU_DEP_2_skip_SKIP_1_id1_VALU_DEP_2214 $vgpr1 = V_ADD_U32_e32 $vgpr0, $vgpr1, implicit $exec215 $vgpr4 = V_ADD_U32_e32 $vgpr3, $vgpr3, implicit $exec216 $vgpr1 = V_ADD_U32_e32 $vgpr1, $vgpr1, implicit $exec217...218