[clang] [llvm] Adding splitdouble HLSL function (PR #109331)

Farzon Lotfi via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 27 20:06:00 PDT 2024


================
@@ -85,4 +85,9 @@ def int_dx_rsqrt  : DefaultAttrsIntrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>]
 def int_dx_wave_is_first_lane : DefaultAttrsIntrinsic<[llvm_i1_ty], [], [IntrConvergent]>;
 def int_dx_sign : DefaultAttrsIntrinsic<[LLVMScalarOrSameVectorWidth<0, llvm_i32_ty>], [llvm_any_ty], [IntrNoMem]>;
 def int_dx_step : DefaultAttrsIntrinsic<[LLVMMatchType<0>], [llvm_anyfloat_ty, LLVMMatchType<0>], [IntrNoMem]>;
+
+def int_dx_splitdouble : DefaultAttrsIntrinsic<
+    [llvm_anyvector_ty], 
----------------
farzonl wrote:

This just changes it from a pair return of two scalar ints to a vector<int,2>. It still making the intrinsic scalar which is requiring you to extract element `CGBuiltin.cpp`
Any reason we can't do:
```suggestion
    [llvm_anyvector_ty, LLVMMatchType<0>], 
```

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


More information about the llvm-commits mailing list