@@ -1220,170 +1220,182 @@ fast_normalize(T p) __NOEXC {
1220
1220
return __sycl_std::__invoke_fast_normalize<T>(p);
1221
1221
}
1222
1222
1223
- /* --------------- 4.13.7 Relational functions. -----------------------------*/
1224
- // igeninteger16bit isequal (genfloath x, genfloath y)
1223
+ /* --------------- 4.13.7 Relational functions. Device version --------------*/
1224
+ //
1225
+ // int isequal (half x, half y)
1226
+ // shortn isequal (halfn x, halfn y)
1225
1227
// igeninteger32bit isequal (genfloatf x, genfloatf y)
1226
- // igeninteger64bit isequal (genfloatd x, genfloatd y)
1228
+ // int isequal (double x,double y);
1229
+ // longn isequal (doublen x, doublen y)
1227
1230
template <typename T, typename = typename std::enable_if<
1228
1231
detail::is_genfloat<T>::value, T>::type>
1229
1232
typename detail::float_point_to_sign_integral<T>::type isequal (T x,
1230
1233
T y) __NOEXC {
1231
- __NO_SUPPORT_HOST_VERSION (isequal, T)
1232
1234
return __sycl_std::__invoke_OpFOrdEqual<
1233
1235
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1234
1236
}
1235
1237
1236
- // igeninteger16bit isnotequal (genfloath x, genfloath y)
1238
+ // int isnotequal (half x, half y)
1239
+ // shortn isnotequal (halfn x, halfn y)
1237
1240
// igeninteger32bit isnotequal (genfloatf x, genfloatf y)
1238
- // igeninteger64bit isnotequal (genfloatd x, genfloatd y)
1241
+ // int isnotequal (double x, double y)
1242
+ // longn isnotequal (doublen x, doublen y)
1239
1243
template <typename T, typename = typename std::enable_if<
1240
1244
detail::is_genfloat<T>::value, T>::type>
1241
1245
typename detail::float_point_to_sign_integral<T>::type isnotequal (T x,
1242
1246
T y) __NOEXC {
1243
- __NO_SUPPORT_HOST_VERSION (isnotequal, T);
1244
1247
return __sycl_std::__invoke_OpFUnordNotEqual<
1245
1248
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1246
1249
}
1247
1250
1248
- // igeninteger16bit isgreater (genfloath x, genfloath y)
1251
+ // int isgreater (half x, half y)
1252
+ // shortn isgreater (halfn x, halfn y)
1249
1253
// igeninteger32bit isgreater (genfloatf x, genfloatf y)
1250
- // igeninteger64bit isgreater (genfloatd x, genfloatd y)
1254
+ // int isgreater (double x, double y)
1255
+ // longn isgreater (doublen x, doublen y)
1251
1256
template <typename T, typename = typename std::enable_if<
1252
1257
detail::is_genfloat<T>::value, T>::type>
1253
1258
typename detail::float_point_to_sign_integral<T>::type isgreater (T x,
1254
1259
T y) __NOEXC {
1255
- __NO_SUPPORT_HOST_VERSION (isgreater, T);
1256
1260
return __sycl_std::__invoke_OpFOrdGreaterThan<
1257
1261
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1258
1262
}
1259
1263
1260
- // igeninteger16bit isgreaterequal (genfloath x, genfloath y)
1264
+ // int isgreaterequal (half x, half y)
1265
+ // shortn isgreaterequal (halfn x, halfn y)
1261
1266
// igeninteger32bit isgreaterequal (genfloatf x, genfloatf y)
1262
- // igeninteger64bit isgreaterequal (genfloatd x, genfloatd y)
1267
+ // int isgreaterequal (double x, double y)
1268
+ // longn isgreaterequal (doublen x, doublen y)
1263
1269
template <typename T, typename = typename std::enable_if<
1264
1270
detail::is_genfloat<T>::value, T>::type>
1265
1271
typename detail::float_point_to_sign_integral<T>::type
1266
1272
isgreaterequal (T x, T y) __NOEXC {
1267
- __NO_SUPPORT_HOST_VERSION (isgreaterequal, T);
1268
1273
return __sycl_std::__invoke_OpFOrdGreaterThanEqual<
1269
1274
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1270
1275
}
1271
1276
1272
- // igeninteger16bit isless (genfloath x, genfloath y)
1277
+ // int isless (half x, half y)
1278
+ // shortn isless (halfn x, halfn y)
1273
1279
// igeninteger32bit isless (genfloatf x, genfloatf y)
1274
- // igeninteger64bit isless (genfloatd x, genfloatd y)
1280
+ // int isless (long x, long y)
1281
+ // longn isless (doublen x, doublen y)
1275
1282
template <typename T, typename = typename std::enable_if<
1276
1283
detail::is_genfloat<T>::value, T>::type>
1277
1284
typename detail::float_point_to_sign_integral<T>::type isless (T x,
1278
1285
T y) __NOEXC {
1279
- __NO_SUPPORT_HOST_VERSION (isless, T);
1280
1286
return __sycl_std::__invoke_OpFOrdLessThan<
1281
1287
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1282
1288
}
1283
-
1284
- // igeninteger16bit islessequal (genfloath x, genfloath y)
1289
+ // int islessequal (half x, half y)
1290
+ // shortn islessequal (halfn x, halfn y)
1285
1291
// igeninteger32bit islessequal (genfloatf x, genfloatf y)
1286
- // igeninteger64bit islessequal (genfloatd x, genfloatd y)
1292
+ // int islessequal (double x, double y)
1293
+ // longn islessequal (doublen x, doublen y)
1287
1294
template <typename T, typename = typename std::enable_if<
1288
1295
detail::is_genfloat<T>::value, T>::type>
1289
1296
typename detail::float_point_to_sign_integral<T>::type
1290
1297
islessequal (T x, T y) __NOEXC {
1291
- __NO_SUPPORT_HOST_VERSION (islessequal, T);
1292
1298
return __sycl_std::__invoke_OpFOrdLessThanEqual<
1293
1299
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1294
1300
}
1295
1301
1296
- // igeninteger16bit islessgreater (genfloath x, genfloath y)
1302
+ // int islessgreater (half x, half y)
1303
+ // shortn islessgreater (halfn x, halfn y)
1297
1304
// igeninteger32bit islessgreater (genfloatf x, genfloatf y)
1298
- // igeninteger64bit islessgreater (genfloatd x, genfloatd y)
1305
+ // int islessgreater (double x, double y)
1306
+ // longn islessgreater (doublen x, doublen y)
1299
1307
template <typename T, typename = typename std::enable_if<
1300
1308
detail::is_genfloat<T>::value, T>::type>
1301
1309
typename detail::float_point_to_sign_integral<T>::type
1302
1310
islessgreater (T x, T y) __NOEXC {
1303
- __NO_SUPPORT_HOST_VERSION (islessgreater, T);
1304
1311
return __sycl_std::__invoke_OpLessOrGreater<
1305
1312
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1306
1313
}
1307
-
1308
- // igeninteger16bit isfinite (genfloath x)
1314
+ // int isfinite (half x)
1315
+ // shortn isfinite (halfn x)
1309
1316
// igeninteger32bit isfinite (genfloatf x)
1310
- // igeninteger64bit isfinite (genfloatd x)
1317
+ // int isfinite (double x)
1318
+ // longn isfinite (doublen x)
1311
1319
template <typename T, typename = typename std::enable_if<
1312
1320
detail::is_genfloat<T>::value, T>::type>
1313
1321
typename detail::float_point_to_sign_integral<T>::type isfinite (T x) __NOEXC {
1314
- __NO_SUPPORT_HOST_VERSION (isfinite, T)
1315
1322
__NO_SUPPORT_DEVICE_VERSION (isfinite, T)
1316
1323
return __sycl_std::__invoke_OpIsFinite<
1317
1324
typename detail::float_point_to_sign_integral<T>::type>(x);
1318
1325
}
1319
1326
1320
- // igeninteger16bit isinf (genfloath x)
1327
+ // int isinf (half x)
1328
+ // shortn isinf (halfn x)
1321
1329
// igeninteger32bit isinf (genfloatf x)
1322
- // igeninteger64bit isinf (genfloatd x)
1330
+ // int isinf (double x)
1331
+ // longn isinf (doublen x)
1323
1332
template <typename T, typename = typename std::enable_if<
1324
1333
detail::is_genfloat<T>::value, T>::type>
1325
1334
typename detail::float_point_to_sign_integral<T>::type isinf (T x) __NOEXC {
1326
- __NO_SUPPORT_HOST_VERSION (isinf, T)
1327
1335
__NO_SUPPORT_DEVICE_VERSION (isinf, T)
1328
1336
return __sycl_std::__invoke_OpIsInf<
1329
1337
typename detail::float_point_to_sign_integral<T>::type>(x);
1330
1338
}
1331
1339
1332
- // igeninteger16bit isnan (genfloath x)
1340
+ // int isnan (half x)
1341
+ // shortn isnan (halfn x)
1333
1342
// igeninteger32bit isnan (genfloatf x)
1334
- // igeninteger64bit isnan (genfloatd x)
1343
+ // int isnan (double x)
1344
+ // longn isnan (doublen x)
1335
1345
template <typename T, typename = typename std::enable_if<
1336
1346
detail::is_genfloat<T>::value, T>::type>
1337
1347
typename detail::float_point_to_sign_integral<T>::type isnan (T x) __NOEXC {
1338
- __NO_SUPPORT_HOST_VERSION (isnan, T)
1339
1348
__NO_SUPPORT_DEVICE_VERSION (isnan, T)
1340
1349
return __sycl_std::__invoke_OpIsNan<
1341
1350
typename detail::float_point_to_sign_integral<T>::type>(x);
1342
1351
}
1343
-
1344
- // igeninteger16bit isnormal (genfloath x)
1352
+ // int isnormal (half x)
1353
+ // shortn isnormal (halfn x)
1345
1354
// igeninteger32bit isnormal (genfloatf x)
1346
- // igeninteger64bit isnormal (genfloatd x)
1355
+ // int isnormal (double x)
1356
+ // longn isnormal (doublen x)
1347
1357
template <typename T, typename = typename std::enable_if<
1348
1358
detail::is_genfloat<T>::value, T>::type>
1349
1359
typename detail::float_point_to_sign_integral<T>::type isnormal (T x) __NOEXC {
1350
- __NO_SUPPORT_HOST_VERSION (isnormal, T)
1351
1360
__NO_SUPPORT_DEVICE_VERSION (isnormal, T)
1352
1361
return __sycl_std::__invoke_OpIsNormal<
1353
1362
typename detail::float_point_to_sign_integral<T>::type>(x);
1354
1363
}
1355
1364
1356
- // igeninteger16bit isordered (genfloath x, genfloath y)
1365
+ // int isordered (half x)
1366
+ // shortn isordered (halfn x, halfn y)
1357
1367
// igeninteger32bit isordered (genfloatf x, genfloatf y)
1358
- // igeninteger64bit isordered (genfloatd x, genfloatd y)
1368
+ // int isordered (double x, double y)
1369
+ // longn isordered (doublen x, doublen y)
1359
1370
template <typename T, typename = typename std::enable_if<
1360
1371
detail::is_genfloat<T>::value, T>::type>
1361
1372
typename detail::float_point_to_sign_integral<T>::type isordered (T x,
1362
1373
T y) __NOEXC {
1363
- __NO_SUPPORT_HOST_VERSION (isordered, T)
1364
1374
return __sycl_std::__invoke_OpOrdered<
1365
1375
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1366
1376
}
1367
1377
1368
- // igeninteger16bit isunordered (genfloath x, genfloath y)
1378
+ // int isunordered (half x, half y)
1379
+ // shortn isunordered (halfn x, halfn y)
1369
1380
// igeninteger32bit isunordered (genfloatf x, genfloatf y)
1370
- // igeninteger64bit isunordered (genfloatd x, genfloatd y)
1381
+ // int isunordered (double x, double y)
1382
+ // longn isunordered (doublen x, doublen y)
1371
1383
template <typename T, typename = typename std::enable_if<
1372
1384
detail::is_genfloat<T>::value, T>::type>
1373
1385
typename detail::float_point_to_sign_integral<T>::type
1374
1386
isunordered (T x, T y) __NOEXC {
1375
- __NO_SUPPORT_HOST_VERSION (isunordered, T)
1376
1387
return __sycl_std::__invoke_OpUnordered<
1377
1388
typename detail::float_point_to_sign_integral<T>::type>(x, y);
1378
1389
}
1379
1390
1380
- // igeninteger16bit signbit (genfloath x)
1391
+ // int signbit (half x)
1392
+ // shortn signbit (halfn x)
1381
1393
// igeninteger32bit signbit (genfloatf x)
1382
- // igeninteger64bit signbit (genfloatd x)
1394
+ // int signbit (double)
1395
+ // longn signbit (doublen x)
1383
1396
template <typename T, typename = typename std::enable_if<
1384
1397
detail::is_genfloat<T>::value, T>::type>
1385
1398
typename detail::float_point_to_sign_integral<T>::type signbit (T x) __NOEXC {
1386
- __NO_SUPPORT_HOST_VERSION (signbit, T)
1387
1399
__NO_SUPPORT_DEVICE_VERSION (signbit, T)
1388
1400
return __sycl_std::__invoke_OpSignBitSet<
1389
1401
typename detail::float_point_to_sign_integral<T>::type>(x);
@@ -1393,7 +1405,6 @@ typename detail::float_point_to_sign_integral<T>::type signbit(T x) __NOEXC {
1393
1405
template <typename T, typename = typename std::enable_if<
1394
1406
detail::is_igeninteger<T>::value, T>::type>
1395
1407
cl::sycl::cl_int any (T x) __NOEXC {
1396
- __NO_SUPPORT_HOST_VERSION (signbit, T)
1397
1408
__NO_SUPPORT_DEVICE_VERSION (signbit, T)
1398
1409
return __sycl_std::__invoke_OpAny<cl::sycl::cl_int>(x);
1399
1410
}
@@ -1402,7 +1413,6 @@ cl::sycl::cl_int any(T x) __NOEXC {
1402
1413
template <typename T, typename = typename std::enable_if<
1403
1414
detail::is_igeninteger<T>::value, T>::type>
1404
1415
cl::sycl::cl_int all (T x) __NOEXC {
1405
- __NO_SUPPORT_HOST_VERSION (all, T)
1406
1416
__NO_SUPPORT_DEVICE_VERSION (all, T)
1407
1417
return __sycl_std::__invoke_OpAll<cl::sycl::cl_int>(x);
1408
1418
}
@@ -1411,7 +1421,6 @@ cl::sycl::cl_int all(T x) __NOEXC {
1411
1421
template <typename T>
1412
1422
typename std::enable_if<detail::is_gentype<T>::value, T>::type
1413
1423
bitselect (T a, T b, T c) __NOEXC {
1414
- __NO_SUPPORT_HOST_VERSION (bitselect, T)
1415
1424
return __sycl_std::__invoke_bitselect<T>(a, b, c);
1416
1425
}
1417
1426
@@ -1421,7 +1430,6 @@ typename std::enable_if<detail::is_geninteger<T>::value &&
1421
1430
detail::is_igeninteger<T2>::value,
1422
1431
T>::type
1423
1432
select (T a, T b, T2 c) __NOEXC {
1424
- __NO_SUPPORT_HOST_VERSION (select, T)
1425
1433
__NO_SUPPORT_DEVICE_VERSION (select, T)
1426
1434
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1427
1435
}
@@ -1432,7 +1440,6 @@ typename std::enable_if<detail::is_geninteger<T>::value &&
1432
1440
detail::is_ugeninteger<T2>::value,
1433
1441
T>::type
1434
1442
select (T a, T b, T2 c) __NOEXC {
1435
- __NO_SUPPORT_HOST_VERSION (select, T)
1436
1443
__NO_SUPPORT_DEVICE_VERSION (select, T)
1437
1444
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1438
1445
}
@@ -1442,7 +1449,6 @@ template <typename T, typename T2>
1442
1449
typename std::enable_if<
1443
1450
detail::is_genfloatf<T>::value && detail::is_genint<T2>::value, T>::type
1444
1451
select (T a, T b, T2 c) __NOEXC {
1445
- __NO_SUPPORT_HOST_VERSION (select, T)
1446
1452
__NO_SUPPORT_DEVICE_VERSION (select, T)
1447
1453
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1448
1454
}
@@ -1452,7 +1458,6 @@ template <typename T, typename T2>
1452
1458
typename std::enable_if<
1453
1459
detail::is_genfloatf<T>::value && detail::is_ugenint<T2>::value, T>::type
1454
1460
select (T a, T b, T2 c) __NOEXC {
1455
- __NO_SUPPORT_HOST_VERSION (select, T)
1456
1461
__NO_SUPPORT_DEVICE_VERSION (select, T)
1457
1462
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1458
1463
}
@@ -1463,7 +1468,6 @@ typename std::enable_if<detail::is_genfloatd<T>::value &&
1463
1468
detail::is_igeninteger64bit<T2>::value,
1464
1469
T>::type
1465
1470
select (T a, T b, T2 c) __NOEXC {
1466
- __NO_SUPPORT_HOST_VERSION (select, T)
1467
1471
__NO_SUPPORT_DEVICE_VERSION (select, T)
1468
1472
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1469
1473
}
@@ -1474,7 +1478,6 @@ typename std::enable_if<detail::is_genfloatd<T>::value &&
1474
1478
detail::is_ugeninteger64bit<T2>::value,
1475
1479
T>::type
1476
1480
select (T a, T b, T2 c) __NOEXC {
1477
- __NO_SUPPORT_HOST_VERSION (select, T)
1478
1481
__NO_SUPPORT_DEVICE_VERSION (select, T)
1479
1482
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1480
1483
}
@@ -1486,7 +1489,6 @@ typename std::enable_if<detail::is_genfloath<T>::value &&
1486
1489
detail::is_igeninteger64bit<T2>::value,
1487
1490
T>::type
1488
1491
select (T a, T b, T2 c) __NOEXC {
1489
- __NO_SUPPORT_HOST_VERSION (select, T)
1490
1492
__NO_SUPPORT_DEVICE_VERSION (select, T)
1491
1493
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1492
1494
}
@@ -1497,7 +1499,6 @@ typename std::enable_if<detail::is_genfloath<T>::value &&
1497
1499
detail::is_ugeninteger64bit<T2>::value,
1498
1500
T>::type
1499
1501
select (T a, T b, T2 c) __NOEXC {
1500
- __NO_SUPPORT_HOST_VERSION (select, T)
1501
1502
__NO_SUPPORT_DEVICE_VERSION (select, T)
1502
1503
return __sycl_std::__invoke_OpSelect<T>(a, b, c);
1503
1504
}
0 commit comments