File tree 2 files changed +19
-0
lines changed
utils/include/compiler/utils
2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change 67
67
ret void
68
68
}
69
69
70
+ ; We don't consider any of the internal mux 'setters' as uses of sub-group
71
+ ; builtins, as they are purely there to support the framework and aren't
72
+ ; apparent to the user.
73
+ ; CHECK: Function 'function4' uses no sub-group builtins
74
+ define spir_func void @function4 () {
75
+ call void @__mux_set_sub_group_id (i32 0 )
76
+ call void @__mux_set_num_sub_groups (i32 1 )
77
+ call void @__mux_set_max_sub_group_size (i32 2 )
78
+ ret void
79
+ }
80
+
70
81
declare i32 @__mux_get_sub_group_id ()
71
82
declare i32 @__mux_get_sub_group_local_id ()
72
83
declare i32 @__mux_sub_group_shuffle_i32 (i32 , i32 )
73
84
declare i32 @__mux_get_max_sub_group_size ()
85
+
86
+ declare void @__mux_set_sub_group_id (i32 )
87
+ declare void @__mux_set_num_sub_groups (i32 )
88
+ declare void @__mux_set_max_sub_group_size (i32 )
Original file line number Diff line number Diff line change @@ -34,6 +34,10 @@ namespace utils {
34
34
// / processed. Thus an external function declaration that uses sub-group
35
35
// / builtins will be missed.
36
36
// /
37
+ // / Internal mux sub-group 'setter' functions are not counted. This is because
38
+ // / they only used internally by the oneAPI Construction Kit as scaffolding for
39
+ // / the sub-group support that the user can observe.
40
+ // /
37
41
// / Each function contains the set of mux sub-group builtins it (transitively)
38
42
// / calls.
39
43
class GlobalSubgroupInfo {
You can’t perform that action at this time.
0 commit comments