intel / intel-graphics-compiler

Other
596 stars 155 forks source link

intel_sub_group_shuffle #286

Closed MaximMilashchenko closed 1 year ago

MaximMilashchenko commented 1 year ago

I was looking into the implementation of the intel_sub_group_shuffle function and came across the builtin_IB_simd_shuffle function. I found the function definition in /intel/intel-graphics-compiler/blob/master/IGC/BiFModule/Implementation/IGCBiF_Intrinsics.cl. Where can I find an implementation of the builtin_IB_simd_shuffle function?

mnaczk commented 1 year ago

Hi, __builtin_IB_simd_shuffle is 'resolved' to GenISAIntrinsic::GenISA_WaveShuffleIndex in https://github.com/intel/intel-graphics-compiler/blob/dcbc878f9f29bcaea4cd70132601c148a333c5e4/IGC/Compiler/Optimizer/OpenCLPasses/SubGroupFuncs/SubGroupFuncsResolution.cpp#L37 and https://github.com/intel/intel-graphics-compiler/blob/dcbc878f9f29bcaea4cd70132601c148a333c5e4/IGC/Compiler/Optimizer/OpenCLPasses/SubGroupFuncs/SubGroupFuncsResolution.cpp#L600

The implementation of GenISAIntrinsic::GenISA_WaveShuffleIndex can be found in EmitVISAPass.cpp https://github.com/intel/intel-graphics-compiler/blob/dcbc878f9f29bcaea4cd70132601c148a333c5e4/IGC/Compiler/CISACodeGen/EmitVISAPass.cpp#L4657

Please close the issue if this is the answer to your question.