tint: Add unary-ops to the intrinsic table

• Declare all the unary ops in the intrinsics.def file.
• Reimplement the bulk of Resolver::UnaryOp() with the IntrinsicTable.

This will simplify maintenance of the operators, and will greatly
simplify the [AbstractInt -> i32|u32] [AbstractFloat -> f32|f16] logic.

Bug: tint:1504
Change-Id: Ifc646d086fc93cfbe3f3f861b8c447178664c1f7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89028
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
diff --git a/src/tint/resolver/intrinsic_table.inl.tmpl b/src/tint/resolver/intrinsic_table.inl.tmpl
index 86813ac..9eeaebc 100644
--- a/src/tint/resolver/intrinsic_table.inl.tmpl
+++ b/src/tint/resolver/intrinsic_table.inl.tmpl
@@ -427,7 +427,9 @@
 {{-   else if eq . "&&" -}}LogicalAnd
 {{-   else if eq . "||" -}}LogicalOr
 {{-   else if eq . "==" -}}Equal
+{{-   else if eq . "!"  -}}Not
 {{-   else if eq . "!=" -}}NotEqual
+{{-   else if eq . "~"  -}}Complement
 {{-   else if eq . "<"  -}}LessThan
 {{-   else if eq . ">"  -}}GreaterThan
 {{-   else if eq . "<=" -}}LessThanEqual