Lines Matching refs:AMDGPULibFunc

49   typedef llvm::AMDGPULibFunc FuncInfo;
356 static bool HasNative(AMDGPULibFunc::EFuncId id) { in HasNative()
358 case AMDGPULibFunc::EI_DIVIDE: in HasNative()
359 case AMDGPULibFunc::EI_COS: in HasNative()
360 case AMDGPULibFunc::EI_EXP: in HasNative()
361 case AMDGPULibFunc::EI_EXP2: in HasNative()
362 case AMDGPULibFunc::EI_EXP10: in HasNative()
363 case AMDGPULibFunc::EI_LOG: in HasNative()
364 case AMDGPULibFunc::EI_LOG2: in HasNative()
365 case AMDGPULibFunc::EI_LOG10: in HasNative()
366 case AMDGPULibFunc::EI_POWR: in HasNative()
367 case AMDGPULibFunc::EI_RECIP: in HasNative()
368 case AMDGPULibFunc::EI_RSQRT: in HasNative()
369 case AMDGPULibFunc::EI_SIN: in HasNative()
370 case AMDGPULibFunc::EI_SINCOS: in HasNative()
371 case AMDGPULibFunc::EI_SQRT: in HasNative()
372 case AMDGPULibFunc::EI_TAN: in HasNative()
381 static TableRef getOptTable(AMDGPULibFunc::EFuncId id) { in getOptTable()
383 case AMDGPULibFunc::EI_ACOS: return TableRef(tbl_acos); in getOptTable()
384 case AMDGPULibFunc::EI_ACOSH: return TableRef(tbl_acosh); in getOptTable()
385 case AMDGPULibFunc::EI_ACOSPI: return TableRef(tbl_acospi); in getOptTable()
386 case AMDGPULibFunc::EI_ASIN: return TableRef(tbl_asin); in getOptTable()
387 case AMDGPULibFunc::EI_ASINH: return TableRef(tbl_asinh); in getOptTable()
388 case AMDGPULibFunc::EI_ASINPI: return TableRef(tbl_asinpi); in getOptTable()
389 case AMDGPULibFunc::EI_ATAN: return TableRef(tbl_atan); in getOptTable()
390 case AMDGPULibFunc::EI_ATANH: return TableRef(tbl_atanh); in getOptTable()
391 case AMDGPULibFunc::EI_ATANPI: return TableRef(tbl_atanpi); in getOptTable()
392 case AMDGPULibFunc::EI_CBRT: return TableRef(tbl_cbrt); in getOptTable()
393 case AMDGPULibFunc::EI_NCOS: in getOptTable()
394 case AMDGPULibFunc::EI_COS: return TableRef(tbl_cos); in getOptTable()
395 case AMDGPULibFunc::EI_COSH: return TableRef(tbl_cosh); in getOptTable()
396 case AMDGPULibFunc::EI_COSPI: return TableRef(tbl_cospi); in getOptTable()
397 case AMDGPULibFunc::EI_ERFC: return TableRef(tbl_erfc); in getOptTable()
398 case AMDGPULibFunc::EI_ERF: return TableRef(tbl_erf); in getOptTable()
399 case AMDGPULibFunc::EI_EXP: return TableRef(tbl_exp); in getOptTable()
400 case AMDGPULibFunc::EI_NEXP2: in getOptTable()
401 case AMDGPULibFunc::EI_EXP2: return TableRef(tbl_exp2); in getOptTable()
402 case AMDGPULibFunc::EI_EXP10: return TableRef(tbl_exp10); in getOptTable()
403 case AMDGPULibFunc::EI_EXPM1: return TableRef(tbl_expm1); in getOptTable()
404 case AMDGPULibFunc::EI_LOG: return TableRef(tbl_log); in getOptTable()
405 case AMDGPULibFunc::EI_NLOG2: in getOptTable()
406 case AMDGPULibFunc::EI_LOG2: return TableRef(tbl_log2); in getOptTable()
407 case AMDGPULibFunc::EI_LOG10: return TableRef(tbl_log10); in getOptTable()
408 case AMDGPULibFunc::EI_NRSQRT: in getOptTable()
409 case AMDGPULibFunc::EI_RSQRT: return TableRef(tbl_rsqrt); in getOptTable()
410 case AMDGPULibFunc::EI_NSIN: in getOptTable()
411 case AMDGPULibFunc::EI_SIN: return TableRef(tbl_sin); in getOptTable()
412 case AMDGPULibFunc::EI_SINH: return TableRef(tbl_sinh); in getOptTable()
413 case AMDGPULibFunc::EI_SINPI: return TableRef(tbl_sinpi); in getOptTable()
414 case AMDGPULibFunc::EI_NSQRT: in getOptTable()
415 case AMDGPULibFunc::EI_SQRT: return TableRef(tbl_sqrt); in getOptTable()
416 case AMDGPULibFunc::EI_TAN: return TableRef(tbl_tan); in getOptTable()
417 case AMDGPULibFunc::EI_TANH: return TableRef(tbl_tanh); in getOptTable()
418 case AMDGPULibFunc::EI_TANPI: return TableRef(tbl_tanpi); in getOptTable()
419 case AMDGPULibFunc::EI_TGAMMA: return TableRef(tbl_tgamma); in getOptTable()
425 static inline int getVecSize(const AMDGPULibFunc& FInfo) { in getVecSize()
429 static inline AMDGPULibFunc::EType getArgType(const AMDGPULibFunc& FInfo) { in getArgType()
430 return (AMDGPULibFunc::EType)FInfo.getLeads()[0].ArgType; in getArgType()
437 return EnablePreLink ? AMDGPULibFunc::getOrInsertFunction(M, fInfo) in getFunction()
438 : AMDGPULibFunc::getFunction(M, fInfo); in getFunction()
443 return AMDGPULibFunc::parse(FMangledName, FInfo); in parseFunctionName()
473 AMDGPULibFunc nf; in sincosUseNative()
477 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
478 nf.setId(AMDGPULibFunc::EI_SIN); in sincosUseNative()
481 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
482 nf.setId(AMDGPULibFunc::EI_COS); in sincosUseNative()
505 FInfo.getPrefix() != AMDGPULibFunc::NOPFX || in useNative()
506 getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId()) || in useNative()
511 if (FInfo.getId() == AMDGPULibFunc::EI_SINCOS) in useNative()
514 FInfo.setPrefix(AMDGPULibFunc::NATIVE); in useNative()
572 AMDGPULibFunc NewLibFunc(Name, FTy); in fold_read_write_pipe()
573 FunctionCallee F = AMDGPULibFunc::getOrInsertFunction(M, NewLibFunc); in fold_read_write_pipe()
638 case AMDGPULibFunc::EI_RECIP: in fold()
640 assert ((FInfo.getPrefix() == AMDGPULibFunc::NATIVE || in fold()
641 FInfo.getPrefix() == AMDGPULibFunc::HALF) && in fold()
645 case AMDGPULibFunc::EI_DIVIDE: in fold()
647 assert ((FInfo.getPrefix() == AMDGPULibFunc::NATIVE || in fold()
648 FInfo.getPrefix() == AMDGPULibFunc::HALF) && in fold()
652 case AMDGPULibFunc::EI_POW: in fold()
653 case AMDGPULibFunc::EI_POWR: in fold()
654 case AMDGPULibFunc::EI_POWN: in fold()
657 case AMDGPULibFunc::EI_ROOTN: in fold()
661 case AMDGPULibFunc::EI_FMA: in fold()
662 case AMDGPULibFunc::EI_MAD: in fold()
663 case AMDGPULibFunc::EI_NFMA: in fold()
667 case AMDGPULibFunc::EI_SQRT: in fold()
669 case AMDGPULibFunc::EI_COS: in fold()
670 case AMDGPULibFunc::EI_SIN: in fold()
671 if ((getArgType(FInfo) == AMDGPULibFunc::F32 || in fold()
672 getArgType(FInfo) == AMDGPULibFunc::F64) in fold()
673 && (FInfo.getPrefix() == AMDGPULibFunc::NOPFX)) in fold()
677 case AMDGPULibFunc::EI_READ_PIPE_2: in fold()
678 case AMDGPULibFunc::EI_READ_PIPE_4: in fold()
679 case AMDGPULibFunc::EI_WRITE_PIPE_2: in fold()
680 case AMDGPULibFunc::EI_WRITE_PIPE_4: in fold()
721 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in TDOFold()
780 (CF1 && (getArgType(FInfo) == AMDGPULibFunc::F32))) in fold_divide()
804 assert((FInfo.getId() == AMDGPULibFunc::EI_POW || in fold_pow()
805 FInfo.getId() == AMDGPULibFunc::EI_POWR || in fold_pow()
806 FInfo.getId() == AMDGPULibFunc::EI_POWN) && in fold_pow()
881 getFunction(M, AMDGPULibFunc(issqrt ? AMDGPULibFunc::EI_SQRT in fold_pow()
882 : AMDGPULibFunc::EI_RSQRT, in fold_pow()
900 double dval = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
951 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_EXP2, FInfo)); in fold_pow()
963 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
969 needcopysign = (FInfo.getId() != AMDGPULibFunc::EI_POWR) && in fold_pow()
973 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR && in fold_pow()
981 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
988 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
995 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in fold_pow()
1009 if (needcopysign && (FInfo.getId() == AMDGPULibFunc::EI_POW)) { in fold_pow()
1014 double y = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1024 double y = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1038 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_FABS, FInfo)); in fold_pow()
1047 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_LOG2, FInfo)); in fold_pow()
1053 if (FInfo.getId() == AMDGPULibFunc::EI_POWN) { in fold_pow()
1105 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_SQRT, FInfo))) { in fold_rootn()
1114 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_CBRT, FInfo))) { in fold_rootn()
1130 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_RSQRT, FInfo))) { in fold_rootn()
1188 if (getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId())) in getNativeFunction()
1191 nf.setPrefix(AMDGPULibFunc::NATIVE); in getNativeFunction()
1198 if (getArgType(FInfo) == AMDGPULibFunc::F32 && (getVecSize(FInfo) == 1) && in fold_sqrt()
1199 (FInfo.getPrefix() != AMDGPULibFunc::NATIVE)) { in fold_sqrt()
1201 CI->getModule(), AMDGPULibFunc(AMDGPULibFunc::EI_SQRT, FInfo))) { in fold_sqrt()
1216 AMDGPULibFunc fInfo; in fold_sincos()
1217 if (!AMDGPULibFunc::parse(CI->getCalledFunction()->getName(), fInfo)) in fold_sincos()
1220 assert(fInfo.getId() == AMDGPULibFunc::EI_SIN || in fold_sincos()
1221 fInfo.getId() == AMDGPULibFunc::EI_COS); in fold_sincos()
1222 bool const isSin = fInfo.getId() == AMDGPULibFunc::EI_SIN; in fold_sincos()
1246 fInfo.setId(isSin ? AMDGPULibFunc::EI_COS : AMDGPULibFunc::EI_SIN); in fold_sincos()
1279 AMDGPULibFunc nf(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1280 nf.getLeads()[0].PtrKind = AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::FLAT_ADDRESS); in fold_sincos()
1375 opr0 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1381 opr1 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1387 opr2 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1395 case AMDGPULibFunc::EI_ACOS: in evaluateScalarMathFunc()
1399 case AMDGPULibFunc::EI_ACOSH: in evaluateScalarMathFunc()
1404 case AMDGPULibFunc::EI_ACOSPI: in evaluateScalarMathFunc()
1408 case AMDGPULibFunc::EI_ASIN: in evaluateScalarMathFunc()
1412 case AMDGPULibFunc::EI_ASINH: in evaluateScalarMathFunc()
1417 case AMDGPULibFunc::EI_ASINPI: in evaluateScalarMathFunc()
1421 case AMDGPULibFunc::EI_ATAN: in evaluateScalarMathFunc()
1425 case AMDGPULibFunc::EI_ATANH: in evaluateScalarMathFunc()
1430 case AMDGPULibFunc::EI_ATANPI: in evaluateScalarMathFunc()
1434 case AMDGPULibFunc::EI_CBRT: in evaluateScalarMathFunc()
1438 case AMDGPULibFunc::EI_COS: in evaluateScalarMathFunc()
1442 case AMDGPULibFunc::EI_COSH: in evaluateScalarMathFunc()
1446 case AMDGPULibFunc::EI_COSPI: in evaluateScalarMathFunc()
1450 case AMDGPULibFunc::EI_EXP: in evaluateScalarMathFunc()
1454 case AMDGPULibFunc::EI_EXP2: in evaluateScalarMathFunc()
1458 case AMDGPULibFunc::EI_EXP10: in evaluateScalarMathFunc()
1462 case AMDGPULibFunc::EI_EXPM1: in evaluateScalarMathFunc()
1466 case AMDGPULibFunc::EI_LOG: in evaluateScalarMathFunc()
1470 case AMDGPULibFunc::EI_LOG2: in evaluateScalarMathFunc()
1474 case AMDGPULibFunc::EI_LOG10: in evaluateScalarMathFunc()
1478 case AMDGPULibFunc::EI_RSQRT: in evaluateScalarMathFunc()
1482 case AMDGPULibFunc::EI_SIN: in evaluateScalarMathFunc()
1486 case AMDGPULibFunc::EI_SINH: in evaluateScalarMathFunc()
1490 case AMDGPULibFunc::EI_SINPI: in evaluateScalarMathFunc()
1494 case AMDGPULibFunc::EI_SQRT: in evaluateScalarMathFunc()
1498 case AMDGPULibFunc::EI_TAN: in evaluateScalarMathFunc()
1502 case AMDGPULibFunc::EI_TANH: in evaluateScalarMathFunc()
1506 case AMDGPULibFunc::EI_TANPI: in evaluateScalarMathFunc()
1510 case AMDGPULibFunc::EI_RECIP: in evaluateScalarMathFunc()
1515 case AMDGPULibFunc::EI_DIVIDE: in evaluateScalarMathFunc()
1519 case AMDGPULibFunc::EI_POW: in evaluateScalarMathFunc()
1520 case AMDGPULibFunc::EI_POWR: in evaluateScalarMathFunc()
1524 case AMDGPULibFunc::EI_POWN: { in evaluateScalarMathFunc()
1533 case AMDGPULibFunc::EI_ROOTN: { in evaluateScalarMathFunc()
1543 case AMDGPULibFunc::EI_SINCOS: in evaluateScalarMathFunc()
1549 case AMDGPULibFunc::EI_FMA: in evaluateScalarMathFunc()
1550 case AMDGPULibFunc::EI_MAD: in evaluateScalarMathFunc()
1573 if (FInfo.getId() != AMDGPULibFunc::EI_SINCOS) in evaluateCall()
1588 bool hasTwoResults = (FInfo.getId() == AMDGPULibFunc::EI_SINCOS); in evaluateCall()
1616 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in evaluateCall()
1640 assert(FInfo.getId() == AMDGPULibFunc::EI_SINCOS && in evaluateCall()