================
@@ -295,6 +295,15 @@ def IMad : DXILOpMapping<48, tertiary, int_dx_imad,
                          "Signed integer arithmetic multiply/add operation. 
imad(m,a,b) = m * a + b.">;
 def UMad : DXILOpMapping<49, tertiary, int_dx_umad,
                          "Unsigned integer arithmetic multiply/add operation. 
umad(m,a,b) = m * a + b.">;
+def Dot2 : DXILOpMapping<54, dot2, int_dx_dot2,
+                         "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 1",
+                         
[llvm_halforfloat_ty,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>]>;
+def Dot3 : DXILOpMapping<55, dot3, int_dx_dot3,
+                         "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 2",
+                         
[llvm_halforfloat_ty,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>]>;
+def Dot4 : DXILOpMapping<56, dot4, int_dx_dot4,
+                         "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 3",
+                         
[llvm_halforfloat_ty,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>,LLVMMatchType<0>]>;
----------------
bharadwajy wrote:

```suggestion
let OpTypes = !listconcat([llvm_halforfloat_ty], 
!listsplat(llvm_halforfloat_ty, 4)) in
  def Dot2 : DXILOpMapping<54, dot2, int_dx_dot2,
                           "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 1">;

let OpTypes = !listconcat([llvm_halforfloat_ty], 
!listsplat(llvm_halforfloat_ty, 6)) in
  def Dot3 : DXILOpMapping<55, dot3, int_dx_dot3,
                           "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 2">;
let OpTypes = !listconcat([llvm_halforfloat_ty], 
!listsplat(llvm_halforfloat_ty, 8)) in
  def Dot4 : DXILOpMapping<56, dot4, int_dx_dot4,
                           "dot product of two float vectors Dot(a,b) = 
a[0]*b[0] + ... + a[n]*b[n] where n is between 0 and 3">;
```

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

Reply via email to