@@ -17,11 +17,16 @@ const nodim_intr = [
1717]
1818
1919for (intr, offset) in nodim_intr
20- # XXX : these are also available as UInt16 (ushort)
20+ intr_i16 = Symbol(intr, :_i16)
21+ intr = Symbol(intr)
2122 @eval begin
22- export $ (Symbol(intr))
23+ # UInt32
24+ export $ (intr)
25+ @device_function $ (intr)() = ccall($ " extern julia.air.$intr .i32" , llvmcall, UInt32, ()) + UInt32($ offset)
2326
24- @device_function $ (Symbol(intr))() = ccall($ " extern julia.air.$intr .i32" , llvmcall, UInt32, ()) + UInt32($ offset)
27+ # UInt16
28+ export $ (intr_i16)
29+ @device_function $ (intr_i16)() = ccall($ " extern julia.air.$intr .i16" , llvmcall, UInt16, ()) + UInt16($ offset)
2530 end
2631end
2732
@@ -39,36 +44,47 @@ const dim_intr = [
3944]
4045
4146for (intr, offset) in dim_intr
42- # XXX : these are also available as UInt16 (ushort)
47+ intr_i16 = Symbol(intr, :_i16)
48+ intr = Symbol(intr)
4349 @eval begin
44- export $ (Symbol(intr))
45-
46- @device_function function $ (Symbol( intr) )()
50+ # UInt32
51+ export $ (intr)
52+ @device_function function $ (intr)()
4753 vec = ccall($ " extern julia.air.$intr .v3i32" , llvmcall,
4854 NTuple{3 , VecElement{UInt32}}, ())
4955 (x = vec[1 ]. value + UInt32($ offset),
5056 y = vec[2 ]. value + UInt32($ offset),
5157 z = vec[3 ]. value + UInt32($ offset))
5258 end
59+
60+ # UInt16
61+ export $ (intr_i16)
62+ @device_function function $ (intr_i16)()
63+ vec = ccall($ " extern julia.air.$intr .v3i16" , llvmcall,
64+ NTuple{3 , VecElement{UInt16}}, ())
65+ (x = vec[1 ]. value + UInt16($ offset),
66+ y = vec[2 ]. value + UInt16($ offset),
67+ z = vec[3 ]. value + UInt16($ offset))
68+ end
5369 end
5470
5571 # deprecated aliases
5672 @eval begin
57- export $ (Symbol(intr * " _1d" ))
58- export $ (Symbol(intr * " _2d" ))
59- export $ (Symbol(intr * " _3d" ))
73+ export $ (Symbol(intr, " _1d" ))
74+ export $ (Symbol(intr, " _2d" ))
75+ export $ (Symbol(intr, " _3d" ))
6076
61- function $ (Symbol(intr * " _1d" ))()
62- $ (Symbol( intr) )(). x
77+ function $ (Symbol(intr, " _1d" ))()
78+ $ (intr)(). x
6379 end
6480
65- function $ (Symbol(intr * " _2d" ))()
66- vec = $ (Symbol( intr) )()
81+ function $ (Symbol(intr, " _2d" ))()
82+ vec = $ (intr)()
6783 (x = vec. x,
6884 y = vec. y)
6985 end
7086
71- $ (Symbol(intr * " _3d" ))() = $ (Symbol( intr) )()
87+ $ (Symbol(intr, " _3d" ))() = $ (intr)()
7288 end
7389end
7490
0 commit comments