Skip to content

Commit 3bd4e46

Browse files
authored
[SYCL][libdevice] Add max/min for all types to dl specific file (#10625)
DL framework developers require max/min functions for all data types, this PR group these required functions with other dl required functions which are located in imf_fp32/64_dl.cpp file. Signed-off-by: jinge90 <[email protected]>
1 parent f22d94c commit 3bd4e46

File tree

5 files changed

+49
-48
lines changed

5 files changed

+49
-48
lines changed

libdevice/imf/imf_fp32_dl.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,45 @@ int __devicelib_imf_min(int x, int y) { return x < y ? x : y; }
5656

5757
DEVICE_EXTERN_C_INLINE
5858
int __devicelib_imf_hadd(int x, int y) { return __shadd(x, y); }
59+
60+
DEVICE_EXTERN_C_INLINE
61+
long long int __devicelib_imf_llmax(long long int x, long long int y) {
62+
return __imax(x, y);
63+
}
64+
65+
DEVICE_EXTERN_C_INLINE
66+
long long int __devicelib_imf_llmin(long long int x, long long int y) {
67+
return __imin(x, y);
68+
}
69+
70+
DEVICE_EXTERN_C_INLINE
71+
unsigned long long int __devicelib_imf_ullmax(unsigned long long int x,
72+
unsigned long long int y) {
73+
return __imax(x, y);
74+
}
75+
76+
DEVICE_EXTERN_C_INLINE
77+
unsigned long long int __devicelib_imf_ullmin(unsigned long long int x,
78+
unsigned long long int y) {
79+
return __imin(x, y);
80+
}
81+
82+
DEVICE_EXTERN_C_INLINE
83+
unsigned int __devicelib_imf_umax(unsigned int x, unsigned int y) {
84+
return __imax(x, y);
85+
}
86+
87+
DEVICE_EXTERN_C_INLINE
88+
unsigned int __devicelib_imf_umin(unsigned int x, unsigned int y) {
89+
return __imin(x, y);
90+
}
91+
92+
DEVICE_EXTERN_C_INLINE float __devicelib_imf_fmaxf(float a, float b) {
93+
return __fmax(a, b);
94+
}
95+
96+
DEVICE_EXTERN_C_INLINE float __devicelib_imf_fminf(float a, float b) {
97+
return __fmin(a, b);
98+
}
99+
59100
#endif /*__LIBDEVICE_IMF_ENABLED__*/

libdevice/imf/imf_fp64_dl.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,12 @@ DEVICE_EXTERN_C_INLINE double __devicelib_imf_fabs(double x) {
1818
return __fabs(x);
1919
}
2020

21+
DEVICE_EXTERN_C_INLINE double __devicelib_imf_fmax(double a, double b) {
22+
return __fmax(a, b);
23+
}
24+
25+
DEVICE_EXTERN_C_INLINE double __devicelib_imf_fmin(double a, double b) {
26+
return __fmin(a, b);
27+
}
28+
2129
#endif /*__LIBDEVICE_IMF_ENABLED__*/

libdevice/imf/imf_inline_fp32.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,6 @@ DEVICE_EXTERN_C_INLINE float __devicelib_imf_rsqrtf(float a) {
123123

124124
DEVICE_EXTERN_C_INLINE float __devicelib_imf_invf(float a) { return 1.0f / a; }
125125

126-
DEVICE_EXTERN_C_INLINE float __devicelib_imf_fmaxf(float a, float b) {
127-
return __fmax(a, b);
128-
}
129-
130-
DEVICE_EXTERN_C_INLINE float __devicelib_imf_fminf(float a, float b) {
131-
return __fmin(a, b);
132-
}
133-
134126
DEVICE_EXTERN_C_INLINE float __devicelib_imf_copysignf(float a, float b) {
135127
return __copysign(a, b);
136128
}

libdevice/imf/imf_inline_fp64.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,6 @@ DEVICE_EXTERN_C_INLINE double __devicelib_imf_rsqrt(double a) {
4343

4444
DEVICE_EXTERN_C_INLINE double __devicelib_imf_inv(double a) { return 1.0 / a; }
4545

46-
DEVICE_EXTERN_C_INLINE double __devicelib_imf_fmax(double a, double b) {
47-
return __fmax(a, b);
48-
}
49-
50-
DEVICE_EXTERN_C_INLINE double __devicelib_imf_fmin(double a, double b) {
51-
return __fmin(a, b);
52-
}
53-
5446
DEVICE_EXTERN_C_INLINE double __devicelib_imf_copysign(double a, double b) {
5547
return __copysign(a, b);
5648
}

libdevice/imf_utils/integer_misc.cpp

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -174,36 +174,4 @@ unsigned long long int __devicelib_imf_umul64hi(unsigned long long int x,
174174
#endif
175175
}
176176

177-
DEVICE_EXTERN_C_INLINE
178-
long long int __devicelib_imf_llmax(long long int x, long long int y) {
179-
return __imax(x, y);
180-
;
181-
}
182-
183-
DEVICE_EXTERN_C_INLINE
184-
long long int __devicelib_imf_llmin(long long int x, long long int y) {
185-
return __imin(x, y);
186-
}
187-
188-
DEVICE_EXTERN_C_INLINE
189-
unsigned long long int __devicelib_imf_ullmax(unsigned long long int x,
190-
unsigned long long int y) {
191-
return __imax(x, y);
192-
}
193-
194-
DEVICE_EXTERN_C_INLINE
195-
unsigned long long int __devicelib_imf_ullmin(unsigned long long int x,
196-
unsigned long long int y) {
197-
return __imin(x, y);
198-
}
199-
200-
DEVICE_EXTERN_C_INLINE
201-
unsigned int __devicelib_imf_umax(unsigned int x, unsigned int y) {
202-
return __imax(x, y);
203-
}
204-
205-
DEVICE_EXTERN_C_INLINE
206-
unsigned int __devicelib_imf_umin(unsigned int x, unsigned int y) {
207-
return __imin(x, y);
208-
}
209177
#endif //__LIBDEVICE_IMF_ENABLED__

0 commit comments

Comments
 (0)