andykaylor wrote: @Priyanshu3820 I see what's going on now. There is a tablegen-based mechanism for handling certain target-specific builtins that always get lowered to target-specific intrinsic calls. This is implemented in the incubator here: https://github.com/llvm/clangir/blob/d4ebb05f347d8d9d62968676d5b2bbc1338de499/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp#L2885 and in classic codegen here: https://github.com/llvm/llvm-project/blob/674b020196060f8f5fdce5961fe3b69d7009a11d/clang/lib/CodeGen/CGBuiltin.cpp#L6462
A very important part of this is that it calls `Intrinsic::getIntrinsicForClangBuiltin(Prefix.data(), Name);` to get the ID of the intrinsic to call. The implementation of this function is provided by table-generated code based on definitions in `llvm/include/llvm/IR/Intrinsics*/td`. We do need this to be upstreamed for CIR, but it should be based closely on the existing implementation. https://github.com/llvm/llvm-project/pull/177639 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
