================
@@ -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,
----------------
spall wrote:

I'm a bit confused on if this is meant to handle scalar values as well as 
vectors? Looking at the code gen, we are asserting that the first two arguments 
are vectors, but here we allow them to be scalars.  @farzonl Does this handle 
only the case where the first two arguments are vectors?   

If that is the case 'CheckFloatOrHalfRepresentation' should be updated to only 
check for vectors of half or float and should probably be renamed to 
'CheckFloatOrHalfVecRepresentation'.

https://github.com/llvm/llvm-project/pull/147342
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to