@@ -1306,75 +1306,15 @@ float min(float __x, float __y) { return __builtin_fminf(__x, __y); }
1306
1306
__DEVICE__
1307
1307
double min (double __x, double __y) { return __builtin_fmin (__x, __y); }
1308
1308
1309
- // Define host min/max functions.
1310
- #if !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__) && \
1311
- !defined(__HIP_NO_HOST_MIN_MAX_IN_GLOBAL_NAMESPACE__)
1312
-
1313
- #pragma push_macro("DEFINE_MIN_MAX_FUNCTIONS")
1314
- #pragma push_macro("DEFINE_MIN_MAX_FUNCTIONS")
1315
- #define DEFINE_MIN_MAX_FUNCTIONS (ret_type, type1, type2 ) \
1316
- inline ret_type min (const type1 __a, const type2 __b) { \
1317
- return (__a < __b) ? __a : __b; \
1318
- } \
1319
- inline ret_type max (const type1 __a, const type2 __b) { \
1320
- return (__a > __b) ? __a : __b; \
1321
- }
1322
-
1323
- // Define min and max functions for same type comparisons
1324
- DEFINE_MIN_MAX_FUNCTIONS (int , int , int )
1325
- DEFINE_MIN_MAX_FUNCTIONS(unsigned int , unsigned int , unsigned int )
1326
- DEFINE_MIN_MAX_FUNCTIONS(long , long , long )
1327
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long , unsigned long , unsigned long )
1328
- DEFINE_MIN_MAX_FUNCTIONS(long long , long long , long long )
1329
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long long , unsigned long long ,
1330
- unsigned long long )
1331
-
1332
- // The host min/max functions below accept mixed signed/unsigned integer
1333
- // parameters and perform unsigned comparisons, which may produce unexpected
1334
- // results if a signed integer was passed unintentionally. To avoid this
1335
- // happening silently, these overloaded functions are not defined by default.
1336
- // However, for compatibility with CUDA, they will be defined if users define
1337
- // __HIP_DEFINE_MIXED_HOST_MIN_MAX__.
1338
- #ifdef __HIP_DEFINE_MIXED_HOST_MIN_MAX__
1339
- DEFINE_MIN_MAX_FUNCTIONS (unsigned int , int , unsigned int )
1340
- DEFINE_MIN_MAX_FUNCTIONS(unsigned int , unsigned int , int )
1341
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long , long , unsigned long )
1342
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long , unsigned long , long )
1343
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long long , long long , unsigned long long )
1344
- DEFINE_MIN_MAX_FUNCTIONS(unsigned long long , unsigned long long , long long )
1345
- #endif // ifdef __HIP_DEFINE_MIXED_HOST_MIN_MAX__
1346
-
1347
- // Floating-point comparisons using built-in functions
1348
- inline float min (float const __a, float const __b) {
1349
- return __builtin_fminf (__a, __b);
1350
- }
1351
- inline double min (double const __a, double const __b) {
1352
- return __builtin_fmin (__a, __b);
1353
- }
1354
- inline double min (float const __a, double const __b) {
1355
- return __builtin_fmin (__a, __b);
1356
- }
1357
- inline double min (double const __a, float const __b) {
1358
- return __builtin_fmin (__a, __b);
1309
+ #if !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__)
1310
+ __host__ inline static int min (int __arg1, int __arg2) {
1311
+ return __arg1 < __arg2 ? __arg1 : __arg2;
1359
1312
}
1360
1313
1361
- inline float max (float const __a, float const __b) {
1362
- return __builtin_fmaxf (__a, __b);
1363
- }
1364
- inline double max (double const __a, double const __b) {
1365
- return __builtin_fmax (__a, __b);
1366
- }
1367
- inline double max (float const __a, double const __b) {
1368
- return __builtin_fmax (__a, __b);
1314
+ __host__ inline static int max (int __arg1, int __arg2) {
1315
+ return __arg1 > __arg2 ? __arg1 : __arg2;
1369
1316
}
1370
- inline double max (double const __a, float const __b) {
1371
- return __builtin_fmax (__a, __b);
1372
- }
1373
-
1374
- #pragma pop_macro("DEFINE_MIN_MAX_FUNCTIONS")
1375
-
1376
- #endif // !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__) &&
1377
- // !defined(__HIP_NO_HOST_MIN_MAX_IN_GLOBAL_NAMESPACE__)
1317
+ #endif // !defined(__HIPCC_RTC__) && !defined(__OPENMP_AMDGCN__)
1378
1318
#endif
1379
1319
1380
1320
#pragma pop_macro("__DEVICE__")
0 commit comments