@@ -1131,45 +1131,32 @@ WIAnalysis::WIDependancy WIAnalysisRunner::calculate_dep(const CallInst* inst)
11311131 return WIAnalysis::UNIFORM;
11321132 }
11331133
1134- if (m_CGCtx-> platform . HasUniformSubGroupIntrinsic () )
1134+ if (intrinsic_name == llvm_waveShuffleIndex )
11351135 {
1136- if (intrinsic_name == llvm_waveShuffleIndex)
1137- {
1138- Value* op0 = inst->getArgOperand (0 );
1139- Value* op1 = inst->getArgOperand (1 );
1140- if (WIAnalysis::UNIFORM == getDependency (op0) ||
1141- WIAnalysis::UNIFORM == getDependency (op1))
1142- {
1143- return WIAnalysis::UNIFORM;
1144- }
1145- }
1146-
1147- if (intrinsic_name == llvm_waveBallot || intrinsic_name == llvm_waveAll)
1136+ Value* op0 = inst->getArgOperand (0 );
1137+ Value* op1 = inst->getArgOperand (1 );
1138+ if (WIAnalysis::UNIFORM == getDependency (op0) ||
1139+ WIAnalysis::UNIFORM == getDependency (op1))
11481140 {
11491141 return WIAnalysis::UNIFORM;
11501142 }
1143+ }
11511144
1152- if (intrinsic_name == llvm_waveClustered)
1153- {
1154- const unsigned clusterSize = static_cast <unsigned >(
1155- cast<llvm::ConstantInt>(inst->getArgOperand (2 ))->getZExtValue ());
1156-
1157- constexpr unsigned maxSimdSize = 32 ;
1158- if (clusterSize == maxSimdSize)
1159- {
1160- // TODO: do the same for SIMD8 and SIMD16 if possible.
1161- return WIAnalysis::UNIFORM;
1162- }
1163- }
1145+ if (intrinsic_name == llvm_waveBallot || intrinsic_name == llvm_waveAll)
1146+ {
1147+ return WIAnalysis::UNIFORM;
11641148 }
1165- else
1149+
1150+ if (intrinsic_name == llvm_waveClustered)
11661151 {
1167- if (GII_id == GenISAIntrinsic::GenISA_getSR0 ||
1168- GII_id == GenISAIntrinsic::GenISA_eu_id ||
1169- GII_id == GenISAIntrinsic::GenISA_eu_thread_id)
1152+ const unsigned clusterSize = static_cast <unsigned >(
1153+ cast<llvm::ConstantInt>(inst->getArgOperand (2 ))->getZExtValue ());
1154+
1155+ constexpr unsigned maxSimdSize = 32 ;
1156+ if (clusterSize == maxSimdSize)
11701157 {
1171- // do not assume these per-thread values are globally uniform
1172- return WIAnalysis::RANDOM ;
1158+ // TODO: do the same for SIMD8 and SIMD16 if possible.
1159+ return WIAnalysis::UNIFORM ;
11731160 }
11741161 }
11751162
0 commit comments