================
@@ -33,6 +41,23 @@ constexpr enable_if_t<sizeof(U) == sizeof(T), U> bit_cast(T 
F) {
   return __builtin_bit_cast(U, F);
 }
 
+template <typename T>
+constexpr enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
+length_impl(T X) {
+  return __builtin_elementwise_abs(X);
+}
+
+template <typename T, int N>
+enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
+length_vec_impl(vector<T, N> X) {
+  vector<T, N> XSquared = X * X;
+  T XSquaredSum = XSquared[0];
+  [unroll]
+  for (int i = 1; i < N; ++i)
----------------
farzonl wrote:

The way we have done HLSL language modes in 
`clang/include/clang/Basic/LangStandards.def` makes it seem like 202x and older 
language modes will always be C++11? Is that the wrong way of thinking about 
it? Will there be a day we change all language modes to C++14?

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

Reply via email to