@@ -144,23 +144,32 @@ struct WPQuantBPipelineAgBgCrV2 : public WeightPreshufflePipelineAGmemBGmemCRegV
144144 // Insert LDS read/write groups periodically based on ds_rep.
145145 // The % pattern staggers READ and WRITE so they don't collapse
146146 // into the same cycle in the model.
147- if constexpr (ds_rep > 0 && i_inst % ds_rep == 0 )
147+ if constexpr (ds_rep > 0 )
148148 {
149- __builtin_amdgcn_sched_group_barrier (
150- LLVMSchedGroupMask::DS_READ , 1 , 0 ); // DS read
149+ if ( i_inst % ds_rep == 0 )
150+ {
151+ __builtin_amdgcn_sched_group_barrier (
152+ LLVMSchedGroupMask::DS_READ , 1 , 0 ); // DS read
153+ }
151154 }
152- if constexpr (ds_rep > 0 && i_inst % ds_rep == 1 )
155+ if constexpr (ds_rep > 0 )
153156 {
154- __builtin_amdgcn_sched_group_barrier (
155- LLVMSchedGroupMask::DS_WRITE , 1 , 0 ); // DS write
157+ if (i_inst % ds_rep == 1 )
158+ {
159+ __builtin_amdgcn_sched_group_barrier (
160+ LLVMSchedGroupMask::DS_WRITE , 1 , 0 ); // DS write
161+ }
156162 }
157163
158- if constexpr (buffer_load_rep > 0 && i_inst % buffer_load_rep == 0 )
164+ if constexpr (buffer_load_rep > 0 )
159165 {
160- if constexpr (ds_write_inst > 0 )
166+ if (i_inst % buffer_load_rep == 0 )
161167 {
162- __builtin_amdgcn_sched_group_barrier (
163- LLVMSchedGroupMask::VMEM_READ , 1 , 0 ); // VMEM read
168+ if constexpr (ds_write_inst > 0 )
169+ {
170+ __builtin_amdgcn_sched_group_barrier (
171+ LLVMSchedGroupMask::VMEM_READ , 1 , 0 ); // VMEM read
172+ }
164173 }
165174 }
166175 // Always mark some VALU work in the loop to reflect auxiliary scalar
0 commit comments