[clang] [HLSL][SPIRV] Add vk::constant_id attribute. (PR #143544)

Steven Perron via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 11 07:56:01 PDT 2025


================
@@ -774,6 +775,77 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
     return EmitRuntimeCall(
         Intrinsic::getOrInsertDeclaration(&CGM.getModule(), ID));
   }
+  case Builtin::BI__builtin_get_spirv_spec_constant_bool:
+  case Builtin::BI__builtin_get_spirv_spec_constant_short:
+  case Builtin::BI__builtin_get_spirv_spec_constant_ushort:
+  case Builtin::BI__builtin_get_spirv_spec_constant_int:
+  case Builtin::BI__builtin_get_spirv_spec_constant_uint:
+  case Builtin::BI__builtin_get_spirv_spec_constant_longlong:
+  case Builtin::BI__builtin_get_spirv_spec_constant_ulonglong:
+  case Builtin::BI__builtin_get_spirv_spec_constant_half:
+  case Builtin::BI__builtin_get_spirv_spec_constant_float:
+  case Builtin::BI__builtin_get_spirv_spec_constant_double: {
----------------
s-perron wrote:

Maybe, but I like this method because it becomes impossible to create calls to the builtin with invalid types. wave_read_lane_at is defined with a prototype: `void(...)`. I believe we can add type checking in other places, but I feel this is more robust.

https://github.com/llvm/llvm-project/pull/143544


More information about the cfe-commits mailing list