Lines Matching refs:AMDGPULibFunc

48   typedef llvm::AMDGPULibFunc FuncInfo;
376 static bool HasNative(AMDGPULibFunc::EFuncId id) { in HasNative()
378 case AMDGPULibFunc::EI_DIVIDE: in HasNative()
379 case AMDGPULibFunc::EI_COS: in HasNative()
380 case AMDGPULibFunc::EI_EXP: in HasNative()
381 case AMDGPULibFunc::EI_EXP2: in HasNative()
382 case AMDGPULibFunc::EI_EXP10: in HasNative()
383 case AMDGPULibFunc::EI_LOG: in HasNative()
384 case AMDGPULibFunc::EI_LOG2: in HasNative()
385 case AMDGPULibFunc::EI_LOG10: in HasNative()
386 case AMDGPULibFunc::EI_POWR: in HasNative()
387 case AMDGPULibFunc::EI_RECIP: in HasNative()
388 case AMDGPULibFunc::EI_RSQRT: in HasNative()
389 case AMDGPULibFunc::EI_SIN: in HasNative()
390 case AMDGPULibFunc::EI_SINCOS: in HasNative()
391 case AMDGPULibFunc::EI_SQRT: in HasNative()
392 case AMDGPULibFunc::EI_TAN: in HasNative()
409 static TableRef getOptTable(AMDGPULibFunc::EFuncId id) { in getOptTable()
411 case AMDGPULibFunc::EI_ACOS: return TableRef(tbl_acos); in getOptTable()
412 case AMDGPULibFunc::EI_ACOSH: return TableRef(tbl_acosh); in getOptTable()
413 case AMDGPULibFunc::EI_ACOSPI: return TableRef(tbl_acospi); in getOptTable()
414 case AMDGPULibFunc::EI_ASIN: return TableRef(tbl_asin); in getOptTable()
415 case AMDGPULibFunc::EI_ASINH: return TableRef(tbl_asinh); in getOptTable()
416 case AMDGPULibFunc::EI_ASINPI: return TableRef(tbl_asinpi); in getOptTable()
417 case AMDGPULibFunc::EI_ATAN: return TableRef(tbl_atan); in getOptTable()
418 case AMDGPULibFunc::EI_ATANH: return TableRef(tbl_atanh); in getOptTable()
419 case AMDGPULibFunc::EI_ATANPI: return TableRef(tbl_atanpi); in getOptTable()
420 case AMDGPULibFunc::EI_CBRT: return TableRef(tbl_cbrt); in getOptTable()
421 case AMDGPULibFunc::EI_NCOS: in getOptTable()
422 case AMDGPULibFunc::EI_COS: return TableRef(tbl_cos); in getOptTable()
423 case AMDGPULibFunc::EI_COSH: return TableRef(tbl_cosh); in getOptTable()
424 case AMDGPULibFunc::EI_COSPI: return TableRef(tbl_cospi); in getOptTable()
425 case AMDGPULibFunc::EI_ERFC: return TableRef(tbl_erfc); in getOptTable()
426 case AMDGPULibFunc::EI_ERF: return TableRef(tbl_erf); in getOptTable()
427 case AMDGPULibFunc::EI_EXP: return TableRef(tbl_exp); in getOptTable()
428 case AMDGPULibFunc::EI_NEXP2: in getOptTable()
429 case AMDGPULibFunc::EI_EXP2: return TableRef(tbl_exp2); in getOptTable()
430 case AMDGPULibFunc::EI_EXP10: return TableRef(tbl_exp10); in getOptTable()
431 case AMDGPULibFunc::EI_EXPM1: return TableRef(tbl_expm1); in getOptTable()
432 case AMDGPULibFunc::EI_LOG: return TableRef(tbl_log); in getOptTable()
433 case AMDGPULibFunc::EI_NLOG2: in getOptTable()
434 case AMDGPULibFunc::EI_LOG2: return TableRef(tbl_log2); in getOptTable()
435 case AMDGPULibFunc::EI_LOG10: return TableRef(tbl_log10); in getOptTable()
436 case AMDGPULibFunc::EI_NRSQRT: in getOptTable()
437 case AMDGPULibFunc::EI_RSQRT: return TableRef(tbl_rsqrt); in getOptTable()
438 case AMDGPULibFunc::EI_NSIN: in getOptTable()
439 case AMDGPULibFunc::EI_SIN: return TableRef(tbl_sin); in getOptTable()
440 case AMDGPULibFunc::EI_SINH: return TableRef(tbl_sinh); in getOptTable()
441 case AMDGPULibFunc::EI_SINPI: return TableRef(tbl_sinpi); in getOptTable()
442 case AMDGPULibFunc::EI_NSQRT: in getOptTable()
443 case AMDGPULibFunc::EI_SQRT: return TableRef(tbl_sqrt); in getOptTable()
444 case AMDGPULibFunc::EI_TAN: return TableRef(tbl_tan); in getOptTable()
445 case AMDGPULibFunc::EI_TANH: return TableRef(tbl_tanh); in getOptTable()
446 case AMDGPULibFunc::EI_TANPI: return TableRef(tbl_tanpi); in getOptTable()
447 case AMDGPULibFunc::EI_TGAMMA: return TableRef(tbl_tgamma); in getOptTable()
453 static inline int getVecSize(const AMDGPULibFunc& FInfo) { in getVecSize()
457 static inline AMDGPULibFunc::EType getArgType(const AMDGPULibFunc& FInfo) { in getArgType()
458 return (AMDGPULibFunc::EType)FInfo.getLeads()[0].ArgType; in getArgType()
465 return EnablePreLink ? AMDGPULibFunc::getOrInsertFunction(M, fInfo) in getFunction()
466 : AMDGPULibFunc::getFunction(M, fInfo); in getFunction()
471 return AMDGPULibFunc::parse(FMangledName, *FInfo); in parseFunctionName()
501 AMDGPULibFunc nf; in sincosUseNative()
505 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
506 nf.setId(AMDGPULibFunc::EI_SIN); in sincosUseNative()
509 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
510 nf.setId(AMDGPULibFunc::EI_COS); in sincosUseNative()
533 FInfo.getPrefix() != AMDGPULibFunc::NOPFX || in useNative()
534 getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId()) || in useNative()
539 if (FInfo.getId() == AMDGPULibFunc::EI_SINCOS) in useNative()
542 FInfo.setPrefix(AMDGPULibFunc::NATIVE); in useNative()
600 AMDGPULibFunc NewLibFunc(Name, FTy); in fold_read_write_pipe()
601 FunctionCallee F = AMDGPULibFunc::getOrInsertFunction(M, NewLibFunc); in fold_read_write_pipe()
665 case AMDGPULibFunc::EI_RECIP: in fold()
667 assert ((FInfo.getPrefix() == AMDGPULibFunc::NATIVE || in fold()
668 FInfo.getPrefix() == AMDGPULibFunc::HALF) && in fold()
672 case AMDGPULibFunc::EI_DIVIDE: in fold()
674 assert ((FInfo.getPrefix() == AMDGPULibFunc::NATIVE || in fold()
675 FInfo.getPrefix() == AMDGPULibFunc::HALF) && in fold()
679 case AMDGPULibFunc::EI_POW: in fold()
680 case AMDGPULibFunc::EI_POWR: in fold()
681 case AMDGPULibFunc::EI_POWN: in fold()
684 case AMDGPULibFunc::EI_ROOTN: in fold()
688 case AMDGPULibFunc::EI_FMA: in fold()
689 case AMDGPULibFunc::EI_MAD: in fold()
690 case AMDGPULibFunc::EI_NFMA: in fold()
694 case AMDGPULibFunc::EI_SQRT: in fold()
696 case AMDGPULibFunc::EI_COS: in fold()
697 case AMDGPULibFunc::EI_SIN: in fold()
698 if ((getArgType(FInfo) == AMDGPULibFunc::F32 || in fold()
699 getArgType(FInfo) == AMDGPULibFunc::F64) in fold()
700 && (FInfo.getPrefix() == AMDGPULibFunc::NOPFX)) in fold()
704 case AMDGPULibFunc::EI_READ_PIPE_2: in fold()
705 case AMDGPULibFunc::EI_READ_PIPE_4: in fold()
706 case AMDGPULibFunc::EI_WRITE_PIPE_2: in fold()
707 case AMDGPULibFunc::EI_WRITE_PIPE_4: in fold()
749 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in TDOFold()
783 if (getArgType(FInfo) != AMDGPULibFunc::F32 || in replaceWithNative()
784 FInfo.getPrefix() != AMDGPULibFunc::NOPFX || in replaceWithNative()
788 AMDGPULibFunc nf = FInfo; in replaceWithNative()
789 nf.setPrefix(AMDGPULibFunc::NATIVE); in replaceWithNative()
829 (CF1 && (getArgType(FInfo) == AMDGPULibFunc::F32))) in fold_divide()
853 assert((FInfo.getId() == AMDGPULibFunc::EI_POW || in fold_pow()
854 FInfo.getId() == AMDGPULibFunc::EI_POWR || in fold_pow()
855 FInfo.getId() == AMDGPULibFunc::EI_POWN) && in fold_pow()
930 getFunction(M, AMDGPULibFunc(issqrt ? AMDGPULibFunc::EI_SQRT in fold_pow()
931 : AMDGPULibFunc::EI_RSQRT, in fold_pow()
949 double dval = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1000 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_EXP2, FInfo)); in fold_pow()
1012 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1018 needcopysign = (FInfo.getId() != AMDGPULibFunc::EI_POWR) && in fold_pow()
1022 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR && in fold_pow()
1030 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
1037 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1044 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in fold_pow()
1058 if (needcopysign && (FInfo.getId() == AMDGPULibFunc::EI_POW)) { in fold_pow()
1063 double y = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1073 double y = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1087 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_FABS, FInfo)); in fold_pow()
1096 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_LOG2, FInfo)); in fold_pow()
1102 if (FInfo.getId() == AMDGPULibFunc::EI_POWN) { in fold_pow()
1154 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_SQRT, FInfo))) { in fold_rootn()
1163 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_CBRT, FInfo))) { in fold_rootn()
1179 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_RSQRT, FInfo))) { in fold_rootn()
1237 if (getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId())) in getNativeFunction()
1240 nf.setPrefix(AMDGPULibFunc::NATIVE); in getNativeFunction()
1247 if (getArgType(FInfo) == AMDGPULibFunc::F32 && (getVecSize(FInfo) == 1) && in fold_sqrt()
1248 (FInfo.getPrefix() != AMDGPULibFunc::NATIVE)) { in fold_sqrt()
1250 CI->getModule(), AMDGPULibFunc(AMDGPULibFunc::EI_SQRT, FInfo))) { in fold_sqrt()
1265 AMDGPULibFunc fInfo; in fold_sincos()
1266 if (!AMDGPULibFunc::parse(CI->getCalledFunction()->getName(), fInfo)) in fold_sincos()
1269 assert(fInfo.getId() == AMDGPULibFunc::EI_SIN || in fold_sincos()
1270 fInfo.getId() == AMDGPULibFunc::EI_COS); in fold_sincos()
1271 bool const isSin = fInfo.getId() == AMDGPULibFunc::EI_SIN; in fold_sincos()
1295 fInfo.setId(isSin ? AMDGPULibFunc::EI_COS : AMDGPULibFunc::EI_SIN); in fold_sincos()
1328 AMDGPULibFunc nf(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1329 nf.getLeads()[0].PtrKind = AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::FLAT_ADDRESS); in fold_sincos()
1425 opr0 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1431 opr1 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1437 opr2 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1445 case AMDGPULibFunc::EI_ACOS: in evaluateScalarMathFunc()
1449 case AMDGPULibFunc::EI_ACOSH: in evaluateScalarMathFunc()
1454 case AMDGPULibFunc::EI_ACOSPI: in evaluateScalarMathFunc()
1458 case AMDGPULibFunc::EI_ASIN: in evaluateScalarMathFunc()
1462 case AMDGPULibFunc::EI_ASINH: in evaluateScalarMathFunc()
1467 case AMDGPULibFunc::EI_ASINPI: in evaluateScalarMathFunc()
1471 case AMDGPULibFunc::EI_ATAN: in evaluateScalarMathFunc()
1475 case AMDGPULibFunc::EI_ATANH: in evaluateScalarMathFunc()
1480 case AMDGPULibFunc::EI_ATANPI: in evaluateScalarMathFunc()
1484 case AMDGPULibFunc::EI_CBRT: in evaluateScalarMathFunc()
1488 case AMDGPULibFunc::EI_COS: in evaluateScalarMathFunc()
1492 case AMDGPULibFunc::EI_COSH: in evaluateScalarMathFunc()
1496 case AMDGPULibFunc::EI_COSPI: in evaluateScalarMathFunc()
1500 case AMDGPULibFunc::EI_EXP: in evaluateScalarMathFunc()
1504 case AMDGPULibFunc::EI_EXP2: in evaluateScalarMathFunc()
1508 case AMDGPULibFunc::EI_EXP10: in evaluateScalarMathFunc()
1512 case AMDGPULibFunc::EI_EXPM1: in evaluateScalarMathFunc()
1516 case AMDGPULibFunc::EI_LOG: in evaluateScalarMathFunc()
1520 case AMDGPULibFunc::EI_LOG2: in evaluateScalarMathFunc()
1524 case AMDGPULibFunc::EI_LOG10: in evaluateScalarMathFunc()
1528 case AMDGPULibFunc::EI_RSQRT: in evaluateScalarMathFunc()
1532 case AMDGPULibFunc::EI_SIN: in evaluateScalarMathFunc()
1536 case AMDGPULibFunc::EI_SINH: in evaluateScalarMathFunc()
1540 case AMDGPULibFunc::EI_SINPI: in evaluateScalarMathFunc()
1544 case AMDGPULibFunc::EI_SQRT: in evaluateScalarMathFunc()
1548 case AMDGPULibFunc::EI_TAN: in evaluateScalarMathFunc()
1552 case AMDGPULibFunc::EI_TANH: in evaluateScalarMathFunc()
1556 case AMDGPULibFunc::EI_TANPI: in evaluateScalarMathFunc()
1560 case AMDGPULibFunc::EI_RECIP: in evaluateScalarMathFunc()
1565 case AMDGPULibFunc::EI_DIVIDE: in evaluateScalarMathFunc()
1569 case AMDGPULibFunc::EI_POW: in evaluateScalarMathFunc()
1570 case AMDGPULibFunc::EI_POWR: in evaluateScalarMathFunc()
1574 case AMDGPULibFunc::EI_POWN: { in evaluateScalarMathFunc()
1583 case AMDGPULibFunc::EI_ROOTN: { in evaluateScalarMathFunc()
1593 case AMDGPULibFunc::EI_SINCOS: in evaluateScalarMathFunc()
1599 case AMDGPULibFunc::EI_FMA: in evaluateScalarMathFunc()
1600 case AMDGPULibFunc::EI_MAD: in evaluateScalarMathFunc()
1623 if (FInfo.getId() != AMDGPULibFunc::EI_SINCOS) in evaluateCall()
1637 bool hasTwoResults = (FInfo.getId() == AMDGPULibFunc::EI_SINCOS); in evaluateCall()
1665 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in evaluateCall()
1689 assert(FInfo.getId() == AMDGPULibFunc::EI_SINCOS && in evaluateCall()