Lines Matching refs:AMDGPULibFunc

58   using FuncInfo = llvm::AMDGPULibFunc;
332 static bool HasNative(AMDGPULibFunc::EFuncId id) { in HasNative()
334 case AMDGPULibFunc::EI_DIVIDE: in HasNative()
335 case AMDGPULibFunc::EI_COS: in HasNative()
336 case AMDGPULibFunc::EI_EXP: in HasNative()
337 case AMDGPULibFunc::EI_EXP2: in HasNative()
338 case AMDGPULibFunc::EI_EXP10: in HasNative()
339 case AMDGPULibFunc::EI_LOG: in HasNative()
340 case AMDGPULibFunc::EI_LOG2: in HasNative()
341 case AMDGPULibFunc::EI_LOG10: in HasNative()
342 case AMDGPULibFunc::EI_POWR: in HasNative()
343 case AMDGPULibFunc::EI_RECIP: in HasNative()
344 case AMDGPULibFunc::EI_RSQRT: in HasNative()
345 case AMDGPULibFunc::EI_SIN: in HasNative()
346 case AMDGPULibFunc::EI_SINCOS: in HasNative()
347 case AMDGPULibFunc::EI_SQRT: in HasNative()
348 case AMDGPULibFunc::EI_TAN: in HasNative()
357 static TableRef getOptTable(AMDGPULibFunc::EFuncId id) { in getOptTable()
359 case AMDGPULibFunc::EI_ACOS: return TableRef(tbl_acos); in getOptTable()
360 case AMDGPULibFunc::EI_ACOSH: return TableRef(tbl_acosh); in getOptTable()
361 case AMDGPULibFunc::EI_ACOSPI: return TableRef(tbl_acospi); in getOptTable()
362 case AMDGPULibFunc::EI_ASIN: return TableRef(tbl_asin); in getOptTable()
363 case AMDGPULibFunc::EI_ASINH: return TableRef(tbl_asinh); in getOptTable()
364 case AMDGPULibFunc::EI_ASINPI: return TableRef(tbl_asinpi); in getOptTable()
365 case AMDGPULibFunc::EI_ATAN: return TableRef(tbl_atan); in getOptTable()
366 case AMDGPULibFunc::EI_ATANH: return TableRef(tbl_atanh); in getOptTable()
367 case AMDGPULibFunc::EI_ATANPI: return TableRef(tbl_atanpi); in getOptTable()
368 case AMDGPULibFunc::EI_CBRT: return TableRef(tbl_cbrt); in getOptTable()
369 case AMDGPULibFunc::EI_NCOS: in getOptTable()
370 case AMDGPULibFunc::EI_COS: return TableRef(tbl_cos); in getOptTable()
371 case AMDGPULibFunc::EI_COSH: return TableRef(tbl_cosh); in getOptTable()
372 case AMDGPULibFunc::EI_COSPI: return TableRef(tbl_cospi); in getOptTable()
373 case AMDGPULibFunc::EI_ERFC: return TableRef(tbl_erfc); in getOptTable()
374 case AMDGPULibFunc::EI_ERF: return TableRef(tbl_erf); in getOptTable()
375 case AMDGPULibFunc::EI_EXP: return TableRef(tbl_exp); in getOptTable()
376 case AMDGPULibFunc::EI_NEXP2: in getOptTable()
377 case AMDGPULibFunc::EI_EXP2: return TableRef(tbl_exp2); in getOptTable()
378 case AMDGPULibFunc::EI_EXP10: return TableRef(tbl_exp10); in getOptTable()
379 case AMDGPULibFunc::EI_EXPM1: return TableRef(tbl_expm1); in getOptTable()
380 case AMDGPULibFunc::EI_LOG: return TableRef(tbl_log); in getOptTable()
381 case AMDGPULibFunc::EI_NLOG2: in getOptTable()
382 case AMDGPULibFunc::EI_LOG2: return TableRef(tbl_log2); in getOptTable()
383 case AMDGPULibFunc::EI_LOG10: return TableRef(tbl_log10); in getOptTable()
384 case AMDGPULibFunc::EI_NRSQRT: in getOptTable()
385 case AMDGPULibFunc::EI_RSQRT: return TableRef(tbl_rsqrt); in getOptTable()
386 case AMDGPULibFunc::EI_NSIN: in getOptTable()
387 case AMDGPULibFunc::EI_SIN: return TableRef(tbl_sin); in getOptTable()
388 case AMDGPULibFunc::EI_SINH: return TableRef(tbl_sinh); in getOptTable()
389 case AMDGPULibFunc::EI_SINPI: return TableRef(tbl_sinpi); in getOptTable()
390 case AMDGPULibFunc::EI_NSQRT: in getOptTable()
391 case AMDGPULibFunc::EI_SQRT: return TableRef(tbl_sqrt); in getOptTable()
392 case AMDGPULibFunc::EI_TAN: return TableRef(tbl_tan); in getOptTable()
393 case AMDGPULibFunc::EI_TANH: return TableRef(tbl_tanh); in getOptTable()
394 case AMDGPULibFunc::EI_TANPI: return TableRef(tbl_tanpi); in getOptTable()
395 case AMDGPULibFunc::EI_TGAMMA: return TableRef(tbl_tgamma); in getOptTable()
401 static inline int getVecSize(const AMDGPULibFunc& FInfo) { in getVecSize()
405 static inline AMDGPULibFunc::EType getArgType(const AMDGPULibFunc& FInfo) { in getArgType()
406 return (AMDGPULibFunc::EType)FInfo.getLeads()[0].ArgType; in getArgType()
413 return EnablePreLink ? AMDGPULibFunc::getOrInsertFunction(M, fInfo) in getFunction()
414 : AMDGPULibFunc::getFunction(M, fInfo); in getFunction()
419 return AMDGPULibFunc::parse(FMangledName, FInfo); in parseFunctionName()
462 AMDGPULibFunc nf; in sincosUseNative()
466 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
467 nf.setId(AMDGPULibFunc::EI_SIN); in sincosUseNative()
470 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
471 nf.setId(AMDGPULibFunc::EI_COS); in sincosUseNative()
497 FInfo.getPrefix() != AMDGPULibFunc::NOPFX || in useNative()
498 getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId()) || in useNative()
503 if (FInfo.getId() == AMDGPULibFunc::EI_SINCOS) in useNative()
506 FInfo.setPrefix(AMDGPULibFunc::NATIVE); in useNative()
560 AMDGPULibFunc NewLibFunc(Name, FTy); in fold_read_write_pipe()
561 FunctionCallee F = AMDGPULibFunc::getOrInsertFunction(M, NewLibFunc); in fold_read_write_pipe()
687 case AMDGPULibFunc::EI_EXP: in fold()
692 case AMDGPULibFunc::EI_EXP2: in fold()
697 case AMDGPULibFunc::EI_LOG: in fold()
702 case AMDGPULibFunc::EI_LOG2: in fold()
707 case AMDGPULibFunc::EI_LOG10: in fold()
712 case AMDGPULibFunc::EI_FMIN: in fold()
715 case AMDGPULibFunc::EI_FMAX: in fold()
718 case AMDGPULibFunc::EI_FMA: in fold()
721 case AMDGPULibFunc::EI_MAD: in fold()
724 case AMDGPULibFunc::EI_FABS: in fold()
727 case AMDGPULibFunc::EI_COPYSIGN: in fold()
730 case AMDGPULibFunc::EI_FLOOR: in fold()
733 case AMDGPULibFunc::EI_CEIL: in fold()
736 case AMDGPULibFunc::EI_TRUNC: in fold()
739 case AMDGPULibFunc::EI_RINT: in fold()
742 case AMDGPULibFunc::EI_ROUND: in fold()
745 case AMDGPULibFunc::EI_LDEXP: { in fold()
761 case AMDGPULibFunc::EI_POW: { in fold()
763 AMDGPULibFunc PowrInfo(AMDGPULibFunc::EI_POWR, FInfo); in fold()
781 AMDGPULibFunc PownInfo(AMDGPULibFunc::EI_POWN, PownType, true); in fold()
800 case AMDGPULibFunc::EI_POWR: in fold()
801 case AMDGPULibFunc::EI_POWN: in fold()
803 case AMDGPULibFunc::EI_ROOTN: in fold()
805 case AMDGPULibFunc::EI_SQRT: in fold()
809 case AMDGPULibFunc::EI_COS: in fold()
810 case AMDGPULibFunc::EI_SIN: in fold()
818 case AMDGPULibFunc::EI_READ_PIPE_2: in fold()
819 case AMDGPULibFunc::EI_READ_PIPE_4: in fold()
820 case AMDGPULibFunc::EI_WRITE_PIPE_2: in fold()
821 case AMDGPULibFunc::EI_WRITE_PIPE_4: in fold()
862 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in TDOFold()
905 assert((FInfo.getId() == AMDGPULibFunc::EI_POW || in fold_pow()
906 FInfo.getId() == AMDGPULibFunc::EI_POWR || in fold_pow()
907 FInfo.getId() == AMDGPULibFunc::EI_POWN) && in fold_pow()
963 getFunction(M, AMDGPULibFunc(issqrt ? AMDGPULibFunc::EI_SQRT in fold_pow()
964 : AMDGPULibFunc::EI_RSQRT, in fold_pow()
982 double dval = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1039 ExpExpr = getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_EXP2, FInfo)); in fold_pow()
1053 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1059 needcopysign = (FInfo.getId() != AMDGPULibFunc::EI_POWR) && in fold_pow()
1063 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
1070 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
1082 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in fold_pow()
1095 if (needcopysign && (FInfo.getId() == AMDGPULibFunc::EI_POW)) { in fold_pow()
1114 LogExpr = getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_LOG2, FInfo)); in fold_pow()
1122 if (FInfo.getId() == AMDGPULibFunc::EI_POWN) { in fold_pow()
1198 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_CBRT, FInfo))) { in fold_rootn()
1248 if (getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId())) in getNativeFunction()
1251 nf.setPrefix(AMDGPULibFunc::NATIVE); in getNativeFunction()
1354 assert(fInfo.getId() == AMDGPULibFunc::EI_SIN || in fold_sincos()
1355 fInfo.getId() == AMDGPULibFunc::EI_COS); in fold_sincos()
1357 if ((getArgType(fInfo) != AMDGPULibFunc::F32 && in fold_sincos()
1358 getArgType(fInfo) != AMDGPULibFunc::F64) || in fold_sincos()
1359 fInfo.getPrefix() != AMDGPULibFunc::NOPFX) in fold_sincos()
1362 bool const isSin = fInfo.getId() == AMDGPULibFunc::EI_SIN; in fold_sincos()
1372 AMDGPULibFunc SinCosLibFuncPrivate(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1374 AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::PRIVATE_ADDRESS); in fold_sincos()
1376 AMDGPULibFunc SinCosLibFuncGeneric(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1378 AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::FLAT_ADDRESS); in fold_sincos()
1389 FuncInfo PartnerInfo(isSin ? AMDGPULibFunc::EI_COS : AMDGPULibFunc::EI_SIN, in fold_sincos()
1470 opr0 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1476 opr1 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1484 case AMDGPULibFunc::EI_ACOS: in evaluateScalarMathFunc()
1488 case AMDGPULibFunc::EI_ACOSH: in evaluateScalarMathFunc()
1493 case AMDGPULibFunc::EI_ACOSPI: in evaluateScalarMathFunc()
1497 case AMDGPULibFunc::EI_ASIN: in evaluateScalarMathFunc()
1501 case AMDGPULibFunc::EI_ASINH: in evaluateScalarMathFunc()
1506 case AMDGPULibFunc::EI_ASINPI: in evaluateScalarMathFunc()
1510 case AMDGPULibFunc::EI_ATAN: in evaluateScalarMathFunc()
1514 case AMDGPULibFunc::EI_ATANH: in evaluateScalarMathFunc()
1519 case AMDGPULibFunc::EI_ATANPI: in evaluateScalarMathFunc()
1523 case AMDGPULibFunc::EI_CBRT: in evaluateScalarMathFunc()
1527 case AMDGPULibFunc::EI_COS: in evaluateScalarMathFunc()
1531 case AMDGPULibFunc::EI_COSH: in evaluateScalarMathFunc()
1535 case AMDGPULibFunc::EI_COSPI: in evaluateScalarMathFunc()
1539 case AMDGPULibFunc::EI_EXP: in evaluateScalarMathFunc()
1543 case AMDGPULibFunc::EI_EXP2: in evaluateScalarMathFunc()
1547 case AMDGPULibFunc::EI_EXP10: in evaluateScalarMathFunc()
1551 case AMDGPULibFunc::EI_LOG: in evaluateScalarMathFunc()
1555 case AMDGPULibFunc::EI_LOG2: in evaluateScalarMathFunc()
1559 case AMDGPULibFunc::EI_LOG10: in evaluateScalarMathFunc()
1563 case AMDGPULibFunc::EI_RSQRT: in evaluateScalarMathFunc()
1567 case AMDGPULibFunc::EI_SIN: in evaluateScalarMathFunc()
1571 case AMDGPULibFunc::EI_SINH: in evaluateScalarMathFunc()
1575 case AMDGPULibFunc::EI_SINPI: in evaluateScalarMathFunc()
1579 case AMDGPULibFunc::EI_TAN: in evaluateScalarMathFunc()
1583 case AMDGPULibFunc::EI_TANH: in evaluateScalarMathFunc()
1587 case AMDGPULibFunc::EI_TANPI: in evaluateScalarMathFunc()
1592 case AMDGPULibFunc::EI_POW: in evaluateScalarMathFunc()
1593 case AMDGPULibFunc::EI_POWR: in evaluateScalarMathFunc()
1597 case AMDGPULibFunc::EI_POWN: { in evaluateScalarMathFunc()
1606 case AMDGPULibFunc::EI_ROOTN: { in evaluateScalarMathFunc()
1616 case AMDGPULibFunc::EI_SINCOS: in evaluateScalarMathFunc()
1639 if (FInfo.getId() != AMDGPULibFunc::EI_SINCOS) in evaluateCall()
1649 bool hasTwoResults = (FInfo.getId() == AMDGPULibFunc::EI_SINCOS); in evaluateCall()
1673 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in evaluateCall()
1697 assert(FInfo.getId() == AMDGPULibFunc::EI_SINCOS && in evaluateCall()