================
@@ -126,6 +126,24 @@ template <typename T> constexpr vector<T, 4> lit_impl(T 
NDotL, T NDotH, T M) {
   return Result;
 }
 
+template <typename T> constexpr T faceforward_impl(T N, T I, T Ng) {
----------------
farzonl wrote:

So in cases like length and distance I know why we had a scalar and vector 
version of the implementation function. 
In those two cases the return type was different than the argument types. In 
other cases like reflect it also made sense to do two seperate functions 
because the scalar case did not call the spirv builtin. In this case the return 
and argument types are the same and both the vector ans scalar cases call the 
spirv builtin so why do we need two seperate templatized functions?

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

Reply via email to