[clang] [llvm] [HLSL][DXIL] Implement `refract` intrinsic (PR #147342)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 9 11:22:23 PDT 2025


================
@@ -235,6 +288,30 @@ bool SemaSPIRV::CheckSPIRVBuiltinFunctionCall(const TargetInfo &TI,
     TheCall->setType(RetTy);
     break;
   }
+  case SPIRV::BI__builtin_spirv_refract: {
+    if (SemaRef.checkArgCount(TheCall, 3))
+      return true;
+
+    llvm::function_ref<bool(Sema *, SourceLocation, int, QualType)>
+        ChecksArr[] = {CheckFloatOrHalfRepresentation,
----------------
farzonl wrote:

I’ll review this tomorrow, but supporting scalars here seems wrong. I’m almost 100% sure that spirv only supports vectors and that our semantics should match that.

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


More information about the llvm-commits mailing list