tint: Implement acosh, asinh, atanh

Polyfill them completely for HLSL.

For the other backends, just add range checks for acosh and atanh.

Fixed: tint:1465
Change-Id: I3abda99b474d9f5ba09abf400381467dc28ea0bd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94380
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
dan sinclair
2022-06-28 15:27:44 +00:00
committed by Dawn LUCI CQ
parent 6058882d4b
commit d23f296a9a
157 changed files with 11784 additions and 4686 deletions

View File

@@ -35,6 +35,9 @@ BuiltinType ParseBuiltinType(const std::string& name) {
if (name == "acos") {
return BuiltinType::kAcos;
}
if (name == "acosh") {
return BuiltinType::kAcosh;
}
if (name == "all") {
return BuiltinType::kAll;
}
@@ -47,12 +50,18 @@ BuiltinType ParseBuiltinType(const std::string& name) {
if (name == "asin") {
return BuiltinType::kAsin;
}
if (name == "asinh") {
return BuiltinType::kAsinh;
}
if (name == "atan") {
return BuiltinType::kAtan;
}
if (name == "atan2") {
return BuiltinType::kAtan2;
}
if (name == "atanh") {
return BuiltinType::kAtanh;
}
if (name == "ceil") {
return BuiltinType::kCeil;
}
@@ -358,6 +367,8 @@ const char* str(BuiltinType i) {
return "abs";
case BuiltinType::kAcos:
return "acos";
case BuiltinType::kAcosh:
return "acosh";
case BuiltinType::kAll:
return "all";
case BuiltinType::kAny:
@@ -366,10 +377,14 @@ const char* str(BuiltinType i) {
return "arrayLength";
case BuiltinType::kAsin:
return "asin";
case BuiltinType::kAsinh:
return "asinh";
case BuiltinType::kAtan:
return "atan";
case BuiltinType::kAtan2:
return "atan2";
case BuiltinType::kAtanh:
return "atanh";
case BuiltinType::kCeil:
return "ceil";
case BuiltinType::kClamp:

View File

@@ -35,12 +35,15 @@ enum class BuiltinType {
kNone = -1,
kAbs,
kAcos,
kAcosh,
kAll,
kAny,
kArrayLength,
kAsin,
kAsinh,
kAtan,
kAtan2,
kAtanh,
kCeil,
kClamp,
kCos,