You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ignore rounding mode in int-to-int conversion builtins
Clang and SPIRV-Translator support integer-to-integer conversions
with a provided rounding mode. Before LLVM 16, these cases were ignored by
SPIRV-Translator, but with LLVM 16, IGC can receive builtins
with a rounding mode for int-to-int conversions. For these conversions,
we do not need to take the rounding mode into account and can handle them
as default conversion builtins. To address this, we need to investigate
these functions and strip the rounding mode from the function name.
This also requires updating the length field in the builtin name.
In the end, we should replace the old functions with the new ones.
Clang: https://clang.llvm.org/doxygen/opencl-c_8h_source.html
SPIRV-Translator: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/blob/main/lib/SPIRV/runtime/OpenCL/inc/spirv_convert.h
Backport to 16 in SPIRV-Translator: KhronosGroup/SPIRV-LLVM-Translator#3154
Example of handling conversion by the code below:
Before:
declare spir_func i8 @_Z30__spirv_SConvert_Rchar_sat_rtei(i32)
After:
declare spir_func i8 @_Z26__spirv_SConvert_Rchar_sati(i32)
0 commit comments