Lines Matching refs:AMDGPULibFunc
57 typedef llvm::AMDGPULibFunc FuncInfo;
331 static bool HasNative(AMDGPULibFunc::EFuncId id) { in HasNative()
333 case AMDGPULibFunc::EI_DIVIDE: in HasNative()
334 case AMDGPULibFunc::EI_COS: in HasNative()
335 case AMDGPULibFunc::EI_EXP: in HasNative()
336 case AMDGPULibFunc::EI_EXP2: in HasNative()
337 case AMDGPULibFunc::EI_EXP10: in HasNative()
338 case AMDGPULibFunc::EI_LOG: in HasNative()
339 case AMDGPULibFunc::EI_LOG2: in HasNative()
340 case AMDGPULibFunc::EI_LOG10: in HasNative()
341 case AMDGPULibFunc::EI_POWR: in HasNative()
342 case AMDGPULibFunc::EI_RECIP: in HasNative()
343 case AMDGPULibFunc::EI_RSQRT: in HasNative()
344 case AMDGPULibFunc::EI_SIN: in HasNative()
345 case AMDGPULibFunc::EI_SINCOS: in HasNative()
346 case AMDGPULibFunc::EI_SQRT: in HasNative()
347 case AMDGPULibFunc::EI_TAN: in HasNative()
356 static TableRef getOptTable(AMDGPULibFunc::EFuncId id) { in getOptTable()
358 case AMDGPULibFunc::EI_ACOS: return TableRef(tbl_acos); in getOptTable()
359 case AMDGPULibFunc::EI_ACOSH: return TableRef(tbl_acosh); in getOptTable()
360 case AMDGPULibFunc::EI_ACOSPI: return TableRef(tbl_acospi); in getOptTable()
361 case AMDGPULibFunc::EI_ASIN: return TableRef(tbl_asin); in getOptTable()
362 case AMDGPULibFunc::EI_ASINH: return TableRef(tbl_asinh); in getOptTable()
363 case AMDGPULibFunc::EI_ASINPI: return TableRef(tbl_asinpi); in getOptTable()
364 case AMDGPULibFunc::EI_ATAN: return TableRef(tbl_atan); in getOptTable()
365 case AMDGPULibFunc::EI_ATANH: return TableRef(tbl_atanh); in getOptTable()
366 case AMDGPULibFunc::EI_ATANPI: return TableRef(tbl_atanpi); in getOptTable()
367 case AMDGPULibFunc::EI_CBRT: return TableRef(tbl_cbrt); in getOptTable()
368 case AMDGPULibFunc::EI_NCOS: in getOptTable()
369 case AMDGPULibFunc::EI_COS: return TableRef(tbl_cos); in getOptTable()
370 case AMDGPULibFunc::EI_COSH: return TableRef(tbl_cosh); in getOptTable()
371 case AMDGPULibFunc::EI_COSPI: return TableRef(tbl_cospi); in getOptTable()
372 case AMDGPULibFunc::EI_ERFC: return TableRef(tbl_erfc); in getOptTable()
373 case AMDGPULibFunc::EI_ERF: return TableRef(tbl_erf); in getOptTable()
374 case AMDGPULibFunc::EI_EXP: return TableRef(tbl_exp); in getOptTable()
375 case AMDGPULibFunc::EI_NEXP2: in getOptTable()
376 case AMDGPULibFunc::EI_EXP2: return TableRef(tbl_exp2); in getOptTable()
377 case AMDGPULibFunc::EI_EXP10: return TableRef(tbl_exp10); in getOptTable()
378 case AMDGPULibFunc::EI_EXPM1: return TableRef(tbl_expm1); in getOptTable()
379 case AMDGPULibFunc::EI_LOG: return TableRef(tbl_log); in getOptTable()
380 case AMDGPULibFunc::EI_NLOG2: in getOptTable()
381 case AMDGPULibFunc::EI_LOG2: return TableRef(tbl_log2); in getOptTable()
382 case AMDGPULibFunc::EI_LOG10: return TableRef(tbl_log10); in getOptTable()
383 case AMDGPULibFunc::EI_NRSQRT: in getOptTable()
384 case AMDGPULibFunc::EI_RSQRT: return TableRef(tbl_rsqrt); in getOptTable()
385 case AMDGPULibFunc::EI_NSIN: in getOptTable()
386 case AMDGPULibFunc::EI_SIN: return TableRef(tbl_sin); in getOptTable()
387 case AMDGPULibFunc::EI_SINH: return TableRef(tbl_sinh); in getOptTable()
388 case AMDGPULibFunc::EI_SINPI: return TableRef(tbl_sinpi); in getOptTable()
389 case AMDGPULibFunc::EI_NSQRT: in getOptTable()
390 case AMDGPULibFunc::EI_SQRT: return TableRef(tbl_sqrt); in getOptTable()
391 case AMDGPULibFunc::EI_TAN: return TableRef(tbl_tan); in getOptTable()
392 case AMDGPULibFunc::EI_TANH: return TableRef(tbl_tanh); in getOptTable()
393 case AMDGPULibFunc::EI_TANPI: return TableRef(tbl_tanpi); in getOptTable()
394 case AMDGPULibFunc::EI_TGAMMA: return TableRef(tbl_tgamma); in getOptTable()
400 static inline int getVecSize(const AMDGPULibFunc& FInfo) { in getVecSize()
404 static inline AMDGPULibFunc::EType getArgType(const AMDGPULibFunc& FInfo) { in getArgType()
405 return (AMDGPULibFunc::EType)FInfo.getLeads()[0].ArgType; in getArgType()
412 return EnablePreLink ? AMDGPULibFunc::getOrInsertFunction(M, fInfo) in getFunction()
413 : AMDGPULibFunc::getFunction(M, fInfo); in getFunction()
418 return AMDGPULibFunc::parse(FMangledName, FInfo); in parseFunctionName()
461 AMDGPULibFunc nf; in sincosUseNative()
465 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
466 nf.setId(AMDGPULibFunc::EI_SIN); in sincosUseNative()
469 nf.setPrefix(AMDGPULibFunc::NATIVE); in sincosUseNative()
470 nf.setId(AMDGPULibFunc::EI_COS); in sincosUseNative()
494 FInfo.getPrefix() != AMDGPULibFunc::NOPFX || in useNative()
495 getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId()) || in useNative()
500 if (FInfo.getId() == AMDGPULibFunc::EI_SINCOS) in useNative()
503 FInfo.setPrefix(AMDGPULibFunc::NATIVE); in useNative()
557 AMDGPULibFunc NewLibFunc(Name, FTy); in fold_read_write_pipe()
558 FunctionCallee F = AMDGPULibFunc::getOrInsertFunction(M, NewLibFunc); in fold_read_write_pipe()
674 case AMDGPULibFunc::EI_EXP: in fold()
679 case AMDGPULibFunc::EI_EXP2: in fold()
684 case AMDGPULibFunc::EI_LOG: in fold()
689 case AMDGPULibFunc::EI_LOG2: in fold()
694 case AMDGPULibFunc::EI_LOG10: in fold()
699 case AMDGPULibFunc::EI_FMIN: in fold()
702 case AMDGPULibFunc::EI_FMAX: in fold()
705 case AMDGPULibFunc::EI_FMA: in fold()
708 case AMDGPULibFunc::EI_MAD: in fold()
711 case AMDGPULibFunc::EI_FABS: in fold()
714 case AMDGPULibFunc::EI_COPYSIGN: in fold()
717 case AMDGPULibFunc::EI_FLOOR: in fold()
720 case AMDGPULibFunc::EI_CEIL: in fold()
723 case AMDGPULibFunc::EI_TRUNC: in fold()
726 case AMDGPULibFunc::EI_RINT: in fold()
729 case AMDGPULibFunc::EI_ROUND: in fold()
732 case AMDGPULibFunc::EI_LDEXP: { in fold()
748 case AMDGPULibFunc::EI_POW: { in fold()
750 AMDGPULibFunc PowrInfo(AMDGPULibFunc::EI_POWR, FInfo); in fold()
767 AMDGPULibFunc PownInfo(AMDGPULibFunc::EI_POWN, PownType, true); in fold()
786 case AMDGPULibFunc::EI_POWR: in fold()
787 case AMDGPULibFunc::EI_POWN: in fold()
789 case AMDGPULibFunc::EI_ROOTN: in fold()
791 case AMDGPULibFunc::EI_SQRT: in fold()
795 case AMDGPULibFunc::EI_COS: in fold()
796 case AMDGPULibFunc::EI_SIN: in fold()
804 case AMDGPULibFunc::EI_READ_PIPE_2: in fold()
805 case AMDGPULibFunc::EI_READ_PIPE_4: in fold()
806 case AMDGPULibFunc::EI_WRITE_PIPE_2: in fold()
807 case AMDGPULibFunc::EI_WRITE_PIPE_4: in fold()
848 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in TDOFold()
892 assert((FInfo.getId() == AMDGPULibFunc::EI_POW || in fold_pow()
893 FInfo.getId() == AMDGPULibFunc::EI_POWR || in fold_pow()
894 FInfo.getId() == AMDGPULibFunc::EI_POWN) && in fold_pow()
950 getFunction(M, AMDGPULibFunc(issqrt ? AMDGPULibFunc::EI_SQRT in fold_pow()
951 : AMDGPULibFunc::EI_RSQRT, in fold_pow()
969 double dval = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1026 ExpExpr = getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_EXP2, FInfo)); in fold_pow()
1040 double V = (getArgType(FInfo) == AMDGPULibFunc::F32) in fold_pow()
1046 needcopysign = (FInfo.getId() != AMDGPULibFunc::EI_POWR) && in fold_pow()
1050 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
1057 needcopysign = needabs = FInfo.getId() != AMDGPULibFunc::EI_POWR; in fold_pow()
1069 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in fold_pow()
1083 if (needcopysign && (FInfo.getId() == AMDGPULibFunc::EI_POW)) { in fold_pow()
1102 LogExpr = getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_LOG2, FInfo)); in fold_pow()
1110 if (FInfo.getId() == AMDGPULibFunc::EI_POWN) { in fold_pow()
1167 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_SQRT, FInfo))) { in fold_rootn()
1176 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_CBRT, FInfo))) { in fold_rootn()
1192 getFunction(M, AMDGPULibFunc(AMDGPULibFunc::EI_RSQRT, FInfo))) { in fold_rootn()
1206 if (getArgType(FInfo) == AMDGPULibFunc::F64 || !HasNative(FInfo.getId())) in getNativeFunction()
1209 nf.setPrefix(AMDGPULibFunc::NATIVE); in getNativeFunction()
1312 assert(fInfo.getId() == AMDGPULibFunc::EI_SIN || in fold_sincos()
1313 fInfo.getId() == AMDGPULibFunc::EI_COS); in fold_sincos()
1315 if ((getArgType(fInfo) != AMDGPULibFunc::F32 && in fold_sincos()
1316 getArgType(fInfo) != AMDGPULibFunc::F64) || in fold_sincos()
1317 fInfo.getPrefix() != AMDGPULibFunc::NOPFX) in fold_sincos()
1320 bool const isSin = fInfo.getId() == AMDGPULibFunc::EI_SIN; in fold_sincos()
1330 AMDGPULibFunc SinCosLibFuncPrivate(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1332 AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::PRIVATE_ADDRESS); in fold_sincos()
1334 AMDGPULibFunc SinCosLibFuncGeneric(AMDGPULibFunc::EI_SINCOS, fInfo); in fold_sincos()
1336 AMDGPULibFunc::getEPtrKindFromAddrSpace(AMDGPUAS::FLAT_ADDRESS); in fold_sincos()
1347 FuncInfo PartnerInfo(isSin ? AMDGPULibFunc::EI_COS : AMDGPULibFunc::EI_SIN, in fold_sincos()
1428 opr0 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1434 opr1 = (getArgType(FInfo) == AMDGPULibFunc::F64) in evaluateScalarMathFunc()
1442 case AMDGPULibFunc::EI_ACOS: in evaluateScalarMathFunc()
1446 case AMDGPULibFunc::EI_ACOSH: in evaluateScalarMathFunc()
1451 case AMDGPULibFunc::EI_ACOSPI: in evaluateScalarMathFunc()
1455 case AMDGPULibFunc::EI_ASIN: in evaluateScalarMathFunc()
1459 case AMDGPULibFunc::EI_ASINH: in evaluateScalarMathFunc()
1464 case AMDGPULibFunc::EI_ASINPI: in evaluateScalarMathFunc()
1468 case AMDGPULibFunc::EI_ATAN: in evaluateScalarMathFunc()
1472 case AMDGPULibFunc::EI_ATANH: in evaluateScalarMathFunc()
1477 case AMDGPULibFunc::EI_ATANPI: in evaluateScalarMathFunc()
1481 case AMDGPULibFunc::EI_CBRT: in evaluateScalarMathFunc()
1485 case AMDGPULibFunc::EI_COS: in evaluateScalarMathFunc()
1489 case AMDGPULibFunc::EI_COSH: in evaluateScalarMathFunc()
1493 case AMDGPULibFunc::EI_COSPI: in evaluateScalarMathFunc()
1497 case AMDGPULibFunc::EI_EXP: in evaluateScalarMathFunc()
1501 case AMDGPULibFunc::EI_EXP2: in evaluateScalarMathFunc()
1505 case AMDGPULibFunc::EI_EXP10: in evaluateScalarMathFunc()
1509 case AMDGPULibFunc::EI_LOG: in evaluateScalarMathFunc()
1513 case AMDGPULibFunc::EI_LOG2: in evaluateScalarMathFunc()
1517 case AMDGPULibFunc::EI_LOG10: in evaluateScalarMathFunc()
1521 case AMDGPULibFunc::EI_RSQRT: in evaluateScalarMathFunc()
1525 case AMDGPULibFunc::EI_SIN: in evaluateScalarMathFunc()
1529 case AMDGPULibFunc::EI_SINH: in evaluateScalarMathFunc()
1533 case AMDGPULibFunc::EI_SINPI: in evaluateScalarMathFunc()
1537 case AMDGPULibFunc::EI_TAN: in evaluateScalarMathFunc()
1541 case AMDGPULibFunc::EI_TANH: in evaluateScalarMathFunc()
1545 case AMDGPULibFunc::EI_TANPI: in evaluateScalarMathFunc()
1550 case AMDGPULibFunc::EI_POW: in evaluateScalarMathFunc()
1551 case AMDGPULibFunc::EI_POWR: in evaluateScalarMathFunc()
1555 case AMDGPULibFunc::EI_POWN: { in evaluateScalarMathFunc()
1564 case AMDGPULibFunc::EI_ROOTN: { in evaluateScalarMathFunc()
1574 case AMDGPULibFunc::EI_SINCOS: in evaluateScalarMathFunc()
1597 if (FInfo.getId() != AMDGPULibFunc::EI_SINCOS) in evaluateCall()
1607 bool hasTwoResults = (FInfo.getId() == AMDGPULibFunc::EI_SINCOS); in evaluateCall()
1631 if (getArgType(FInfo) == AMDGPULibFunc::F32) { in evaluateCall()
1655 assert(FInfo.getId() == AMDGPULibFunc::EI_SINCOS && in evaluateCall()