@@ -17,17 +17,18 @@ for (julia_name, (spirv_name, offset)) in [
17
17
:get_num_sub_groups => (:BuiltInNumSubgroups , 0 ),
18
18
:get_enqueued_num_sub_groups => (:BuiltInNumEnqueuedSubgroups , 0 )]
19
19
gvar_name = Symbol (" @__spirv_$(spirv_name) " )
20
+ width = Int === Int64 ? 64 : 32
20
21
@eval begin
21
22
export $ julia_name
22
23
@device_function $ julia_name () =
23
24
Base. llvmcall (
24
- $ (""" $gvar_name = external addrspace($(AS. Input) ) global i32
25
- define i32 @entry() #0 {
26
- %val = load i32, i32 addrspace($(AS. Input) )* $gvar_name
27
- ret i32 %val
25
+ $ (""" $gvar_name = external addrspace($(AS. Input) ) global i $(width)
26
+ define i $(width) @entry() #0 {
27
+ %val = load i $(width) , i $(width) addrspace($(AS. Input) )* $gvar_name
28
+ ret i $(width) %val
28
29
}
29
30
attributes #0 = { alwaysinline }
30
- """ , " entry" ), UInt32 , Tuple{}) % Int + $ offset
31
+ """ , " entry" ), UInt , Tuple{}) % Int + $ offset
31
32
end
32
33
end
33
34
@@ -44,17 +45,18 @@ for (julia_name, (spirv_name, offset)) in [
44
45
:get_enqueued_local_size => (:BuiltInEnqueuedWorkgroupSize , 0 ),
45
46
:get_num_groups => (:BuiltInNumWorkgroups , 0 )]
46
47
gvar_name = Symbol (" @__spirv_$(spirv_name) " )
48
+ width = Int === Int64 ? 64 : 32
47
49
@eval begin
48
50
export $ julia_name
49
51
@device_function $ julia_name (dimindx:: Integer = 1 ) =
50
52
Base. llvmcall (
51
- $ (""" $gvar_name = external addrspace($(AS. Input) ) global <3 x i32 >
52
- define i32 @entry(i32 %idx) #0 {
53
- %val = load <3 x i32 >, <3 x i32 > addrspace($(AS. Input) )* $gvar_name
54
- %element = extractelement <3 x i32 > %val, i32 %idx
55
- ret i32 %element
53
+ $ (""" $gvar_name = external addrspace($(AS. Input) ) global <3 x i $(width) >
54
+ define i $(width) @entry(i $(width) %idx) #0 {
55
+ %val = load <3 x i $(width) >, <3 x i $(width) > addrspace($(AS. Input) )* $gvar_name
56
+ %element = extractelement <3 x i $(width) > %val, i $(width) %idx
57
+ ret i $(width) %element
56
58
}
57
59
attributes #0 = { alwaysinline }
58
- """ , " entry" ), UInt32 , Tuple{UInt32 }, UInt32 (dimindx - 1 )) % Int + $ offset
60
+ """ , " entry" ), UInt64 , Tuple{UInt64 }, UInt64 (dimindx - 1 )) % Int + $ offset
59
61
end
60
62
end
0 commit comments