You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix translation of IR from source when dot function is called
with integer arguments (ints, vectors of chars or shorts)
to properly support cl_khr_integer_dot_product extension.
Previously it translated calls such as dot(uchar4, uchar4) into
OpDot %i8, which is wrong because OpDot only operates on
floating point types.
define spir_kernel void@test1(<4 x i8> %ia, <4 x i8> %ua, <4 x i8> %ib, <4 x i8> %ub, <4 x i8> %ires, <4 x i8> %ures) local_unnamed_addr #0!kernel_arg_addr_space!3!kernel_arg_access_qual!4!kernel_arg_type!5!kernel_arg_base_type!6!kernel_arg_type_qual!7 {
33
+
entry:
34
+
%call = tailcall spir_func i32@_Z3dotDv4_cS_(<4 x i8> %ia, <4 x i8> %ib) #2
35
+
%call1 = tailcall spir_func i32@_Z3dotDv4_cDv4_h(<4 x i8> %ia, <4 x i8> %ub) #2
36
+
%call2 = tailcall spir_func i32@_Z3dotDv4_hDv4_c(<4 x i8> %ua, <4 x i8> %ib) #2
37
+
%call3 = tailcall spir_func i32@_Z3dotDv4_hS_(<4 x i8> %ua, <4 x i8> %ub) #2
38
+
%call4 = tailcall spir_func i32@_Z11dot_acc_satDv4_cS_i(<4 x i8> %ia, <4 x i8> %ib, i32%call2) #2
39
+
%call5 = tailcall spir_func i32@_Z11dot_acc_satDv4_cDv4_hi(<4 x i8> %ia, <4 x i8> %ub, i32%call4) #2
40
+
%call6 = tailcall spir_func i32@_Z11dot_acc_satDv4_hDv4_ci(<4 x i8> %ua, <4 x i8> %ib, i32%call5) #2
41
+
%call7 = tailcall spir_func i32@_Z11dot_acc_satDv4_hS_j(<4 x i8> %ua, <4 x i8> %ub, i32%call3) #2
42
+
retvoid
43
+
}
44
+
45
+
; Function Attrs: convergent
46
+
declare spir_func i32@_Z3dotDv4_cS_(<4 x i8>, <4 x i8>) local_unnamed_addr #1
47
+
48
+
; Function Attrs: convergent
49
+
declare spir_func i32@_Z3dotDv4_cDv4_h(<4 x i8>, <4 x i8>) local_unnamed_addr #1
50
+
51
+
; Function Attrs: convergent
52
+
declare spir_func i32@_Z3dotDv4_hDv4_c(<4 x i8>, <4 x i8>) local_unnamed_addr #1
53
+
54
+
; Function Attrs: convergent
55
+
declare spir_func i32@_Z3dotDv4_hS_(<4 x i8>, <4 x i8>) local_unnamed_addr #1
56
+
57
+
; Function Attrs: convergent
58
+
declare spir_func i32@_Z11dot_acc_satDv4_cS_i(<4 x i8>, <4 x i8>, i32) local_unnamed_addr #1
59
+
60
+
; Function Attrs: convergent
61
+
declare spir_func i32@_Z11dot_acc_satDv4_cDv4_hi(<4 x i8>, <4 x i8>, i32) local_unnamed_addr #1
62
+
63
+
; Function Attrs: convergent
64
+
declare spir_func i32@_Z11dot_acc_satDv4_hDv4_ci(<4 x i8>, <4 x i8>, i32) local_unnamed_addr #1
65
+
66
+
; Function Attrs: convergent
67
+
declare spir_func i32@_Z11dot_acc_satDv4_hS_j(<4 x i8>, <4 x i8>, i32) local_unnamed_addr #1
0 commit comments