From f8fed843bbb44c2a57f943cc11d0024f177247ba Mon Sep 17 00:00:00 2001 From: Pearu Peterson Date: Wed, 21 Aug 2024 22:02:33 +0300 Subject: [PATCH] Refactor complex asin/acos/asinh/acosh to use asin_acos_kernel. Improve real acos accuracy. (#2496) As in the title. This PR introduces asin_acos_kernel operation that implements modified Hull et al algorithm for evaluating complex asin, acos, asinh, and acosh operations. This task corresponds to the refactor request in https://github.com/openxla/stablehlo/pull/2411#discussion_r1662810017 and it resolves https://github.com/pearu/functional_algorithms/issues/15. In addition, the PR also improves the real acos accuracy as a fix to https://github.com/openxla/stablehlo/issues/2452 . As a result, the accuracy of single-precision real acos improved as follows (using 1 million samples): ``` main this PR ULP difference == 0 count is 971713 -> 999045 ULP difference == 1 count is 28158 -> 962 ULP difference == 2 count is 54 -> 0 ULP difference == 3 count is 20 -> 0 ULP difference >= 4 count is 62 -> 0 ``` The cause of the revert by PR https://github.com/openxla/stablehlo/pull/2449 (`acos(-1) -> 0` while expecting `pi`) is fixed in functional_algorithms which now also generates extra samples that correspond to limiting values of real acos. For instance, `acos(-1)->pi`, `acos(nextafter(-1, -inf))->nan`, and `acos(nextafter(-1, int)-> approx pi` are now included in the tests. The required functional_algorithms version is now 0.9 which includes a fix to `fa.utils.real_samples` to return samples that are distributed uniformly with respect to ULP differences of neighboring samples. This fix lead to updates of `stablehlo/tests/math/*.mlir`. --- build_tools/math/README.md | 6 +- .../generate_ChloDecompositionPatternsMath.py | 3 +- build_tools/math/generate_tests.py | 2 + stablehlo/dialect/ChloOps.cpp | 1 + stablehlo/dialect/ChloOps.td | 22 + .../chlo/chlo_legalize_to_stablehlo.mlir | 1214 +++++++++-------- stablehlo/tests/math/acos_complex128.mlir | 4 +- stablehlo/tests/math/acos_complex64.mlir | 4 +- stablehlo/tests/math/acos_float32.mlir | 20 +- stablehlo/tests/math/acos_float64.mlir | 20 +- stablehlo/tests/math/acosh_complex128.mlir | 4 +- stablehlo/tests/math/acosh_complex64.mlir | 4 +- stablehlo/tests/math/acosh_float32.mlir | 4 +- stablehlo/tests/math/acosh_float64.mlir | 4 +- stablehlo/tests/math/asin_complex128.mlir | 4 +- stablehlo/tests/math/asin_complex64.mlir | 4 +- stablehlo/tests/math/asin_float32.mlir | 20 +- stablehlo/tests/math/asin_float64.mlir | 20 +- stablehlo/tests/math/asinh_complex128.mlir | 4 +- stablehlo/tests/math/asinh_complex64.mlir | 4 +- stablehlo/tests/math/asinh_float32.mlir | 4 +- stablehlo/tests/math/asinh_float64.mlir | 4 +- .../transforms/ChloDecompositionPatterns.td | 31 - .../ChloDecompositionPatternsMath.td | 1018 +++++--------- 24 files changed, 1069 insertions(+), 1356 deletions(-) diff --git a/build_tools/math/README.md b/build_tools/math/README.md index 437970da5d2..018ee801306 100644 --- a/build_tools/math/README.md +++ b/build_tools/math/README.md @@ -31,7 +31,7 @@ following requirements: - Python 3.11 or newer - mpmath 1.3 or newer -- functional_algorithms 0.7.0 or newer +- functional_algorithms 0.9.1 or newer that can be installed via pypi: @@ -62,8 +62,8 @@ To execute generated tests from a `build` directory, use: ```sh for t in $(ls ../stablehlo/tests/math/*.mlir); \ -do bin/stablehlo-opt --chlo-legalize-to-stablehlo $t \ - | bin/stablehlo-translate --interpret ; done +do echo $t && ( bin/stablehlo-opt --chlo-legalize-to-stablehlo $t \ + | bin/stablehlo-translate --interpret ) ; done ``` When new implementations are generated, one likely needs to update diff --git a/build_tools/math/generate_ChloDecompositionPatternsMath.py b/build_tools/math/generate_ChloDecompositionPatternsMath.py index ff16a45211b..cd3ca031440 100644 --- a/build_tools/math/generate_ChloDecompositionPatternsMath.py +++ b/build_tools/math/generate_ChloDecompositionPatternsMath.py @@ -80,6 +80,7 @@ def main(): sources = [] target = fa.targets.stablehlo for chloname, fname, args in [ + ("CHLO_AsinAcosKernelOp", "asin_acos_kernel", ("z:complex",)), ("CHLO_AsinOp", "complex_asin", ("z:complex",)), ("CHLO_AsinOp", "real_asin", ("x:float",)), ("CHLO_AcosOp", "complex_acos", ("z:complex",)), @@ -92,7 +93,7 @@ def main(): func = getattr(fa.algorithms, fname, None) if func is None: warnings.warn( - "{fa.algorithms.__name__} does not define {fname}. Skipping.") + f"{fa.algorithms.__name__} does not define {fname}. Skipping.") continue ctx = fa.Context(paths=[fa.algorithms]) graph = ctx.trace(func, *args).implement_missing(target).simplify() diff --git a/build_tools/math/generate_tests.py b/build_tools/math/generate_tests.py index 99cbd6fe62a..9045da7963e 100644 --- a/build_tools/math/generate_tests.py +++ b/build_tools/math/generate_tests.py @@ -167,6 +167,8 @@ def main(): include_subnormal=not flush_subnormals, ).flatten() + samples = np.concatenate((samples, fa.utils.extra_samples(opname, dtype))) + expected = getattr(nmp, mpmath_opname).call(samples, enable_progressbar=True) expected = np.array(expected, dtype) diff --git a/stablehlo/dialect/ChloOps.cpp b/stablehlo/dialect/ChloOps.cpp index 83bb2c6777a..237031892de 100644 --- a/stablehlo/dialect/ChloOps.cpp +++ b/stablehlo/dialect/ChloOps.cpp @@ -72,6 +72,7 @@ namespace chlo { inferredReturnShapes); \ } +INFER_RETURN_TYPE_COMPONENTS_FROM_OPERANDS(AsinAcosKernelOp) INFER_RETURN_TYPE_COMPONENTS_FROM_OPERANDS(AcosOp) INFER_RETURN_TYPE_COMPONENTS_FROM_OPERANDS(AcoshOp) INFER_RETURN_TYPE_COMPONENTS_FROM_OPERANDS(AsinOp) diff --git a/stablehlo/dialect/ChloOps.td b/stablehlo/dialect/ChloOps.td index fc7a7054d49..86c38850031 100644 --- a/stablehlo/dialect/ChloOps.td +++ b/stablehlo/dialect/ChloOps.td @@ -471,6 +471,28 @@ class CHLO_UnaryElementwiseOp traits, }]; } +def CHLO_AsinAcosKernelOp : CHLO_UnaryElementwiseOp<"_asin_acos_kernel", + [HLO_CompatibleOperandsAndResultType], HLO_AnyComplexTensor> { + let summary = "AsinAcosKernel operator"; + + let description = [{ + Returns `AsinAcosKernel(operand)` element-wise. + + If + w = _asin_acos_kernel(z) + w' = _asin_acos_kernel(I * z) + then + asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) + acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) + asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) + acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real)) + + This op is used as an intermediate value in decompositions and + should never be constructed directly by frameworks or consumed by + backends. + }]; +} + def CHLO_AcosOp : CHLO_UnaryElementwiseOp<"acos", [HLO_CompatibleOperandsAndResultType], HLO_AnyFpOrComplexTensor> { let summary = "Acos operator"; diff --git a/stablehlo/tests/chlo/chlo_legalize_to_stablehlo.mlir b/stablehlo/tests/chlo/chlo_legalize_to_stablehlo.mlir index ae30600c405..4cec20f508f 100644 --- a/stablehlo/tests/chlo/chlo_legalize_to_stablehlo.mlir +++ b/stablehlo/tests/chlo/chlo_legalize_to_stablehlo.mlir @@ -1,17 +1,17 @@ // RUN: stablehlo-opt --chlo-legalize-to-stablehlo --split-input-file --verify-diagnostics %s | FileCheck %s -// CHECK-LABEL: func.func @asin_bf16( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor -// CHECK-NEXT: %[[TMP_0:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_2:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_3:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_4:.*]] = stablehlo.multiply %[[TMP_2]], %[[TMP_3]] : tensor -// CHECK-NEXT: %[[TMP_5:.*]] = stablehlo.sqrt %[[TMP_4]] : tensor -// CHECK-NEXT: %[[TMP_6:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_5]] : tensor -// CHECK-NEXT: %[[TMP_7:.*]] = stablehlo.atan2 %[[TMP_arg0]], %[[TMP_6]] : tensor -// CHECK-NEXT: %[[TMP_8:.*]] = stablehlo.multiply %[[TMP_0]], %[[TMP_7]] : tensor -// CHECK-NEXT: return %[[TMP_8]] : tensor +// CHECK-LABEL: func.func @asin_bf16( +// CHECK-SAME: %[[VAL_0:.*]]: tensor) -> tensor { +// CHECK: %[[VAL_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.subtract %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.multiply %[[VAL_2]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.sqrt %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.atan2 %[[VAL_0]], %[[VAL_6]] : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.add %[[VAL_7]], %[[VAL_7]] : tensor +// CHECK: return %[[VAL_8]] : tensor +// CHECK: } func.func @asin_bf16(%arg : tensor) -> tensor { %result = "chlo.asin"(%arg) : (tensor) -> tensor func.return %result : tensor @@ -19,18 +19,18 @@ func.func @asin_bf16(%arg : tensor) -> tensor { // ----- -// CHECK-LABEL: func.func @asin_f16( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor -// CHECK-NEXT: %[[TMP_0:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_2:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_3:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_4:.*]] = stablehlo.multiply %[[TMP_2]], %[[TMP_3]] : tensor -// CHECK-NEXT: %[[TMP_5:.*]] = stablehlo.sqrt %[[TMP_4]] : tensor -// CHECK-NEXT: %[[TMP_6:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_5]] : tensor -// CHECK-NEXT: %[[TMP_7:.*]] = stablehlo.atan2 %[[TMP_arg0]], %[[TMP_6]] : tensor -// CHECK-NEXT: %[[TMP_8:.*]] = stablehlo.multiply %[[TMP_0]], %[[TMP_7]] : tensor -// CHECK-NEXT: return %[[TMP_8]] : tensor +// CHECK-LABEL: func.func @asin_f16( +// CHECK-SAME: %[[VAL_0:.*]]: tensor) -> tensor { +// CHECK: %[[VAL_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.subtract %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.multiply %[[VAL_2]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.sqrt %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.atan2 %[[VAL_0]], %[[VAL_6]] : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.add %[[VAL_7]], %[[VAL_7]] : tensor +// CHECK: return %[[VAL_8]] : tensor +// CHECK: } func.func @asin_f16(%arg : tensor) -> tensor { %result = "chlo.asin"(%arg) : (tensor) -> tensor func.return %result : tensor @@ -38,18 +38,18 @@ func.func @asin_f16(%arg : tensor) -> tensor { // ----- -// CHECK-LABEL: func.func @asin_f32( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor) -> tensor -// CHECK-NEXT: %[[TMP_0:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_2:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_3:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_4:.*]] = stablehlo.multiply %[[TMP_2]], %[[TMP_3]] : tensor -// CHECK-NEXT: %[[TMP_5:.*]] = stablehlo.sqrt %[[TMP_4]] : tensor -// CHECK-NEXT: %[[TMP_6:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_5]] : tensor -// CHECK-NEXT: %[[TMP_7:.*]] = stablehlo.atan2 %[[TMP_arg0]], %[[TMP_6]] : tensor -// CHECK-NEXT: %[[TMP_8:.*]] = stablehlo.multiply %[[TMP_0]], %[[TMP_7]] : tensor -// CHECK-NEXT: return %[[TMP_8]] : tensor +// CHECK-LABEL: func.func @asin_f32( +// CHECK-SAME: %[[VAL_0:.*]]: tensor) -> tensor { +// CHECK: %[[VAL_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.subtract %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.multiply %[[VAL_2]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.sqrt %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.atan2 %[[VAL_0]], %[[VAL_6]] : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.add %[[VAL_7]], %[[VAL_7]] : tensor +// CHECK: return %[[VAL_8]] : tensor +// CHECK: } func.func @asin_f32(%arg : tensor) -> tensor { %result = "chlo.asin"(%arg) : (tensor) -> tensor func.return %result : tensor @@ -57,18 +57,18 @@ func.func @asin_f32(%arg : tensor) -> tensor { // ----- -// CHECK-LABEL: func.func @asin_f64( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor) -> tensor -// CHECK-NEXT: %[[TMP_0:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK-NEXT: %[[TMP_2:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_3:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_arg0]] : tensor -// CHECK-NEXT: %[[TMP_4:.*]] = stablehlo.multiply %[[TMP_2]], %[[TMP_3]] : tensor -// CHECK-NEXT: %[[TMP_5:.*]] = stablehlo.sqrt %[[TMP_4]] : tensor -// CHECK-NEXT: %[[TMP_6:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_5]] : tensor -// CHECK-NEXT: %[[TMP_7:.*]] = stablehlo.atan2 %[[TMP_arg0]], %[[TMP_6]] : tensor -// CHECK-NEXT: %[[TMP_8:.*]] = stablehlo.multiply %[[TMP_0]], %[[TMP_7]] : tensor -// CHECK-NEXT: return %[[TMP_8]] : tensor +// CHECK-LABEL: func.func @asin_f64( +// CHECK-SAME: %[[VAL_0:.*]]: tensor) -> tensor { +// CHECK: %[[VAL_1:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.subtract %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_0]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.multiply %[[VAL_2]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.sqrt %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.add %[[VAL_1]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.atan2 %[[VAL_0]], %[[VAL_6]] : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.add %[[VAL_7]], %[[VAL_7]] : tensor +// CHECK: return %[[VAL_8]] : tensor +// CHECK: } func.func @asin_f64(%arg : tensor) -> tensor { %result = "chlo.asin"(%arg) : (tensor) -> tensor func.return %result : tensor @@ -76,143 +76,150 @@ func.func @asin_f64(%arg : tensor) -> tensor { // ----- -// CHECK-LABEL: func.func @asin_complex_f32( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor>) -> tensor> -// CHECK: %[[TMP_0:.*]] = stablehlo.real %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_1:.*]] = stablehlo.abs %[[TMP_0]] : tensor -// CHECK: %[[TMP_2:.*]] = stablehlo.imag %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_3:.*]] = stablehlo.abs %[[TMP_2]] : tensor -// CHECK: %[[TMP_4:.*]] = stablehlo.maximum %[[TMP_1]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_5:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor -// CHECK: %[[TMP_6:.*]] = stablehlo.sqrt %[[TMP_5]] : tensor -// CHECK: %[[TMP_7:.*]] = stablehlo.constant dense<8.000000e+00> : tensor -// CHECK: %[[TMP_8:.*]] = stablehlo.divide %[[TMP_6]], %[[TMP_7]] : tensor -// CHECK: %[[TMP_9:.*]] = stablehlo.compare GE, %[[TMP_4]], %[[TMP_8]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_10:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK: %[[TMP_11:.*]] = stablehlo.compare LE, %[[TMP_1]], %[[TMP_10]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_12:.*]] = stablehlo.constant dense<5.000000e-01> : tensor -// CHECK: %[[TMP_13:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_10]] : tensor -// CHECK: %[[TMP_14:.*]] = stablehlo.abs %[[TMP_13]] : tensor -// CHECK: %[[TMP_15:.*]] = stablehlo.maximum %[[TMP_14]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_16:.*]] = stablehlo.minimum %[[TMP_14]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_17:.*]] = stablehlo.compare EQ, %[[TMP_15]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_18:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK: %[[TMP_19:.*]] = stablehlo.sqrt %[[TMP_18]] : tensor -// CHECK: %[[TMP_20:.*]] = stablehlo.multiply %[[TMP_19]], %[[TMP_15]] : tensor -// CHECK: %[[TMP_21:.*]] = stablehlo.divide %[[TMP_16]], %[[TMP_15]] : tensor -// CHECK: %[[TMP_22:.*]] = stablehlo.multiply %[[TMP_21]], %[[TMP_21]] : tensor -// CHECK: %[[TMP_23:.*]] = stablehlo.add %[[TMP_10]], %[[TMP_22]] : tensor -// CHECK: %[[TMP_24:.*]] = stablehlo.sqrt %[[TMP_23]] : tensor -// CHECK: %[[TMP_25:.*]] = stablehlo.compare EQ, %[[TMP_24]], %[[TMP_10]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_26:.*]] = stablehlo.constant dense<0.000000e+00> : tensor -// CHECK: %[[TMP_27:.*]] = stablehlo.compare GT, %[[TMP_22]], %[[TMP_26]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_28:.*]] = stablehlo.and %[[TMP_25]], %[[TMP_27]] : tensor -// CHECK: %[[TMP_29:.*]] = stablehlo.multiply %[[TMP_15]], %[[TMP_22]] : tensor -// CHECK: %[[TMP_30:.*]] = stablehlo.divide %[[TMP_29]], %[[TMP_18]] : tensor -// CHECK: %[[TMP_31:.*]] = stablehlo.add %[[TMP_15]], %[[TMP_30]] : tensor -// CHECK: %[[TMP_32:.*]] = stablehlo.multiply %[[TMP_15]], %[[TMP_24]] : tensor -// CHECK: %[[TMP_33:.*]] = stablehlo.select %[[TMP_28]], %[[TMP_31]], %[[TMP_32]] : tensor, tensor -// CHECK: %[[TMP_34:.*]] = stablehlo.select %[[TMP_17]], %[[TMP_20]], %[[TMP_33]] : tensor, tensor -// CHECK: %[[TMP_35:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_10]] : tensor -// CHECK: %[[TMP_36:.*]] = stablehlo.abs %[[TMP_35]] : tensor -// CHECK: %[[TMP_37:.*]] = stablehlo.maximum %[[TMP_36]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_38:.*]] = stablehlo.minimum %[[TMP_36]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_39:.*]] = stablehlo.compare EQ, %[[TMP_37]], %[[TMP_38]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_40:.*]] = stablehlo.multiply %[[TMP_19]], %[[TMP_37]] : tensor -// CHECK: %[[TMP_41:.*]] = stablehlo.divide %[[TMP_38]], %[[TMP_37]] : tensor -// CHECK: %[[TMP_42:.*]] = stablehlo.multiply %[[TMP_41]], %[[TMP_41]] : tensor -// CHECK: %[[TMP_43:.*]] = stablehlo.add %[[TMP_10]], %[[TMP_42]] : tensor -// CHECK: %[[TMP_44:.*]] = stablehlo.sqrt %[[TMP_43]] : tensor -// CHECK: %[[TMP_45:.*]] = stablehlo.compare EQ, %[[TMP_44]], %[[TMP_10]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_46:.*]] = stablehlo.compare GT, %[[TMP_42]], %[[TMP_26]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_47:.*]] = stablehlo.and %[[TMP_45]], %[[TMP_46]] : tensor -// CHECK: %[[TMP_48:.*]] = stablehlo.multiply %[[TMP_37]], %[[TMP_42]] : tensor -// CHECK: %[[TMP_49:.*]] = stablehlo.divide %[[TMP_48]], %[[TMP_18]] : tensor -// CHECK: %[[TMP_50:.*]] = stablehlo.add %[[TMP_37]], %[[TMP_49]] : tensor -// CHECK: %[[TMP_51:.*]] = stablehlo.multiply %[[TMP_37]], %[[TMP_44]] : tensor -// CHECK: %[[TMP_52:.*]] = stablehlo.select %[[TMP_47]], %[[TMP_50]], %[[TMP_51]] : tensor, tensor -// CHECK: %[[TMP_53:.*]] = stablehlo.select %[[TMP_39]], %[[TMP_40]], %[[TMP_52]] : tensor, tensor -// CHECK: %[[TMP_54:.*]] = stablehlo.add %[[TMP_34]], %[[TMP_53]] : tensor -// CHECK: %[[TMP_55:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_54]] : tensor -// CHECK: %[[TMP_56:.*]] = stablehlo.add %[[TMP_55]], %[[TMP_1]] : tensor -// CHECK: %[[TMP_57:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_56]] : tensor -// CHECK: %[[TMP_58:.*]] = stablehlo.multiply %[[TMP_3]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_59:.*]] = stablehlo.add %[[TMP_34]], %[[TMP_13]] : tensor -// CHECK: %[[TMP_60:.*]] = stablehlo.divide %[[TMP_58]], %[[TMP_59]] : tensor -// CHECK: %[[TMP_61:.*]] = stablehlo.subtract %[[TMP_53]], %[[TMP_35]] : tensor -// CHECK: %[[TMP_62:.*]] = stablehlo.add %[[TMP_60]], %[[TMP_61]] : tensor -// CHECK: %[[TMP_63:.*]] = stablehlo.multiply %[[TMP_57]], %[[TMP_62]] : tensor -// CHECK: %[[TMP_64:.*]] = stablehlo.sqrt %[[TMP_63]] : tensor -// CHECK: %[[TMP_65:.*]] = stablehlo.divide %[[TMP_57]], %[[TMP_59]] : tensor -// CHECK: %[[TMP_66:.*]] = stablehlo.add %[[TMP_53]], %[[TMP_35]] : tensor -// CHECK: %[[TMP_67:.*]] = stablehlo.divide %[[TMP_57]], %[[TMP_66]] : tensor -// CHECK: %[[TMP_68:.*]] = stablehlo.add %[[TMP_65]], %[[TMP_67]] : tensor -// CHECK: %[[TMP_69:.*]] = stablehlo.sqrt %[[TMP_68]] : tensor -// CHECK: %[[TMP_70:.*]] = stablehlo.multiply %[[TMP_3]], %[[TMP_69]] : tensor -// CHECK: %[[TMP_71:.*]] = stablehlo.select %[[TMP_11]], %[[TMP_64]], %[[TMP_70]] : tensor, tensor -// CHECK: %[[TMP_72:.*]] = stablehlo.select %[[TMP_9]], %[[TMP_3]], %[[TMP_71]] : tensor, tensor -// CHECK: %[[TMP_73:.*]] = stablehlo.atan2 %[[TMP_0]], %[[TMP_72]] : tensor -// CHECK: %[[TMP_74:.*]] = stablehlo.compare LT, %[[TMP_2]], %[[TMP_26]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_75:.*]] = stablehlo.constant dense<9.99999995E+11> : tensor -// CHECK: %[[TMP_76:.*]] = stablehlo.multiply %[[TMP_8]], %[[TMP_75]] : tensor -// CHECK: %[[TMP_77:.*]] = stablehlo.compare LT, %[[TMP_1]], %[[TMP_76]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_78:.*]] = stablehlo.constant dense<9.99999997E-7> : tensor -// CHECK: %[[TMP_79:.*]] = stablehlo.multiply %[[TMP_8]], %[[TMP_78]] : tensor -// CHECK: %[[TMP_80:.*]] = stablehlo.constant dense<1.000000e+02> : tensor -// CHECK: %[[TMP_81:.*]] = stablehlo.multiply %[[TMP_8]], %[[TMP_80]] : tensor -// CHECK: %[[TMP_82:.*]] = stablehlo.select %[[TMP_77]], %[[TMP_79]], %[[TMP_81]] : tensor, tensor -// CHECK: %[[TMP_83:.*]] = stablehlo.compare GE, %[[TMP_3]], %[[TMP_82]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_84:.*]] = stablehlo.select %[[TMP_83]], %[[TMP_3]], %[[TMP_1]] : tensor, tensor -// CHECK: %[[TMP_85:.*]] = stablehlo.select %[[TMP_83]], %[[TMP_82]], %[[TMP_8]] : tensor, tensor -// CHECK: %[[TMP_86:.*]] = stablehlo.compare GE, %[[TMP_84]], %[[TMP_85]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_87:.*]] = stablehlo.log %[[TMP_18]] : tensor -// CHECK: %[[TMP_88:.*]] = stablehlo.log %[[TMP_84]] : tensor -// CHECK: %[[TMP_89:.*]] = stablehlo.add %[[TMP_87]], %[[TMP_88]] : tensor -// CHECK: %[[TMP_90:.*]] = stablehlo.constant dense<0x7F800000> : tensor -// CHECK: %[[TMP_91:.*]] = stablehlo.compare EQ, %[[TMP_3]], %[[TMP_90]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_92:.*]] = stablehlo.not %[[TMP_91]] : tensor -// CHECK: %[[TMP_93:.*]] = stablehlo.and %[[TMP_83]], %[[TMP_92]] : tensor -// CHECK: %[[TMP_94:.*]] = stablehlo.divide %[[TMP_1]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_95:.*]] = stablehlo.select %[[TMP_93]], %[[TMP_94]], %[[TMP_26]] : tensor, tensor -// CHECK: %[[TMP_96:.*]] = stablehlo.multiply %[[TMP_95]], %[[TMP_95]] : tensor -// CHECK: %[[TMP_97:.*]] = stablehlo.log_plus_one %[[TMP_96]] : tensor -// CHECK: %[[TMP_98:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_97]] : tensor -// CHECK: %[[TMP_99:.*]] = stablehlo.add %[[TMP_89]], %[[TMP_98]] : tensor -// CHECK: %[[TMP_100:.*]] = stablehlo.constant dense<1.17549435E-38> : tensor -// CHECK: %[[TMP_101:.*]] = stablehlo.sqrt %[[TMP_100]] : tensor -// CHECK: %[[TMP_102:.*]] = stablehlo.constant dense<4.000000e+00> : tensor -// CHECK: %[[TMP_103:.*]] = stablehlo.multiply %[[TMP_101]], %[[TMP_102]] : tensor -// CHECK: %[[TMP_104:.*]] = stablehlo.compare LT, %[[TMP_3]], %[[TMP_103]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_105:.*]] = stablehlo.compare LT, %[[TMP_1]], %[[TMP_10]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_106:.*]] = stablehlo.and %[[TMP_104]], %[[TMP_105]] : tensor -// CHECK: %[[TMP_107:.*]] = stablehlo.multiply %[[TMP_13]], %[[TMP_35]] : tensor -// CHECK: %[[TMP_108:.*]] = stablehlo.add %[[TMP_55]], %[[TMP_10]] : tensor -// CHECK: %[[TMP_109:.*]] = stablehlo.divide %[[TMP_107]], %[[TMP_108]] : tensor -// CHECK: %[[TMP_110:.*]] = stablehlo.negate %[[TMP_109]] : tensor -// CHECK: %[[TMP_111:.*]] = stablehlo.compare GE, %[[TMP_1]], %[[TMP_10]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_112:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_58]] : tensor -// CHECK: %[[TMP_113:.*]] = stablehlo.divide %[[TMP_112]], %[[TMP_59]] : tensor -// CHECK: %[[TMP_114:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_66]] : tensor -// CHECK: %[[TMP_115:.*]] = stablehlo.add %[[TMP_113]], %[[TMP_114]] : tensor -// CHECK: %[[TMP_116:.*]] = stablehlo.constant dense<1.500000e+00> : tensor -// CHECK: %[[TMP_117:.*]] = stablehlo.compare LE, %[[TMP_55]], %[[TMP_116]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_118:.*]] = stablehlo.divide %[[TMP_112]], %[[TMP_61]] : tensor -// CHECK: %[[TMP_119:.*]] = stablehlo.add %[[TMP_113]], %[[TMP_118]] : tensor -// CHECK: %[[TMP_120:.*]] = stablehlo.subtract %[[TMP_55]], %[[TMP_10]] : tensor -// CHECK: %[[TMP_121:.*]] = stablehlo.select %[[TMP_117]], %[[TMP_119]], %[[TMP_120]] : tensor, tensor -// CHECK: %[[TMP_122:.*]] = stablehlo.select %[[TMP_111]], %[[TMP_115]], %[[TMP_121]] : tensor, tensor -// CHECK: %[[TMP_123:.*]] = stablehlo.select %[[TMP_106]], %[[TMP_110]], %[[TMP_122]] : tensor, tensor -// CHECK: %[[TMP_124:.*]] = stablehlo.multiply %[[TMP_123]], %[[TMP_108]] : tensor -// CHECK: %[[TMP_125:.*]] = stablehlo.sqrt %[[TMP_124]] : tensor -// CHECK: %[[TMP_126:.*]] = stablehlo.divide %[[TMP_3]], %[[TMP_125]] : tensor -// CHECK: %[[TMP_127:.*]] = stablehlo.add %[[TMP_123]], %[[TMP_125]] : tensor -// CHECK: %[[TMP_128:.*]] = stablehlo.log_plus_one %[[TMP_127]] : tensor -// CHECK: %[[TMP_129:.*]] = stablehlo.select %[[TMP_106]], %[[TMP_126]], %[[TMP_128]] : tensor, tensor -// CHECK: %[[TMP_130:.*]] = stablehlo.select %[[TMP_86]], %[[TMP_99]], %[[TMP_129]] : tensor, tensor -// CHECK: %[[TMP_131:.*]] = stablehlo.negate %[[TMP_130]] : tensor -// CHECK: %[[TMP_132:.*]] = stablehlo.select %[[TMP_74]], %[[TMP_131]], %[[TMP_130]] : tensor, tensor -// CHECK: %[[TMP_133:.*]] = stablehlo.complex %[[TMP_73]], %[[TMP_132]] : tensor> -// CHECK: return %[[TMP_133]] : tensor> +// CHECK-LABEL: func.func @asin_complex_f32( +// CHECK-SAME: %[[VAL_0:.*]]: tensor>) -> tensor> { +// CHECK: %[[VAL_1:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.abs %[[VAL_2]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.abs %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.maximum %[[VAL_3]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.sqrt %[[VAL_7]] : tensor +// CHECK: %[[VAL_9:.*]] = stablehlo.constant dense<8.000000e+00> : tensor +// CHECK: %[[VAL_10:.*]] = stablehlo.divide %[[VAL_8]], %[[VAL_9]] : tensor +// CHECK: %[[VAL_11:.*]] = stablehlo.compare GE, %[[VAL_6]], %[[VAL_10]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_12:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_13:.*]] = stablehlo.compare LE, %[[VAL_3]], %[[VAL_12]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_14:.*]] = stablehlo.constant dense<5.000000e-01> : tensor +// CHECK: %[[VAL_15:.*]] = stablehlo.add %[[VAL_3]], %[[VAL_12]] : tensor +// CHECK: %[[VAL_16:.*]] = stablehlo.abs %[[VAL_15]] : tensor +// CHECK: %[[VAL_17:.*]] = stablehlo.maximum %[[VAL_16]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_18:.*]] = stablehlo.minimum %[[VAL_16]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_19:.*]] = stablehlo.compare EQ, %[[VAL_17]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_20:.*]] = stablehlo.constant dense<2.000000e+00> : tensor +// CHECK: %[[VAL_21:.*]] = stablehlo.sqrt %[[VAL_20]] : tensor +// CHECK: %[[VAL_22:.*]] = stablehlo.multiply %[[VAL_21]], %[[VAL_17]] : tensor +// CHECK: %[[VAL_23:.*]] = stablehlo.divide %[[VAL_18]], %[[VAL_17]] : tensor +// CHECK: %[[VAL_24:.*]] = stablehlo.multiply %[[VAL_23]], %[[VAL_23]] : tensor +// CHECK: %[[VAL_25:.*]] = stablehlo.add %[[VAL_12]], %[[VAL_24]] : tensor +// CHECK: %[[VAL_26:.*]] = stablehlo.sqrt %[[VAL_25]] : tensor +// CHECK: %[[VAL_27:.*]] = stablehlo.compare EQ, %[[VAL_26]], %[[VAL_12]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_28:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_29:.*]] = stablehlo.compare GT, %[[VAL_24]], %[[VAL_28]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_30:.*]] = stablehlo.and %[[VAL_27]], %[[VAL_29]] : tensor +// CHECK: %[[VAL_31:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_24]] : tensor +// CHECK: %[[VAL_32:.*]] = stablehlo.divide %[[VAL_31]], %[[VAL_20]] : tensor +// CHECK: %[[VAL_33:.*]] = stablehlo.add %[[VAL_17]], %[[VAL_32]] : tensor +// CHECK: %[[VAL_34:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_26]] : tensor +// CHECK: %[[VAL_35:.*]] = stablehlo.select %[[VAL_30]], %[[VAL_33]], %[[VAL_34]] : tensor, tensor +// CHECK: %[[VAL_36:.*]] = stablehlo.select %[[VAL_19]], %[[VAL_22]], %[[VAL_35]] : tensor, tensor +// CHECK: %[[VAL_37:.*]] = stablehlo.subtract %[[VAL_3]], %[[VAL_12]] : tensor +// CHECK: %[[VAL_38:.*]] = stablehlo.abs %[[VAL_37]] : tensor +// CHECK: %[[VAL_39:.*]] = stablehlo.maximum %[[VAL_38]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_40:.*]] = stablehlo.minimum %[[VAL_38]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_41:.*]] = stablehlo.compare EQ, %[[VAL_39]], %[[VAL_40]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_42:.*]] = stablehlo.multiply %[[VAL_21]], %[[VAL_39]] : tensor +// CHECK: %[[VAL_43:.*]] = stablehlo.divide %[[VAL_40]], %[[VAL_39]] : tensor +// CHECK: %[[VAL_44:.*]] = stablehlo.multiply %[[VAL_43]], %[[VAL_43]] : tensor +// CHECK: %[[VAL_45:.*]] = stablehlo.add %[[VAL_12]], %[[VAL_44]] : tensor +// CHECK: %[[VAL_46:.*]] = stablehlo.sqrt %[[VAL_45]] : tensor +// CHECK: %[[VAL_47:.*]] = stablehlo.compare EQ, %[[VAL_46]], %[[VAL_12]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_48:.*]] = stablehlo.compare GT, %[[VAL_44]], %[[VAL_28]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_49:.*]] = stablehlo.and %[[VAL_47]], %[[VAL_48]] : tensor +// CHECK: %[[VAL_50:.*]] = stablehlo.multiply %[[VAL_39]], %[[VAL_44]] : tensor +// CHECK: %[[VAL_51:.*]] = stablehlo.divide %[[VAL_50]], %[[VAL_20]] : tensor +// CHECK: %[[VAL_52:.*]] = stablehlo.add %[[VAL_39]], %[[VAL_51]] : tensor +// CHECK: %[[VAL_53:.*]] = stablehlo.multiply %[[VAL_39]], %[[VAL_46]] : tensor +// CHECK: %[[VAL_54:.*]] = stablehlo.select %[[VAL_49]], %[[VAL_52]], %[[VAL_53]] : tensor, tensor +// CHECK: %[[VAL_55:.*]] = stablehlo.select %[[VAL_41]], %[[VAL_42]], %[[VAL_54]] : tensor, tensor +// CHECK: %[[VAL_56:.*]] = stablehlo.add %[[VAL_36]], %[[VAL_55]] : tensor +// CHECK: %[[VAL_57:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_56]] : tensor +// CHECK: %[[VAL_58:.*]] = stablehlo.add %[[VAL_57]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_59:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_58]] : tensor +// CHECK: %[[VAL_60:.*]] = stablehlo.multiply %[[VAL_5]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_61:.*]] = stablehlo.add %[[VAL_36]], %[[VAL_15]] : tensor +// CHECK: %[[VAL_62:.*]] = stablehlo.divide %[[VAL_60]], %[[VAL_61]] : tensor +// CHECK: %[[VAL_63:.*]] = stablehlo.subtract %[[VAL_55]], %[[VAL_37]] : tensor +// CHECK: %[[VAL_64:.*]] = stablehlo.add %[[VAL_62]], %[[VAL_63]] : tensor +// CHECK: %[[VAL_65:.*]] = stablehlo.multiply %[[VAL_59]], %[[VAL_64]] : tensor +// CHECK: %[[VAL_66:.*]] = stablehlo.sqrt %[[VAL_65]] : tensor +// CHECK: %[[VAL_67:.*]] = stablehlo.divide %[[VAL_59]], %[[VAL_61]] : tensor +// CHECK: %[[VAL_68:.*]] = stablehlo.add %[[VAL_55]], %[[VAL_37]] : tensor +// CHECK: %[[VAL_69:.*]] = stablehlo.divide %[[VAL_59]], %[[VAL_68]] : tensor +// CHECK: %[[VAL_70:.*]] = stablehlo.add %[[VAL_67]], %[[VAL_69]] : tensor +// CHECK: %[[VAL_71:.*]] = stablehlo.sqrt %[[VAL_70]] : tensor +// CHECK: %[[VAL_72:.*]] = stablehlo.multiply %[[VAL_5]], %[[VAL_71]] : tensor +// CHECK: %[[VAL_73:.*]] = stablehlo.select %[[VAL_13]], %[[VAL_66]], %[[VAL_72]] : tensor, tensor +// CHECK: %[[VAL_74:.*]] = stablehlo.select %[[VAL_11]], %[[VAL_5]], %[[VAL_73]] : tensor, tensor +// CHECK: %[[VAL_75:.*]] = stablehlo.constant dense<9.99999995E+11> : tensor +// CHECK: %[[VAL_76:.*]] = stablehlo.multiply %[[VAL_10]], %[[VAL_75]] : tensor +// CHECK: %[[VAL_77:.*]] = stablehlo.compare LT, %[[VAL_3]], %[[VAL_76]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_78:.*]] = stablehlo.constant dense<9.99999997E-7> : tensor +// CHECK: %[[VAL_79:.*]] = stablehlo.multiply %[[VAL_10]], %[[VAL_78]] : tensor +// CHECK: %[[VAL_80:.*]] = stablehlo.constant dense<1.000000e+02> : tensor +// CHECK: %[[VAL_81:.*]] = stablehlo.multiply %[[VAL_10]], %[[VAL_80]] : tensor +// CHECK: %[[VAL_82:.*]] = stablehlo.select %[[VAL_77]], %[[VAL_79]], %[[VAL_81]] : tensor, tensor +// CHECK: %[[VAL_83:.*]] = stablehlo.compare GE, %[[VAL_5]], %[[VAL_82]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_84:.*]] = stablehlo.select %[[VAL_83]], %[[VAL_5]], %[[VAL_3]] : tensor, tensor +// CHECK: %[[VAL_85:.*]] = stablehlo.select %[[VAL_83]], %[[VAL_82]], %[[VAL_10]] : tensor, tensor +// CHECK: %[[VAL_86:.*]] = stablehlo.compare GE, %[[VAL_84]], %[[VAL_85]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_87:.*]] = stablehlo.log %[[VAL_20]] : tensor +// CHECK: %[[VAL_88:.*]] = stablehlo.log %[[VAL_84]] : tensor +// CHECK: %[[VAL_89:.*]] = stablehlo.add %[[VAL_87]], %[[VAL_88]] : tensor +// CHECK: %[[VAL_90:.*]] = stablehlo.constant dense<0x7F800000> : tensor +// CHECK: %[[VAL_91:.*]] = stablehlo.compare EQ, %[[VAL_5]], %[[VAL_90]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_92:.*]] = stablehlo.not %[[VAL_91]] : tensor +// CHECK: %[[VAL_93:.*]] = stablehlo.and %[[VAL_83]], %[[VAL_92]] : tensor +// CHECK: %[[VAL_94:.*]] = stablehlo.divide %[[VAL_3]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_95:.*]] = stablehlo.select %[[VAL_93]], %[[VAL_94]], %[[VAL_28]] : tensor, tensor +// CHECK: %[[VAL_96:.*]] = stablehlo.multiply %[[VAL_95]], %[[VAL_95]] : tensor +// CHECK: %[[VAL_97:.*]] = stablehlo.log_plus_one %[[VAL_96]] : tensor +// CHECK: %[[VAL_98:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_97]] : tensor +// CHECK: %[[VAL_99:.*]] = stablehlo.add %[[VAL_89]], %[[VAL_98]] : tensor +// CHECK: %[[VAL_100:.*]] = stablehlo.constant dense<1.17549435E-38> : tensor +// CHECK: %[[VAL_101:.*]] = stablehlo.sqrt %[[VAL_100]] : tensor +// CHECK: %[[VAL_102:.*]] = stablehlo.constant dense<4.000000e+00> : tensor +// CHECK: %[[VAL_103:.*]] = stablehlo.multiply %[[VAL_101]], %[[VAL_102]] : tensor +// CHECK: %[[VAL_104:.*]] = stablehlo.compare LT, %[[VAL_5]], %[[VAL_103]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_105:.*]] = stablehlo.compare LT, %[[VAL_3]], %[[VAL_12]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_106:.*]] = stablehlo.and %[[VAL_104]], %[[VAL_105]] : tensor +// CHECK: %[[VAL_107:.*]] = stablehlo.multiply %[[VAL_15]], %[[VAL_37]] : tensor +// CHECK: %[[VAL_108:.*]] = stablehlo.add %[[VAL_57]], %[[VAL_12]] : tensor +// CHECK: %[[VAL_109:.*]] = stablehlo.divide %[[VAL_107]], %[[VAL_108]] : tensor +// CHECK: %[[VAL_110:.*]] = stablehlo.negate %[[VAL_109]] : tensor +// CHECK: %[[VAL_111:.*]] = stablehlo.compare GE, %[[VAL_3]], %[[VAL_12]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_112:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_113:.*]] = stablehlo.divide %[[VAL_112]], %[[VAL_61]] : tensor +// CHECK: %[[VAL_114:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_68]] : tensor +// CHECK: %[[VAL_115:.*]] = stablehlo.add %[[VAL_113]], %[[VAL_114]] : tensor +// CHECK: %[[VAL_116:.*]] = stablehlo.constant dense<1.500000e+00> : tensor +// CHECK: %[[VAL_117:.*]] = stablehlo.compare LE, %[[VAL_57]], %[[VAL_116]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_118:.*]] = stablehlo.divide %[[VAL_112]], %[[VAL_63]] : tensor +// CHECK: %[[VAL_119:.*]] = stablehlo.add %[[VAL_113]], %[[VAL_118]] : tensor +// CHECK: %[[VAL_120:.*]] = stablehlo.subtract %[[VAL_57]], %[[VAL_12]] : tensor +// CHECK: %[[VAL_121:.*]] = stablehlo.select %[[VAL_117]], %[[VAL_119]], %[[VAL_120]] : tensor, tensor +// CHECK: %[[VAL_122:.*]] = stablehlo.select %[[VAL_111]], %[[VAL_115]], %[[VAL_121]] : tensor, tensor +// CHECK: %[[VAL_123:.*]] = stablehlo.select %[[VAL_106]], %[[VAL_110]], %[[VAL_122]] : tensor, tensor +// CHECK: %[[VAL_124:.*]] = stablehlo.multiply %[[VAL_123]], %[[VAL_108]] : tensor +// CHECK: %[[VAL_125:.*]] = stablehlo.sqrt %[[VAL_124]] : tensor +// CHECK: %[[VAL_126:.*]] = stablehlo.divide %[[VAL_5]], %[[VAL_125]] : tensor +// CHECK: %[[VAL_127:.*]] = stablehlo.add %[[VAL_123]], %[[VAL_125]] : tensor +// CHECK: %[[VAL_128:.*]] = stablehlo.log_plus_one %[[VAL_127]] : tensor +// CHECK: %[[VAL_129:.*]] = stablehlo.select %[[VAL_106]], %[[VAL_126]], %[[VAL_128]] : tensor, tensor +// CHECK: %[[VAL_130:.*]] = stablehlo.select %[[VAL_86]], %[[VAL_99]], %[[VAL_129]] : tensor, tensor +// CHECK: %[[VAL_131:.*]] = stablehlo.complex %[[VAL_74]], %[[VAL_130]] : tensor> +// CHECK: %[[VAL_132:.*]] = stablehlo.real %[[VAL_131]] : (tensor>) -> tensor +// CHECK: %[[VAL_133:.*]] = stablehlo.atan2 %[[VAL_1]], %[[VAL_132]] : tensor +// CHECK: %[[VAL_134:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_135:.*]] = stablehlo.imag %[[VAL_131]] : (tensor>) -> tensor +// CHECK: %[[VAL_136:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_137:.*]] = stablehlo.compare LT, %[[VAL_134]], %[[VAL_136]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_138:.*]] = stablehlo.negate %[[VAL_135]] : tensor +// CHECK: %[[VAL_139:.*]] = stablehlo.select %[[VAL_137]], %[[VAL_138]], %[[VAL_135]] : tensor, tensor +// CHECK: %[[VAL_140:.*]] = stablehlo.complex %[[VAL_133]], %[[VAL_139]] : tensor> +// CHECK: return %[[VAL_140]] : tensor> +// CHECK: } func.func @asin_complex_f32(%arg : tensor>) -> tensor> { %result = "chlo.asin"(%arg) : (tensor>) -> tensor> func.return %result : tensor> @@ -220,169 +227,178 @@ func.func @asin_complex_f32(%arg : tensor>) -> tensor> // ----- -// CHECK-LABEL: func.func @asin_complex_f64_dynamic( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor>) -> tensor> -// CHECK: %[[TMP_0:.*]] = stablehlo.real %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_1:.*]] = stablehlo.abs %[[TMP_0]] : tensor -// CHECK: %[[TMP_2:.*]] = stablehlo.imag %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_3:.*]] = stablehlo.abs %[[TMP_2]] : tensor -// CHECK: %[[TMP_4:.*]] = stablehlo.maximum %[[TMP_1]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_5:.*]] = stablehlo.constant dense<1.7976931348623157E+308> : tensor -// CHECK: %[[TMP_6:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_7:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_5]], %[[TMP_6]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_8:.*]] = stablehlo.sqrt %[[TMP_7]] : tensor -// CHECK: %[[TMP_9:.*]] = stablehlo.constant dense<8.000000e+00> : tensor -// CHECK: %[[TMP_10:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_11:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_9]], %[[TMP_10]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_12:.*]] = stablehlo.divide %[[TMP_8]], %[[TMP_11]] : tensor -// CHECK: %[[TMP_13:.*]] = stablehlo.compare GE, %[[TMP_4]], %[[TMP_12]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_14:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK: %[[TMP_15:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_16:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_14]], %[[TMP_15]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_17:.*]] = stablehlo.compare LE, %[[TMP_1]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_18:.*]] = stablehlo.constant dense<5.000000e-01> : tensor -// CHECK: %[[TMP_19:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_20:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_18]], %[[TMP_19]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_21:.*]] = stablehlo.add %[[TMP_1]], %[[TMP_16]] : tensor -// CHECK: %[[TMP_22:.*]] = stablehlo.abs %[[TMP_21]] : tensor -// CHECK: %[[TMP_23:.*]] = stablehlo.maximum %[[TMP_22]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_24:.*]] = stablehlo.minimum %[[TMP_22]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_25:.*]] = stablehlo.compare EQ, %[[TMP_23]], %[[TMP_24]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_26:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK: %[[TMP_27:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_28:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_26]], %[[TMP_27]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_29:.*]] = stablehlo.sqrt %[[TMP_28]] : tensor -// CHECK: %[[TMP_30:.*]] = stablehlo.multiply %[[TMP_29]], %[[TMP_23]] : tensor -// CHECK: %[[TMP_31:.*]] = stablehlo.divide %[[TMP_24]], %[[TMP_23]] : tensor -// CHECK: %[[TMP_32:.*]] = stablehlo.multiply %[[TMP_31]], %[[TMP_31]] : tensor -// CHECK: %[[TMP_33:.*]] = stablehlo.add %[[TMP_16]], %[[TMP_32]] : tensor -// CHECK: %[[TMP_34:.*]] = stablehlo.sqrt %[[TMP_33]] : tensor -// CHECK: %[[TMP_35:.*]] = stablehlo.compare EQ, %[[TMP_34]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_36:.*]] = stablehlo.constant dense<0.000000e+00> : tensor -// CHECK: %[[TMP_37:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_38:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_36]], %[[TMP_37]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_39:.*]] = stablehlo.compare GT, %[[TMP_32]], %[[TMP_38]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_40:.*]] = stablehlo.and %[[TMP_35]], %[[TMP_39]] : tensor -// CHECK: %[[TMP_41:.*]] = stablehlo.multiply %[[TMP_23]], %[[TMP_32]] : tensor -// CHECK: %[[TMP_42:.*]] = stablehlo.divide %[[TMP_41]], %[[TMP_28]] : tensor -// CHECK: %[[TMP_43:.*]] = stablehlo.add %[[TMP_23]], %[[TMP_42]] : tensor -// CHECK: %[[TMP_44:.*]] = stablehlo.multiply %[[TMP_23]], %[[TMP_34]] : tensor -// CHECK: %[[TMP_45:.*]] = stablehlo.select %[[TMP_40]], %[[TMP_43]], %[[TMP_44]] : tensor, tensor -// CHECK: %[[TMP_46:.*]] = stablehlo.select %[[TMP_25]], %[[TMP_30]], %[[TMP_45]] : tensor, tensor -// CHECK: %[[TMP_47:.*]] = stablehlo.subtract %[[TMP_1]], %[[TMP_16]] : tensor -// CHECK: %[[TMP_48:.*]] = stablehlo.abs %[[TMP_47]] : tensor -// CHECK: %[[TMP_49:.*]] = stablehlo.maximum %[[TMP_48]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_50:.*]] = stablehlo.minimum %[[TMP_48]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_51:.*]] = stablehlo.compare EQ, %[[TMP_49]], %[[TMP_50]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_52:.*]] = stablehlo.multiply %[[TMP_29]], %[[TMP_49]] : tensor -// CHECK: %[[TMP_53:.*]] = stablehlo.divide %[[TMP_50]], %[[TMP_49]] : tensor -// CHECK: %[[TMP_54:.*]] = stablehlo.multiply %[[TMP_53]], %[[TMP_53]] : tensor -// CHECK: %[[TMP_55:.*]] = stablehlo.add %[[TMP_16]], %[[TMP_54]] : tensor -// CHECK: %[[TMP_56:.*]] = stablehlo.sqrt %[[TMP_55]] : tensor -// CHECK: %[[TMP_57:.*]] = stablehlo.compare EQ, %[[TMP_56]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_58:.*]] = stablehlo.compare GT, %[[TMP_54]], %[[TMP_38]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_59:.*]] = stablehlo.and %[[TMP_57]], %[[TMP_58]] : tensor -// CHECK: %[[TMP_60:.*]] = stablehlo.multiply %[[TMP_49]], %[[TMP_54]] : tensor -// CHECK: %[[TMP_61:.*]] = stablehlo.divide %[[TMP_60]], %[[TMP_28]] : tensor -// CHECK: %[[TMP_62:.*]] = stablehlo.add %[[TMP_49]], %[[TMP_61]] : tensor -// CHECK: %[[TMP_63:.*]] = stablehlo.multiply %[[TMP_49]], %[[TMP_56]] : tensor -// CHECK: %[[TMP_64:.*]] = stablehlo.select %[[TMP_59]], %[[TMP_62]], %[[TMP_63]] : tensor, tensor -// CHECK: %[[TMP_65:.*]] = stablehlo.select %[[TMP_51]], %[[TMP_52]], %[[TMP_64]] : tensor, tensor -// CHECK: %[[TMP_66:.*]] = stablehlo.add %[[TMP_46]], %[[TMP_65]] : tensor -// CHECK: %[[TMP_67:.*]] = stablehlo.multiply %[[TMP_20]], %[[TMP_66]] : tensor -// CHECK: %[[TMP_68:.*]] = stablehlo.add %[[TMP_67]], %[[TMP_1]] : tensor -// CHECK: %[[TMP_69:.*]] = stablehlo.multiply %[[TMP_20]], %[[TMP_68]] : tensor -// CHECK: %[[TMP_70:.*]] = stablehlo.multiply %[[TMP_3]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_71:.*]] = stablehlo.add %[[TMP_46]], %[[TMP_21]] : tensor -// CHECK: %[[TMP_72:.*]] = stablehlo.divide %[[TMP_70]], %[[TMP_71]] : tensor -// CHECK: %[[TMP_73:.*]] = stablehlo.subtract %[[TMP_65]], %[[TMP_47]] : tensor -// CHECK: %[[TMP_74:.*]] = stablehlo.add %[[TMP_72]], %[[TMP_73]] : tensor -// CHECK: %[[TMP_75:.*]] = stablehlo.multiply %[[TMP_69]], %[[TMP_74]] : tensor -// CHECK: %[[TMP_76:.*]] = stablehlo.sqrt %[[TMP_75]] : tensor -// CHECK: %[[TMP_77:.*]] = stablehlo.divide %[[TMP_69]], %[[TMP_71]] : tensor -// CHECK: %[[TMP_78:.*]] = stablehlo.add %[[TMP_65]], %[[TMP_47]] : tensor -// CHECK: %[[TMP_79:.*]] = stablehlo.divide %[[TMP_69]], %[[TMP_78]] : tensor -// CHECK: %[[TMP_80:.*]] = stablehlo.add %[[TMP_77]], %[[TMP_79]] : tensor -// CHECK: %[[TMP_81:.*]] = stablehlo.sqrt %[[TMP_80]] : tensor -// CHECK: %[[TMP_82:.*]] = stablehlo.multiply %[[TMP_3]], %[[TMP_81]] : tensor -// CHECK: %[[TMP_83:.*]] = stablehlo.select %[[TMP_17]], %[[TMP_76]], %[[TMP_82]] : tensor, tensor -// CHECK: %[[TMP_84:.*]] = stablehlo.select %[[TMP_13]], %[[TMP_3]], %[[TMP_83]] : tensor, tensor -// CHECK: %[[TMP_85:.*]] = stablehlo.atan2 %[[TMP_0]], %[[TMP_84]] : tensor -// CHECK: %[[TMP_86:.*]] = stablehlo.compare LT, %[[TMP_2]], %[[TMP_38]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_87:.*]] = stablehlo.constant dense<1.000000e+12> : tensor -// CHECK: %[[TMP_88:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_89:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_87]], %[[TMP_88]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_90:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_89]] : tensor -// CHECK: %[[TMP_91:.*]] = stablehlo.compare LT, %[[TMP_1]], %[[TMP_90]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_92:.*]] = stablehlo.constant dense<9.9999999999999995E-7> : tensor -// CHECK: %[[TMP_93:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_94:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_92]], %[[TMP_93]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_95:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_94]] : tensor -// CHECK: %[[TMP_96:.*]] = stablehlo.constant dense<1.000000e+02> : tensor -// CHECK: %[[TMP_97:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_98:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_96]], %[[TMP_97]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_99:.*]] = stablehlo.multiply %[[TMP_12]], %[[TMP_98]] : tensor -// CHECK: %[[TMP_100:.*]] = stablehlo.select %[[TMP_91]], %[[TMP_95]], %[[TMP_99]] : tensor, tensor -// CHECK: %[[TMP_101:.*]] = stablehlo.compare GE, %[[TMP_3]], %[[TMP_100]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_102:.*]] = stablehlo.select %[[TMP_101]], %[[TMP_3]], %[[TMP_1]] : tensor, tensor -// CHECK: %[[TMP_103:.*]] = stablehlo.select %[[TMP_101]], %[[TMP_100]], %[[TMP_12]] : tensor, tensor -// CHECK: %[[TMP_104:.*]] = stablehlo.compare GE, %[[TMP_102]], %[[TMP_103]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_105:.*]] = stablehlo.log %[[TMP_28]] : tensor -// CHECK: %[[TMP_106:.*]] = stablehlo.log %[[TMP_102]] : tensor -// CHECK: %[[TMP_107:.*]] = stablehlo.add %[[TMP_105]], %[[TMP_106]] : tensor -// CHECK: %[[TMP_108:.*]] = stablehlo.constant dense<0x7FF0000000000000> : tensor -// CHECK: %[[TMP_109:.*]] = shape.shape_of %[[TMP_2]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_110:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_108]], %[[TMP_109]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_111:.*]] = stablehlo.compare EQ, %[[TMP_3]], %[[TMP_110]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_112:.*]] = stablehlo.not %[[TMP_111]] : tensor -// CHECK: %[[TMP_113:.*]] = stablehlo.and %[[TMP_101]], %[[TMP_112]] : tensor -// CHECK: %[[TMP_114:.*]] = stablehlo.divide %[[TMP_1]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_115:.*]] = stablehlo.select %[[TMP_113]], %[[TMP_114]], %[[TMP_38]] : tensor, tensor -// CHECK: %[[TMP_116:.*]] = stablehlo.multiply %[[TMP_115]], %[[TMP_115]] : tensor -// CHECK: %[[TMP_117:.*]] = stablehlo.log_plus_one %[[TMP_116]] : tensor -// CHECK: %[[TMP_118:.*]] = stablehlo.multiply %[[TMP_20]], %[[TMP_117]] : tensor -// CHECK: %[[TMP_119:.*]] = stablehlo.add %[[TMP_107]], %[[TMP_118]] : tensor -// CHECK: %[[TMP_120:.*]] = stablehlo.constant dense<2.2250738585072014E-308> : tensor -// CHECK: %[[TMP_121:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_122:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_120]], %[[TMP_121]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_123:.*]] = stablehlo.sqrt %[[TMP_122]] : tensor -// CHECK: %[[TMP_124:.*]] = stablehlo.constant dense<4.000000e+00> : tensor -// CHECK: %[[TMP_125:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_126:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_124]], %[[TMP_125]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_127:.*]] = stablehlo.multiply %[[TMP_123]], %[[TMP_126]] : tensor -// CHECK: %[[TMP_128:.*]] = stablehlo.compare LT, %[[TMP_3]], %[[TMP_127]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_129:.*]] = stablehlo.compare LT, %[[TMP_1]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_130:.*]] = stablehlo.and %[[TMP_128]], %[[TMP_129]] : tensor -// CHECK: %[[TMP_131:.*]] = stablehlo.multiply %[[TMP_21]], %[[TMP_47]] : tensor -// CHECK: %[[TMP_132:.*]] = stablehlo.add %[[TMP_67]], %[[TMP_16]] : tensor -// CHECK: %[[TMP_133:.*]] = stablehlo.divide %[[TMP_131]], %[[TMP_132]] : tensor -// CHECK: %[[TMP_134:.*]] = stablehlo.negate %[[TMP_133]] : tensor -// CHECK: %[[TMP_135:.*]] = stablehlo.compare GE, %[[TMP_1]], %[[TMP_16]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_136:.*]] = stablehlo.multiply %[[TMP_20]], %[[TMP_70]] : tensor -// CHECK: %[[TMP_137:.*]] = stablehlo.divide %[[TMP_136]], %[[TMP_71]] : tensor -// CHECK: %[[TMP_138:.*]] = stablehlo.multiply %[[TMP_20]], %[[TMP_78]] : tensor -// CHECK: %[[TMP_139:.*]] = stablehlo.add %[[TMP_137]], %[[TMP_138]] : tensor -// CHECK: %[[TMP_140:.*]] = stablehlo.constant dense<1.500000e+00> : tensor -// CHECK: %[[TMP_141:.*]] = shape.shape_of %[[TMP_0]] : tensor -> tensor<1xindex> -// CHECK: %[[TMP_142:.*]] = stablehlo.dynamic_broadcast_in_dim %[[TMP_140]], %[[TMP_141]], dims = [] : (tensor, tensor<1xindex>) -> tensor -// CHECK: %[[TMP_143:.*]] = stablehlo.compare LE, %[[TMP_67]], %[[TMP_142]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_144:.*]] = stablehlo.divide %[[TMP_136]], %[[TMP_73]] : tensor -// CHECK: %[[TMP_145:.*]] = stablehlo.add %[[TMP_137]], %[[TMP_144]] : tensor -// CHECK: %[[TMP_146:.*]] = stablehlo.subtract %[[TMP_67]], %[[TMP_16]] : tensor -// CHECK: %[[TMP_147:.*]] = stablehlo.select %[[TMP_143]], %[[TMP_145]], %[[TMP_146]] : tensor, tensor -// CHECK: %[[TMP_148:.*]] = stablehlo.select %[[TMP_135]], %[[TMP_139]], %[[TMP_147]] : tensor, tensor -// CHECK: %[[TMP_149:.*]] = stablehlo.select %[[TMP_130]], %[[TMP_134]], %[[TMP_148]] : tensor, tensor -// CHECK: %[[TMP_150:.*]] = stablehlo.multiply %[[TMP_149]], %[[TMP_132]] : tensor -// CHECK: %[[TMP_151:.*]] = stablehlo.sqrt %[[TMP_150]] : tensor -// CHECK: %[[TMP_152:.*]] = stablehlo.divide %[[TMP_3]], %[[TMP_151]] : tensor -// CHECK: %[[TMP_153:.*]] = stablehlo.add %[[TMP_149]], %[[TMP_151]] : tensor -// CHECK: %[[TMP_154:.*]] = stablehlo.log_plus_one %[[TMP_153]] : tensor -// CHECK: %[[TMP_155:.*]] = stablehlo.select %[[TMP_130]], %[[TMP_152]], %[[TMP_154]] : tensor, tensor -// CHECK: %[[TMP_156:.*]] = stablehlo.select %[[TMP_104]], %[[TMP_119]], %[[TMP_155]] : tensor, tensor -// CHECK: %[[TMP_157:.*]] = stablehlo.negate %[[TMP_156]] : tensor -// CHECK: %[[TMP_158:.*]] = stablehlo.select %[[TMP_86]], %[[TMP_157]], %[[TMP_156]] : tensor, tensor -// CHECK: %[[TMP_159:.*]] = stablehlo.complex %[[TMP_85]], %[[TMP_158]] : tensor> -// CHECK: return %[[TMP_159]] : tensor> +// CHECK-LABEL: func.func @asin_complex_f64_dynamic( +// CHECK-SAME: %[[VAL_0:.*]]: tensor>) -> tensor> { +// CHECK: %[[VAL_1:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.abs %[[VAL_2]] : tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.abs %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.maximum %[[VAL_3]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.constant dense<1.7976931348623157E+308> : tensor +// CHECK: %[[VAL_8:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_9:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_7]], %[[VAL_8]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_10:.*]] = stablehlo.sqrt %[[VAL_9]] : tensor +// CHECK: %[[VAL_11:.*]] = stablehlo.constant dense<8.000000e+00> : tensor +// CHECK: %[[VAL_12:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_13:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_11]], %[[VAL_12]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_14:.*]] = stablehlo.divide %[[VAL_10]], %[[VAL_13]] : tensor +// CHECK: %[[VAL_15:.*]] = stablehlo.compare GE, %[[VAL_6]], %[[VAL_14]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_16:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_17:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_18:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_16]], %[[VAL_17]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_19:.*]] = stablehlo.compare LE, %[[VAL_3]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_20:.*]] = stablehlo.constant dense<5.000000e-01> : tensor +// CHECK: %[[VAL_21:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_22:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_20]], %[[VAL_21]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_23:.*]] = stablehlo.add %[[VAL_3]], %[[VAL_18]] : tensor +// CHECK: %[[VAL_24:.*]] = stablehlo.abs %[[VAL_23]] : tensor +// CHECK: %[[VAL_25:.*]] = stablehlo.maximum %[[VAL_24]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_26:.*]] = stablehlo.minimum %[[VAL_24]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_27:.*]] = stablehlo.compare EQ, %[[VAL_25]], %[[VAL_26]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_28:.*]] = stablehlo.constant dense<2.000000e+00> : tensor +// CHECK: %[[VAL_29:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_30:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_28]], %[[VAL_29]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_31:.*]] = stablehlo.sqrt %[[VAL_30]] : tensor +// CHECK: %[[VAL_32:.*]] = stablehlo.multiply %[[VAL_31]], %[[VAL_25]] : tensor +// CHECK: %[[VAL_33:.*]] = stablehlo.divide %[[VAL_26]], %[[VAL_25]] : tensor +// CHECK: %[[VAL_34:.*]] = stablehlo.multiply %[[VAL_33]], %[[VAL_33]] : tensor +// CHECK: %[[VAL_35:.*]] = stablehlo.add %[[VAL_18]], %[[VAL_34]] : tensor +// CHECK: %[[VAL_36:.*]] = stablehlo.sqrt %[[VAL_35]] : tensor +// CHECK: %[[VAL_37:.*]] = stablehlo.compare EQ, %[[VAL_36]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_38:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_39:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_40:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_38]], %[[VAL_39]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_41:.*]] = stablehlo.compare GT, %[[VAL_34]], %[[VAL_40]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_42:.*]] = stablehlo.and %[[VAL_37]], %[[VAL_41]] : tensor +// CHECK: %[[VAL_43:.*]] = stablehlo.multiply %[[VAL_25]], %[[VAL_34]] : tensor +// CHECK: %[[VAL_44:.*]] = stablehlo.divide %[[VAL_43]], %[[VAL_30]] : tensor +// CHECK: %[[VAL_45:.*]] = stablehlo.add %[[VAL_25]], %[[VAL_44]] : tensor +// CHECK: %[[VAL_46:.*]] = stablehlo.multiply %[[VAL_25]], %[[VAL_36]] : tensor +// CHECK: %[[VAL_47:.*]] = stablehlo.select %[[VAL_42]], %[[VAL_45]], %[[VAL_46]] : tensor, tensor +// CHECK: %[[VAL_48:.*]] = stablehlo.select %[[VAL_27]], %[[VAL_32]], %[[VAL_47]] : tensor, tensor +// CHECK: %[[VAL_49:.*]] = stablehlo.subtract %[[VAL_3]], %[[VAL_18]] : tensor +// CHECK: %[[VAL_50:.*]] = stablehlo.abs %[[VAL_49]] : tensor +// CHECK: %[[VAL_51:.*]] = stablehlo.maximum %[[VAL_50]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_52:.*]] = stablehlo.minimum %[[VAL_50]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_53:.*]] = stablehlo.compare EQ, %[[VAL_51]], %[[VAL_52]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_54:.*]] = stablehlo.multiply %[[VAL_31]], %[[VAL_51]] : tensor +// CHECK: %[[VAL_55:.*]] = stablehlo.divide %[[VAL_52]], %[[VAL_51]] : tensor +// CHECK: %[[VAL_56:.*]] = stablehlo.multiply %[[VAL_55]], %[[VAL_55]] : tensor +// CHECK: %[[VAL_57:.*]] = stablehlo.add %[[VAL_18]], %[[VAL_56]] : tensor +// CHECK: %[[VAL_58:.*]] = stablehlo.sqrt %[[VAL_57]] : tensor +// CHECK: %[[VAL_59:.*]] = stablehlo.compare EQ, %[[VAL_58]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_60:.*]] = stablehlo.compare GT, %[[VAL_56]], %[[VAL_40]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_61:.*]] = stablehlo.and %[[VAL_59]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_62:.*]] = stablehlo.multiply %[[VAL_51]], %[[VAL_56]] : tensor +// CHECK: %[[VAL_63:.*]] = stablehlo.divide %[[VAL_62]], %[[VAL_30]] : tensor +// CHECK: %[[VAL_64:.*]] = stablehlo.add %[[VAL_51]], %[[VAL_63]] : tensor +// CHECK: %[[VAL_65:.*]] = stablehlo.multiply %[[VAL_51]], %[[VAL_58]] : tensor +// CHECK: %[[VAL_66:.*]] = stablehlo.select %[[VAL_61]], %[[VAL_64]], %[[VAL_65]] : tensor, tensor +// CHECK: %[[VAL_67:.*]] = stablehlo.select %[[VAL_53]], %[[VAL_54]], %[[VAL_66]] : tensor, tensor +// CHECK: %[[VAL_68:.*]] = stablehlo.add %[[VAL_48]], %[[VAL_67]] : tensor +// CHECK: %[[VAL_69:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_68]] : tensor +// CHECK: %[[VAL_70:.*]] = stablehlo.add %[[VAL_69]], %[[VAL_3]] : tensor +// CHECK: %[[VAL_71:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_70]] : tensor +// CHECK: %[[VAL_72:.*]] = stablehlo.multiply %[[VAL_5]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_73:.*]] = stablehlo.add %[[VAL_48]], %[[VAL_23]] : tensor +// CHECK: %[[VAL_74:.*]] = stablehlo.divide %[[VAL_72]], %[[VAL_73]] : tensor +// CHECK: %[[VAL_75:.*]] = stablehlo.subtract %[[VAL_67]], %[[VAL_49]] : tensor +// CHECK: %[[VAL_76:.*]] = stablehlo.add %[[VAL_74]], %[[VAL_75]] : tensor +// CHECK: %[[VAL_77:.*]] = stablehlo.multiply %[[VAL_71]], %[[VAL_76]] : tensor +// CHECK: %[[VAL_78:.*]] = stablehlo.sqrt %[[VAL_77]] : tensor +// CHECK: %[[VAL_79:.*]] = stablehlo.divide %[[VAL_71]], %[[VAL_73]] : tensor +// CHECK: %[[VAL_80:.*]] = stablehlo.add %[[VAL_67]], %[[VAL_49]] : tensor +// CHECK: %[[VAL_81:.*]] = stablehlo.divide %[[VAL_71]], %[[VAL_80]] : tensor +// CHECK: %[[VAL_82:.*]] = stablehlo.add %[[VAL_79]], %[[VAL_81]] : tensor +// CHECK: %[[VAL_83:.*]] = stablehlo.sqrt %[[VAL_82]] : tensor +// CHECK: %[[VAL_84:.*]] = stablehlo.multiply %[[VAL_5]], %[[VAL_83]] : tensor +// CHECK: %[[VAL_85:.*]] = stablehlo.select %[[VAL_19]], %[[VAL_78]], %[[VAL_84]] : tensor, tensor +// CHECK: %[[VAL_86:.*]] = stablehlo.select %[[VAL_15]], %[[VAL_5]], %[[VAL_85]] : tensor, tensor +// CHECK: %[[VAL_87:.*]] = stablehlo.constant dense<1.000000e+12> : tensor +// CHECK: %[[VAL_88:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_89:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_87]], %[[VAL_88]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_90:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_89]] : tensor +// CHECK: %[[VAL_91:.*]] = stablehlo.compare LT, %[[VAL_3]], %[[VAL_90]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_92:.*]] = stablehlo.constant dense<9.9999999999999995E-7> : tensor +// CHECK: %[[VAL_93:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_94:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_92]], %[[VAL_93]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_95:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_94]] : tensor +// CHECK: %[[VAL_96:.*]] = stablehlo.constant dense<1.000000e+02> : tensor +// CHECK: %[[VAL_97:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_98:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_96]], %[[VAL_97]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_99:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_98]] : tensor +// CHECK: %[[VAL_100:.*]] = stablehlo.select %[[VAL_91]], %[[VAL_95]], %[[VAL_99]] : tensor, tensor +// CHECK: %[[VAL_101:.*]] = stablehlo.compare GE, %[[VAL_5]], %[[VAL_100]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_102:.*]] = stablehlo.select %[[VAL_101]], %[[VAL_5]], %[[VAL_3]] : tensor, tensor +// CHECK: %[[VAL_103:.*]] = stablehlo.select %[[VAL_101]], %[[VAL_100]], %[[VAL_14]] : tensor, tensor +// CHECK: %[[VAL_104:.*]] = stablehlo.compare GE, %[[VAL_102]], %[[VAL_103]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_105:.*]] = stablehlo.log %[[VAL_30]] : tensor +// CHECK: %[[VAL_106:.*]] = stablehlo.log %[[VAL_102]] : tensor +// CHECK: %[[VAL_107:.*]] = stablehlo.add %[[VAL_105]], %[[VAL_106]] : tensor +// CHECK: %[[VAL_108:.*]] = stablehlo.constant dense<0x7FF0000000000000> : tensor +// CHECK: %[[VAL_109:.*]] = shape.shape_of %[[VAL_4]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_110:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_108]], %[[VAL_109]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_111:.*]] = stablehlo.compare EQ, %[[VAL_5]], %[[VAL_110]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_112:.*]] = stablehlo.not %[[VAL_111]] : tensor +// CHECK: %[[VAL_113:.*]] = stablehlo.and %[[VAL_101]], %[[VAL_112]] : tensor +// CHECK: %[[VAL_114:.*]] = stablehlo.divide %[[VAL_3]], %[[VAL_5]] : tensor +// CHECK: %[[VAL_115:.*]] = stablehlo.select %[[VAL_113]], %[[VAL_114]], %[[VAL_40]] : tensor, tensor +// CHECK: %[[VAL_116:.*]] = stablehlo.multiply %[[VAL_115]], %[[VAL_115]] : tensor +// CHECK: %[[VAL_117:.*]] = stablehlo.log_plus_one %[[VAL_116]] : tensor +// CHECK: %[[VAL_118:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_117]] : tensor +// CHECK: %[[VAL_119:.*]] = stablehlo.add %[[VAL_107]], %[[VAL_118]] : tensor +// CHECK: %[[VAL_120:.*]] = stablehlo.constant dense<2.2250738585072014E-308> : tensor +// CHECK: %[[VAL_121:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_122:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_120]], %[[VAL_121]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_123:.*]] = stablehlo.sqrt %[[VAL_122]] : tensor +// CHECK: %[[VAL_124:.*]] = stablehlo.constant dense<4.000000e+00> : tensor +// CHECK: %[[VAL_125:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_126:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_124]], %[[VAL_125]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_127:.*]] = stablehlo.multiply %[[VAL_123]], %[[VAL_126]] : tensor +// CHECK: %[[VAL_128:.*]] = stablehlo.compare LT, %[[VAL_5]], %[[VAL_127]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_129:.*]] = stablehlo.compare LT, %[[VAL_3]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_130:.*]] = stablehlo.and %[[VAL_128]], %[[VAL_129]] : tensor +// CHECK: %[[VAL_131:.*]] = stablehlo.multiply %[[VAL_23]], %[[VAL_49]] : tensor +// CHECK: %[[VAL_132:.*]] = stablehlo.add %[[VAL_69]], %[[VAL_18]] : tensor +// CHECK: %[[VAL_133:.*]] = stablehlo.divide %[[VAL_131]], %[[VAL_132]] : tensor +// CHECK: %[[VAL_134:.*]] = stablehlo.negate %[[VAL_133]] : tensor +// CHECK: %[[VAL_135:.*]] = stablehlo.compare GE, %[[VAL_3]], %[[VAL_18]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_136:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_72]] : tensor +// CHECK: %[[VAL_137:.*]] = stablehlo.divide %[[VAL_136]], %[[VAL_73]] : tensor +// CHECK: %[[VAL_138:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_80]] : tensor +// CHECK: %[[VAL_139:.*]] = stablehlo.add %[[VAL_137]], %[[VAL_138]] : tensor +// CHECK: %[[VAL_140:.*]] = stablehlo.constant dense<1.500000e+00> : tensor +// CHECK: %[[VAL_141:.*]] = shape.shape_of %[[VAL_2]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_142:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_140]], %[[VAL_141]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_143:.*]] = stablehlo.compare LE, %[[VAL_69]], %[[VAL_142]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_144:.*]] = stablehlo.divide %[[VAL_136]], %[[VAL_75]] : tensor +// CHECK: %[[VAL_145:.*]] = stablehlo.add %[[VAL_137]], %[[VAL_144]] : tensor +// CHECK: %[[VAL_146:.*]] = stablehlo.subtract %[[VAL_69]], %[[VAL_18]] : tensor +// CHECK: %[[VAL_147:.*]] = stablehlo.select %[[VAL_143]], %[[VAL_145]], %[[VAL_146]] : tensor, tensor +// CHECK: %[[VAL_148:.*]] = stablehlo.select %[[VAL_135]], %[[VAL_139]], %[[VAL_147]] : tensor, tensor +// CHECK: %[[VAL_149:.*]] = stablehlo.select %[[VAL_130]], %[[VAL_134]], %[[VAL_148]] : tensor, tensor +// CHECK: %[[VAL_150:.*]] = stablehlo.multiply %[[VAL_149]], %[[VAL_132]] : tensor +// CHECK: %[[VAL_151:.*]] = stablehlo.sqrt %[[VAL_150]] : tensor +// CHECK: %[[VAL_152:.*]] = stablehlo.divide %[[VAL_5]], %[[VAL_151]] : tensor +// CHECK: %[[VAL_153:.*]] = stablehlo.add %[[VAL_149]], %[[VAL_151]] : tensor +// CHECK: %[[VAL_154:.*]] = stablehlo.log_plus_one %[[VAL_153]] : tensor +// CHECK: %[[VAL_155:.*]] = stablehlo.select %[[VAL_130]], %[[VAL_152]], %[[VAL_154]] : tensor, tensor +// CHECK: %[[VAL_156:.*]] = stablehlo.select %[[VAL_104]], %[[VAL_119]], %[[VAL_155]] : tensor, tensor +// CHECK: %[[VAL_157:.*]] = stablehlo.complex %[[VAL_86]], %[[VAL_156]] : tensor> +// CHECK: %[[VAL_158:.*]] = stablehlo.real %[[VAL_157]] : (tensor>) -> tensor +// CHECK: %[[VAL_159:.*]] = stablehlo.atan2 %[[VAL_1]], %[[VAL_158]] : tensor +// CHECK: %[[VAL_160:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_161:.*]] = stablehlo.imag %[[VAL_157]] : (tensor>) -> tensor +// CHECK: %[[VAL_162:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_163:.*]] = shape.shape_of %[[VAL_161]] : tensor -> tensor<1xindex> +// CHECK: %[[VAL_164:.*]] = stablehlo.dynamic_broadcast_in_dim %[[VAL_162]], %[[VAL_163]], dims = [] : (tensor, tensor<1xindex>) -> tensor +// CHECK: %[[VAL_165:.*]] = stablehlo.compare LT, %[[VAL_160]], %[[VAL_164]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_166:.*]] = stablehlo.negate %[[VAL_161]] : tensor +// CHECK: %[[VAL_167:.*]] = stablehlo.select %[[VAL_165]], %[[VAL_166]], %[[VAL_161]] : tensor, tensor +// CHECK: %[[VAL_168:.*]] = stablehlo.complex %[[VAL_159]], %[[VAL_167]] : tensor> +// CHECK: return %[[VAL_168]] : tensor> +// CHECK: } func.func @asin_complex_f64_dynamic(%arg : tensor>) -> tensor> { %result = "chlo.asin"(%arg) : (tensor>) -> tensor> func.return %result : tensor> @@ -456,147 +472,147 @@ func.func @asinh_f64(%arg : tensor) -> tensor { // CHECK-LABEL: func.func @asinh_complex_f32( // CHECK-SAME: %[[VAL_0:.*]]: tensor>) -> tensor> { -// CHECK: %[[VAL_1:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor -// CHECK: %[[VAL_2:.*]] = stablehlo.negate %[[VAL_1]] : tensor -// CHECK: %[[VAL_3:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor -// CHECK: %[[VAL_4:.*]] = stablehlo.complex %[[VAL_2]], %[[VAL_3]] : tensor> -// CHECK: %[[VAL_5:.*]] = stablehlo.real %[[VAL_4]] : (tensor>) -> tensor -// CHECK: %[[VAL_6:.*]] = stablehlo.abs %[[VAL_5]] : tensor -// CHECK: %[[VAL_7:.*]] = stablehlo.imag %[[VAL_4]] : (tensor>) -> tensor +// CHECK: %[[VAL_1:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.compare LT, %[[VAL_1]], %[[VAL_2]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.negate %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.complex %[[VAL_5]], %[[VAL_1]] : tensor> +// CHECK: %[[VAL_7:.*]] = stablehlo.real %[[VAL_6]] : (tensor>) -> tensor // CHECK: %[[VAL_8:.*]] = stablehlo.abs %[[VAL_7]] : tensor -// CHECK: %[[VAL_9:.*]] = stablehlo.maximum %[[VAL_6]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_10:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor -// CHECK: %[[VAL_11:.*]] = stablehlo.sqrt %[[VAL_10]] : tensor -// CHECK: %[[VAL_12:.*]] = stablehlo.constant dense<8.000000e+00> : tensor -// CHECK: %[[VAL_13:.*]] = stablehlo.divide %[[VAL_11]], %[[VAL_12]] : tensor -// CHECK: %[[VAL_14:.*]] = stablehlo.compare GE, %[[VAL_9]], %[[VAL_13]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_15:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK: %[[VAL_16:.*]] = stablehlo.compare LE, %[[VAL_6]], %[[VAL_15]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_17:.*]] = stablehlo.constant dense<5.000000e-01> : tensor -// CHECK: %[[VAL_18:.*]] = stablehlo.add %[[VAL_6]], %[[VAL_15]] : tensor -// CHECK: %[[VAL_19:.*]] = stablehlo.abs %[[VAL_18]] : tensor -// CHECK: %[[VAL_20:.*]] = stablehlo.maximum %[[VAL_19]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_21:.*]] = stablehlo.minimum %[[VAL_19]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_22:.*]] = stablehlo.compare EQ, %[[VAL_20]], %[[VAL_21]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_23:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK: %[[VAL_24:.*]] = stablehlo.sqrt %[[VAL_23]] : tensor -// CHECK: %[[VAL_25:.*]] = stablehlo.multiply %[[VAL_24]], %[[VAL_20]] : tensor -// CHECK: %[[VAL_26:.*]] = stablehlo.divide %[[VAL_21]], %[[VAL_20]] : tensor -// CHECK: %[[VAL_27:.*]] = stablehlo.multiply %[[VAL_26]], %[[VAL_26]] : tensor -// CHECK: %[[VAL_28:.*]] = stablehlo.add %[[VAL_15]], %[[VAL_27]] : tensor -// CHECK: %[[VAL_29:.*]] = stablehlo.sqrt %[[VAL_28]] : tensor -// CHECK: %[[VAL_30:.*]] = stablehlo.compare EQ, %[[VAL_29]], %[[VAL_15]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_31:.*]] = stablehlo.constant dense<0.000000e+00> : tensor -// CHECK: %[[VAL_32:.*]] = stablehlo.compare GT, %[[VAL_27]], %[[VAL_31]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_33:.*]] = stablehlo.and %[[VAL_30]], %[[VAL_32]] : tensor -// CHECK: %[[VAL_34:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_27]] : tensor -// CHECK: %[[VAL_35:.*]] = stablehlo.divide %[[VAL_34]], %[[VAL_23]] : tensor -// CHECK: %[[VAL_36:.*]] = stablehlo.add %[[VAL_20]], %[[VAL_35]] : tensor -// CHECK: %[[VAL_37:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_29]] : tensor -// CHECK: %[[VAL_38:.*]] = stablehlo.select %[[VAL_33]], %[[VAL_36]], %[[VAL_37]] : tensor, tensor -// CHECK: %[[VAL_39:.*]] = stablehlo.select %[[VAL_22]], %[[VAL_25]], %[[VAL_38]] : tensor, tensor -// CHECK: %[[VAL_40:.*]] = stablehlo.subtract %[[VAL_6]], %[[VAL_15]] : tensor -// CHECK: %[[VAL_41:.*]] = stablehlo.abs %[[VAL_40]] : tensor -// CHECK: %[[VAL_42:.*]] = stablehlo.maximum %[[VAL_41]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_43:.*]] = stablehlo.minimum %[[VAL_41]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_44:.*]] = stablehlo.compare EQ, %[[VAL_42]], %[[VAL_43]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_45:.*]] = stablehlo.multiply %[[VAL_24]], %[[VAL_42]] : tensor -// CHECK: %[[VAL_46:.*]] = stablehlo.divide %[[VAL_43]], %[[VAL_42]] : tensor -// CHECK: %[[VAL_47:.*]] = stablehlo.multiply %[[VAL_46]], %[[VAL_46]] : tensor -// CHECK: %[[VAL_48:.*]] = stablehlo.add %[[VAL_15]], %[[VAL_47]] : tensor -// CHECK: %[[VAL_49:.*]] = stablehlo.sqrt %[[VAL_48]] : tensor -// CHECK: %[[VAL_50:.*]] = stablehlo.compare EQ, %[[VAL_49]], %[[VAL_15]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_51:.*]] = stablehlo.compare GT, %[[VAL_47]], %[[VAL_31]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_52:.*]] = stablehlo.and %[[VAL_50]], %[[VAL_51]] : tensor -// CHECK: %[[VAL_53:.*]] = stablehlo.multiply %[[VAL_42]], %[[VAL_47]] : tensor -// CHECK: %[[VAL_54:.*]] = stablehlo.divide %[[VAL_53]], %[[VAL_23]] : tensor -// CHECK: %[[VAL_55:.*]] = stablehlo.add %[[VAL_42]], %[[VAL_54]] : tensor -// CHECK: %[[VAL_56:.*]] = stablehlo.multiply %[[VAL_42]], %[[VAL_49]] : tensor -// CHECK: %[[VAL_57:.*]] = stablehlo.select %[[VAL_52]], %[[VAL_55]], %[[VAL_56]] : tensor, tensor -// CHECK: %[[VAL_58:.*]] = stablehlo.select %[[VAL_44]], %[[VAL_45]], %[[VAL_57]] : tensor, tensor -// CHECK: %[[VAL_59:.*]] = stablehlo.add %[[VAL_39]], %[[VAL_58]] : tensor -// CHECK: %[[VAL_60:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_59]] : tensor -// CHECK: %[[VAL_61:.*]] = stablehlo.add %[[VAL_60]], %[[VAL_6]] : tensor -// CHECK: %[[VAL_62:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_61]] : tensor -// CHECK: %[[VAL_63:.*]] = stablehlo.multiply %[[VAL_8]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_64:.*]] = stablehlo.add %[[VAL_39]], %[[VAL_18]] : tensor -// CHECK: %[[VAL_65:.*]] = stablehlo.divide %[[VAL_63]], %[[VAL_64]] : tensor -// CHECK: %[[VAL_66:.*]] = stablehlo.subtract %[[VAL_58]], %[[VAL_40]] : tensor -// CHECK: %[[VAL_67:.*]] = stablehlo.add %[[VAL_65]], %[[VAL_66]] : tensor -// CHECK: %[[VAL_68:.*]] = stablehlo.multiply %[[VAL_62]], %[[VAL_67]] : tensor -// CHECK: %[[VAL_69:.*]] = stablehlo.sqrt %[[VAL_68]] : tensor -// CHECK: %[[VAL_70:.*]] = stablehlo.divide %[[VAL_62]], %[[VAL_64]] : tensor -// CHECK: %[[VAL_71:.*]] = stablehlo.add %[[VAL_58]], %[[VAL_40]] : tensor -// CHECK: %[[VAL_72:.*]] = stablehlo.divide %[[VAL_62]], %[[VAL_71]] : tensor -// CHECK: %[[VAL_73:.*]] = stablehlo.add %[[VAL_70]], %[[VAL_72]] : tensor -// CHECK: %[[VAL_74:.*]] = stablehlo.sqrt %[[VAL_73]] : tensor -// CHECK: %[[VAL_75:.*]] = stablehlo.multiply %[[VAL_8]], %[[VAL_74]] : tensor -// CHECK: %[[VAL_76:.*]] = stablehlo.select %[[VAL_16]], %[[VAL_69]], %[[VAL_75]] : tensor, tensor -// CHECK: %[[VAL_77:.*]] = stablehlo.select %[[VAL_14]], %[[VAL_8]], %[[VAL_76]] : tensor, tensor -// CHECK: %[[VAL_78:.*]] = stablehlo.atan2 %[[VAL_5]], %[[VAL_77]] : tensor -// CHECK: %[[VAL_79:.*]] = stablehlo.compare LT, %[[VAL_7]], %[[VAL_31]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_9:.*]] = stablehlo.imag %[[VAL_6]] : (tensor>) -> tensor +// CHECK: %[[VAL_10:.*]] = stablehlo.abs %[[VAL_9]] : tensor +// CHECK: %[[VAL_11:.*]] = stablehlo.maximum %[[VAL_8]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_12:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor +// CHECK: %[[VAL_13:.*]] = stablehlo.sqrt %[[VAL_12]] : tensor +// CHECK: %[[VAL_14:.*]] = stablehlo.constant dense<8.000000e+00> : tensor +// CHECK: %[[VAL_15:.*]] = stablehlo.divide %[[VAL_13]], %[[VAL_14]] : tensor +// CHECK: %[[VAL_16:.*]] = stablehlo.compare GE, %[[VAL_11]], %[[VAL_15]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_17:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_18:.*]] = stablehlo.compare LE, %[[VAL_8]], %[[VAL_17]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_19:.*]] = stablehlo.constant dense<5.000000e-01> : tensor +// CHECK: %[[VAL_20:.*]] = stablehlo.add %[[VAL_8]], %[[VAL_17]] : tensor +// CHECK: %[[VAL_21:.*]] = stablehlo.abs %[[VAL_20]] : tensor +// CHECK: %[[VAL_22:.*]] = stablehlo.maximum %[[VAL_21]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_23:.*]] = stablehlo.minimum %[[VAL_21]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_24:.*]] = stablehlo.compare EQ, %[[VAL_22]], %[[VAL_23]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_25:.*]] = stablehlo.constant dense<2.000000e+00> : tensor +// CHECK: %[[VAL_26:.*]] = stablehlo.sqrt %[[VAL_25]] : tensor +// CHECK: %[[VAL_27:.*]] = stablehlo.multiply %[[VAL_26]], %[[VAL_22]] : tensor +// CHECK: %[[VAL_28:.*]] = stablehlo.divide %[[VAL_23]], %[[VAL_22]] : tensor +// CHECK: %[[VAL_29:.*]] = stablehlo.multiply %[[VAL_28]], %[[VAL_28]] : tensor +// CHECK: %[[VAL_30:.*]] = stablehlo.add %[[VAL_17]], %[[VAL_29]] : tensor +// CHECK: %[[VAL_31:.*]] = stablehlo.sqrt %[[VAL_30]] : tensor +// CHECK: %[[VAL_32:.*]] = stablehlo.compare EQ, %[[VAL_31]], %[[VAL_17]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_33:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_34:.*]] = stablehlo.compare GT, %[[VAL_29]], %[[VAL_33]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_35:.*]] = stablehlo.and %[[VAL_32]], %[[VAL_34]] : tensor +// CHECK: %[[VAL_36:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_29]] : tensor +// CHECK: %[[VAL_37:.*]] = stablehlo.divide %[[VAL_36]], %[[VAL_25]] : tensor +// CHECK: %[[VAL_38:.*]] = stablehlo.add %[[VAL_22]], %[[VAL_37]] : tensor +// CHECK: %[[VAL_39:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_31]] : tensor +// CHECK: %[[VAL_40:.*]] = stablehlo.select %[[VAL_35]], %[[VAL_38]], %[[VAL_39]] : tensor, tensor +// CHECK: %[[VAL_41:.*]] = stablehlo.select %[[VAL_24]], %[[VAL_27]], %[[VAL_40]] : tensor, tensor +// CHECK: %[[VAL_42:.*]] = stablehlo.subtract %[[VAL_8]], %[[VAL_17]] : tensor +// CHECK: %[[VAL_43:.*]] = stablehlo.abs %[[VAL_42]] : tensor +// CHECK: %[[VAL_44:.*]] = stablehlo.maximum %[[VAL_43]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_45:.*]] = stablehlo.minimum %[[VAL_43]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_46:.*]] = stablehlo.compare EQ, %[[VAL_44]], %[[VAL_45]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_47:.*]] = stablehlo.multiply %[[VAL_26]], %[[VAL_44]] : tensor +// CHECK: %[[VAL_48:.*]] = stablehlo.divide %[[VAL_45]], %[[VAL_44]] : tensor +// CHECK: %[[VAL_49:.*]] = stablehlo.multiply %[[VAL_48]], %[[VAL_48]] : tensor +// CHECK: %[[VAL_50:.*]] = stablehlo.add %[[VAL_17]], %[[VAL_49]] : tensor +// CHECK: %[[VAL_51:.*]] = stablehlo.sqrt %[[VAL_50]] : tensor +// CHECK: %[[VAL_52:.*]] = stablehlo.compare EQ, %[[VAL_51]], %[[VAL_17]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_53:.*]] = stablehlo.compare GT, %[[VAL_49]], %[[VAL_33]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_54:.*]] = stablehlo.and %[[VAL_52]], %[[VAL_53]] : tensor +// CHECK: %[[VAL_55:.*]] = stablehlo.multiply %[[VAL_44]], %[[VAL_49]] : tensor +// CHECK: %[[VAL_56:.*]] = stablehlo.divide %[[VAL_55]], %[[VAL_25]] : tensor +// CHECK: %[[VAL_57:.*]] = stablehlo.add %[[VAL_44]], %[[VAL_56]] : tensor +// CHECK: %[[VAL_58:.*]] = stablehlo.multiply %[[VAL_44]], %[[VAL_51]] : tensor +// CHECK: %[[VAL_59:.*]] = stablehlo.select %[[VAL_54]], %[[VAL_57]], %[[VAL_58]] : tensor, tensor +// CHECK: %[[VAL_60:.*]] = stablehlo.select %[[VAL_46]], %[[VAL_47]], %[[VAL_59]] : tensor, tensor +// CHECK: %[[VAL_61:.*]] = stablehlo.add %[[VAL_41]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_62:.*]] = stablehlo.multiply %[[VAL_19]], %[[VAL_61]] : tensor +// CHECK: %[[VAL_63:.*]] = stablehlo.add %[[VAL_62]], %[[VAL_8]] : tensor +// CHECK: %[[VAL_64:.*]] = stablehlo.multiply %[[VAL_19]], %[[VAL_63]] : tensor +// CHECK: %[[VAL_65:.*]] = stablehlo.multiply %[[VAL_10]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_66:.*]] = stablehlo.add %[[VAL_41]], %[[VAL_20]] : tensor +// CHECK: %[[VAL_67:.*]] = stablehlo.divide %[[VAL_65]], %[[VAL_66]] : tensor +// CHECK: %[[VAL_68:.*]] = stablehlo.subtract %[[VAL_60]], %[[VAL_42]] : tensor +// CHECK: %[[VAL_69:.*]] = stablehlo.add %[[VAL_67]], %[[VAL_68]] : tensor +// CHECK: %[[VAL_70:.*]] = stablehlo.multiply %[[VAL_64]], %[[VAL_69]] : tensor +// CHECK: %[[VAL_71:.*]] = stablehlo.sqrt %[[VAL_70]] : tensor +// CHECK: %[[VAL_72:.*]] = stablehlo.divide %[[VAL_64]], %[[VAL_66]] : tensor +// CHECK: %[[VAL_73:.*]] = stablehlo.add %[[VAL_60]], %[[VAL_42]] : tensor +// CHECK: %[[VAL_74:.*]] = stablehlo.divide %[[VAL_64]], %[[VAL_73]] : tensor +// CHECK: %[[VAL_75:.*]] = stablehlo.add %[[VAL_72]], %[[VAL_74]] : tensor +// CHECK: %[[VAL_76:.*]] = stablehlo.sqrt %[[VAL_75]] : tensor +// CHECK: %[[VAL_77:.*]] = stablehlo.multiply %[[VAL_10]], %[[VAL_76]] : tensor +// CHECK: %[[VAL_78:.*]] = stablehlo.select %[[VAL_18]], %[[VAL_71]], %[[VAL_77]] : tensor, tensor +// CHECK: %[[VAL_79:.*]] = stablehlo.select %[[VAL_16]], %[[VAL_10]], %[[VAL_78]] : tensor, tensor // CHECK: %[[VAL_80:.*]] = stablehlo.constant dense<9.99999995E+11> : tensor -// CHECK: %[[VAL_81:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_80]] : tensor -// CHECK: %[[VAL_82:.*]] = stablehlo.compare LT, %[[VAL_6]], %[[VAL_81]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_81:.*]] = stablehlo.multiply %[[VAL_15]], %[[VAL_80]] : tensor +// CHECK: %[[VAL_82:.*]] = stablehlo.compare LT, %[[VAL_8]], %[[VAL_81]] : (tensor, tensor) -> tensor // CHECK: %[[VAL_83:.*]] = stablehlo.constant dense<9.99999997E-7> : tensor -// CHECK: %[[VAL_84:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_83]] : tensor +// CHECK: %[[VAL_84:.*]] = stablehlo.multiply %[[VAL_15]], %[[VAL_83]] : tensor // CHECK: %[[VAL_85:.*]] = stablehlo.constant dense<1.000000e+02> : tensor -// CHECK: %[[VAL_86:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_85]] : tensor +// CHECK: %[[VAL_86:.*]] = stablehlo.multiply %[[VAL_15]], %[[VAL_85]] : tensor // CHECK: %[[VAL_87:.*]] = stablehlo.select %[[VAL_82]], %[[VAL_84]], %[[VAL_86]] : tensor, tensor -// CHECK: %[[VAL_88:.*]] = stablehlo.compare GE, %[[VAL_8]], %[[VAL_87]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_89:.*]] = stablehlo.select %[[VAL_88]], %[[VAL_8]], %[[VAL_6]] : tensor, tensor -// CHECK: %[[VAL_90:.*]] = stablehlo.select %[[VAL_88]], %[[VAL_87]], %[[VAL_13]] : tensor, tensor +// CHECK: %[[VAL_88:.*]] = stablehlo.compare GE, %[[VAL_10]], %[[VAL_87]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_89:.*]] = stablehlo.select %[[VAL_88]], %[[VAL_10]], %[[VAL_8]] : tensor, tensor +// CHECK: %[[VAL_90:.*]] = stablehlo.select %[[VAL_88]], %[[VAL_87]], %[[VAL_15]] : tensor, tensor // CHECK: %[[VAL_91:.*]] = stablehlo.compare GE, %[[VAL_89]], %[[VAL_90]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_92:.*]] = stablehlo.log %[[VAL_23]] : tensor +// CHECK: %[[VAL_92:.*]] = stablehlo.log %[[VAL_25]] : tensor // CHECK: %[[VAL_93:.*]] = stablehlo.log %[[VAL_89]] : tensor // CHECK: %[[VAL_94:.*]] = stablehlo.add %[[VAL_92]], %[[VAL_93]] : tensor // CHECK: %[[VAL_95:.*]] = stablehlo.constant dense<0x7F800000> : tensor -// CHECK: %[[VAL_96:.*]] = stablehlo.compare EQ, %[[VAL_8]], %[[VAL_95]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_96:.*]] = stablehlo.compare EQ, %[[VAL_10]], %[[VAL_95]] : (tensor, tensor) -> tensor // CHECK: %[[VAL_97:.*]] = stablehlo.not %[[VAL_96]] : tensor // CHECK: %[[VAL_98:.*]] = stablehlo.and %[[VAL_88]], %[[VAL_97]] : tensor -// CHECK: %[[VAL_99:.*]] = stablehlo.divide %[[VAL_6]], %[[VAL_8]] : tensor -// CHECK: %[[VAL_100:.*]] = stablehlo.select %[[VAL_98]], %[[VAL_99]], %[[VAL_31]] : tensor, tensor +// CHECK: %[[VAL_99:.*]] = stablehlo.divide %[[VAL_8]], %[[VAL_10]] : tensor +// CHECK: %[[VAL_100:.*]] = stablehlo.select %[[VAL_98]], %[[VAL_99]], %[[VAL_33]] : tensor, tensor // CHECK: %[[VAL_101:.*]] = stablehlo.multiply %[[VAL_100]], %[[VAL_100]] : tensor // CHECK: %[[VAL_102:.*]] = stablehlo.log_plus_one %[[VAL_101]] : tensor -// CHECK: %[[VAL_103:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_102]] : tensor +// CHECK: %[[VAL_103:.*]] = stablehlo.multiply %[[VAL_19]], %[[VAL_102]] : tensor // CHECK: %[[VAL_104:.*]] = stablehlo.add %[[VAL_94]], %[[VAL_103]] : tensor // CHECK: %[[VAL_105:.*]] = stablehlo.constant dense<1.17549435E-38> : tensor // CHECK: %[[VAL_106:.*]] = stablehlo.sqrt %[[VAL_105]] : tensor // CHECK: %[[VAL_107:.*]] = stablehlo.constant dense<4.000000e+00> : tensor // CHECK: %[[VAL_108:.*]] = stablehlo.multiply %[[VAL_106]], %[[VAL_107]] : tensor -// CHECK: %[[VAL_109:.*]] = stablehlo.compare LT, %[[VAL_8]], %[[VAL_108]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_110:.*]] = stablehlo.compare LT, %[[VAL_6]], %[[VAL_15]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_109:.*]] = stablehlo.compare LT, %[[VAL_10]], %[[VAL_108]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_110:.*]] = stablehlo.compare LT, %[[VAL_8]], %[[VAL_17]] : (tensor, tensor) -> tensor // CHECK: %[[VAL_111:.*]] = stablehlo.and %[[VAL_109]], %[[VAL_110]] : tensor -// CHECK: %[[VAL_112:.*]] = stablehlo.multiply %[[VAL_18]], %[[VAL_40]] : tensor -// CHECK: %[[VAL_113:.*]] = stablehlo.add %[[VAL_60]], %[[VAL_15]] : tensor +// CHECK: %[[VAL_112:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_42]] : tensor +// CHECK: %[[VAL_113:.*]] = stablehlo.add %[[VAL_62]], %[[VAL_17]] : tensor // CHECK: %[[VAL_114:.*]] = stablehlo.divide %[[VAL_112]], %[[VAL_113]] : tensor // CHECK: %[[VAL_115:.*]] = stablehlo.negate %[[VAL_114]] : tensor -// CHECK: %[[VAL_116:.*]] = stablehlo.compare GE, %[[VAL_6]], %[[VAL_15]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_117:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_63]] : tensor -// CHECK: %[[VAL_118:.*]] = stablehlo.divide %[[VAL_117]], %[[VAL_64]] : tensor -// CHECK: %[[VAL_119:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_71]] : tensor +// CHECK: %[[VAL_116:.*]] = stablehlo.compare GE, %[[VAL_8]], %[[VAL_17]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_117:.*]] = stablehlo.multiply %[[VAL_19]], %[[VAL_65]] : tensor +// CHECK: %[[VAL_118:.*]] = stablehlo.divide %[[VAL_117]], %[[VAL_66]] : tensor +// CHECK: %[[VAL_119:.*]] = stablehlo.multiply %[[VAL_19]], %[[VAL_73]] : tensor // CHECK: %[[VAL_120:.*]] = stablehlo.add %[[VAL_118]], %[[VAL_119]] : tensor // CHECK: %[[VAL_121:.*]] = stablehlo.constant dense<1.500000e+00> : tensor -// CHECK: %[[VAL_122:.*]] = stablehlo.compare LE, %[[VAL_60]], %[[VAL_121]] : (tensor, tensor) -> tensor -// CHECK: %[[VAL_123:.*]] = stablehlo.divide %[[VAL_117]], %[[VAL_66]] : tensor +// CHECK: %[[VAL_122:.*]] = stablehlo.compare LE, %[[VAL_62]], %[[VAL_121]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_123:.*]] = stablehlo.divide %[[VAL_117]], %[[VAL_68]] : tensor // CHECK: %[[VAL_124:.*]] = stablehlo.add %[[VAL_118]], %[[VAL_123]] : tensor -// CHECK: %[[VAL_125:.*]] = stablehlo.subtract %[[VAL_60]], %[[VAL_15]] : tensor +// CHECK: %[[VAL_125:.*]] = stablehlo.subtract %[[VAL_62]], %[[VAL_17]] : tensor // CHECK: %[[VAL_126:.*]] = stablehlo.select %[[VAL_122]], %[[VAL_124]], %[[VAL_125]] : tensor, tensor // CHECK: %[[VAL_127:.*]] = stablehlo.select %[[VAL_116]], %[[VAL_120]], %[[VAL_126]] : tensor, tensor // CHECK: %[[VAL_128:.*]] = stablehlo.select %[[VAL_111]], %[[VAL_115]], %[[VAL_127]] : tensor, tensor // CHECK: %[[VAL_129:.*]] = stablehlo.multiply %[[VAL_128]], %[[VAL_113]] : tensor // CHECK: %[[VAL_130:.*]] = stablehlo.sqrt %[[VAL_129]] : tensor -// CHECK: %[[VAL_131:.*]] = stablehlo.divide %[[VAL_8]], %[[VAL_130]] : tensor +// CHECK: %[[VAL_131:.*]] = stablehlo.divide %[[VAL_10]], %[[VAL_130]] : tensor // CHECK: %[[VAL_132:.*]] = stablehlo.add %[[VAL_128]], %[[VAL_130]] : tensor // CHECK: %[[VAL_133:.*]] = stablehlo.log_plus_one %[[VAL_132]] : tensor // CHECK: %[[VAL_134:.*]] = stablehlo.select %[[VAL_111]], %[[VAL_131]], %[[VAL_133]] : tensor, tensor // CHECK: %[[VAL_135:.*]] = stablehlo.select %[[VAL_91]], %[[VAL_104]], %[[VAL_134]] : tensor, tensor -// CHECK: %[[VAL_136:.*]] = stablehlo.negate %[[VAL_135]] : tensor -// CHECK: %[[VAL_137:.*]] = stablehlo.select %[[VAL_79]], %[[VAL_136]], %[[VAL_135]] : tensor, tensor -// CHECK: %[[VAL_138:.*]] = stablehlo.complex %[[VAL_78]], %[[VAL_137]] : tensor> -// CHECK: %[[VAL_139:.*]] = stablehlo.imag %[[VAL_138]] : (tensor>) -> tensor -// CHECK: %[[VAL_140:.*]] = stablehlo.real %[[VAL_138]] : (tensor>) -> tensor -// CHECK: %[[VAL_141:.*]] = stablehlo.negate %[[VAL_140]] : tensor +// CHECK: %[[VAL_136:.*]] = stablehlo.complex %[[VAL_79]], %[[VAL_135]] : tensor> +// CHECK: %[[VAL_137:.*]] = stablehlo.imag %[[VAL_136]] : (tensor>) -> tensor +// CHECK: %[[VAL_138:.*]] = stablehlo.negate %[[VAL_137]] : tensor +// CHECK: %[[VAL_139:.*]] = stablehlo.select %[[VAL_3]], %[[VAL_138]], %[[VAL_137]] : tensor, tensor +// CHECK: %[[VAL_140:.*]] = stablehlo.real %[[VAL_136]] : (tensor>) -> tensor +// CHECK: %[[VAL_141:.*]] = stablehlo.atan2 %[[VAL_4]], %[[VAL_140]] : tensor // CHECK: %[[VAL_142:.*]] = stablehlo.complex %[[VAL_139]], %[[VAL_141]] : tensor> // CHECK: return %[[VAL_142]] : tensor> // CHECK: } @@ -896,149 +912,151 @@ func.func @acosh(%arg: tensor) -> tensor { // ----- -// CHECK-LABEL: func.func @acosh_complex_f32( -// CHECK-SAME: %[[TMP_arg0:.*]]: tensor>) -> tensor> +// CHECK-LABEL: func.func @acosh_complex_f32( +// CHECK-SAME: %[[VAL_0:.*]]: tensor>) -> tensor> { +// CHECK: %[[VAL_1:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_2:.*]] = stablehlo.abs %[[VAL_1]] : tensor +// CHECK: %[[VAL_3:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_4:.*]] = stablehlo.abs %[[VAL_3]] : tensor +// CHECK: %[[VAL_5:.*]] = stablehlo.maximum %[[VAL_2]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_6:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor +// CHECK: %[[VAL_7:.*]] = stablehlo.sqrt %[[VAL_6]] : tensor +// CHECK: %[[VAL_8:.*]] = stablehlo.constant dense<8.000000e+00> : tensor +// CHECK: %[[VAL_9:.*]] = stablehlo.divide %[[VAL_7]], %[[VAL_8]] : tensor +// CHECK: %[[VAL_10:.*]] = stablehlo.compare GE, %[[VAL_5]], %[[VAL_9]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_11:.*]] = stablehlo.constant dense<1.000000e+00> : tensor +// CHECK: %[[VAL_12:.*]] = stablehlo.compare LE, %[[VAL_2]], %[[VAL_11]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_13:.*]] = stablehlo.constant dense<5.000000e-01> : tensor +// CHECK: %[[VAL_14:.*]] = stablehlo.add %[[VAL_2]], %[[VAL_11]] : tensor +// CHECK: %[[VAL_15:.*]] = stablehlo.abs %[[VAL_14]] : tensor +// CHECK: %[[VAL_16:.*]] = stablehlo.maximum %[[VAL_15]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_17:.*]] = stablehlo.minimum %[[VAL_15]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_18:.*]] = stablehlo.compare EQ, %[[VAL_16]], %[[VAL_17]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_19:.*]] = stablehlo.constant dense<2.000000e+00> : tensor +// CHECK: %[[VAL_20:.*]] = stablehlo.sqrt %[[VAL_19]] : tensor +// CHECK: %[[VAL_21:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_16]] : tensor +// CHECK: %[[VAL_22:.*]] = stablehlo.divide %[[VAL_17]], %[[VAL_16]] : tensor +// CHECK: %[[VAL_23:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_22]] : tensor +// CHECK: %[[VAL_24:.*]] = stablehlo.add %[[VAL_11]], %[[VAL_23]] : tensor +// CHECK: %[[VAL_25:.*]] = stablehlo.sqrt %[[VAL_24]] : tensor +// CHECK: %[[VAL_26:.*]] = stablehlo.compare EQ, %[[VAL_25]], %[[VAL_11]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_27:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_28:.*]] = stablehlo.compare GT, %[[VAL_23]], %[[VAL_27]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_29:.*]] = stablehlo.and %[[VAL_26]], %[[VAL_28]] : tensor +// CHECK: %[[VAL_30:.*]] = stablehlo.multiply %[[VAL_16]], %[[VAL_23]] : tensor +// CHECK: %[[VAL_31:.*]] = stablehlo.divide %[[VAL_30]], %[[VAL_19]] : tensor +// CHECK: %[[VAL_32:.*]] = stablehlo.add %[[VAL_16]], %[[VAL_31]] : tensor +// CHECK: %[[VAL_33:.*]] = stablehlo.multiply %[[VAL_16]], %[[VAL_25]] : tensor +// CHECK: %[[VAL_34:.*]] = stablehlo.select %[[VAL_29]], %[[VAL_32]], %[[VAL_33]] : tensor, tensor +// CHECK: %[[VAL_35:.*]] = stablehlo.select %[[VAL_18]], %[[VAL_21]], %[[VAL_34]] : tensor, tensor +// CHECK: %[[VAL_36:.*]] = stablehlo.subtract %[[VAL_2]], %[[VAL_11]] : tensor +// CHECK: %[[VAL_37:.*]] = stablehlo.abs %[[VAL_36]] : tensor +// CHECK: %[[VAL_38:.*]] = stablehlo.maximum %[[VAL_37]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_39:.*]] = stablehlo.minimum %[[VAL_37]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_40:.*]] = stablehlo.compare EQ, %[[VAL_38]], %[[VAL_39]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_41:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_38]] : tensor +// CHECK: %[[VAL_42:.*]] = stablehlo.divide %[[VAL_39]], %[[VAL_38]] : tensor +// CHECK: %[[VAL_43:.*]] = stablehlo.multiply %[[VAL_42]], %[[VAL_42]] : tensor +// CHECK: %[[VAL_44:.*]] = stablehlo.add %[[VAL_11]], %[[VAL_43]] : tensor +// CHECK: %[[VAL_45:.*]] = stablehlo.sqrt %[[VAL_44]] : tensor +// CHECK: %[[VAL_46:.*]] = stablehlo.compare EQ, %[[VAL_45]], %[[VAL_11]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_47:.*]] = stablehlo.compare GT, %[[VAL_43]], %[[VAL_27]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_48:.*]] = stablehlo.and %[[VAL_46]], %[[VAL_47]] : tensor +// CHECK: %[[VAL_49:.*]] = stablehlo.multiply %[[VAL_38]], %[[VAL_43]] : tensor +// CHECK: %[[VAL_50:.*]] = stablehlo.divide %[[VAL_49]], %[[VAL_19]] : tensor +// CHECK: %[[VAL_51:.*]] = stablehlo.add %[[VAL_38]], %[[VAL_50]] : tensor +// CHECK: %[[VAL_52:.*]] = stablehlo.multiply %[[VAL_38]], %[[VAL_45]] : tensor +// CHECK: %[[VAL_53:.*]] = stablehlo.select %[[VAL_48]], %[[VAL_51]], %[[VAL_52]] : tensor, tensor +// CHECK: %[[VAL_54:.*]] = stablehlo.select %[[VAL_40]], %[[VAL_41]], %[[VAL_53]] : tensor, tensor +// CHECK: %[[VAL_55:.*]] = stablehlo.add %[[VAL_35]], %[[VAL_54]] : tensor +// CHECK: %[[VAL_56:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_55]] : tensor +// CHECK: %[[VAL_57:.*]] = stablehlo.add %[[VAL_56]], %[[VAL_2]] : tensor +// CHECK: %[[VAL_58:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_57]] : tensor +// CHECK: %[[VAL_59:.*]] = stablehlo.multiply %[[VAL_4]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_60:.*]] = stablehlo.add %[[VAL_35]], %[[VAL_14]] : tensor +// CHECK: %[[VAL_61:.*]] = stablehlo.divide %[[VAL_59]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_62:.*]] = stablehlo.subtract %[[VAL_54]], %[[VAL_36]] : tensor +// CHECK: %[[VAL_63:.*]] = stablehlo.add %[[VAL_61]], %[[VAL_62]] : tensor +// CHECK: %[[VAL_64:.*]] = stablehlo.multiply %[[VAL_58]], %[[VAL_63]] : tensor +// CHECK: %[[VAL_65:.*]] = stablehlo.sqrt %[[VAL_64]] : tensor +// CHECK: %[[VAL_66:.*]] = stablehlo.divide %[[VAL_58]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_67:.*]] = stablehlo.add %[[VAL_54]], %[[VAL_36]] : tensor +// CHECK: %[[VAL_68:.*]] = stablehlo.divide %[[VAL_58]], %[[VAL_67]] : tensor +// CHECK: %[[VAL_69:.*]] = stablehlo.add %[[VAL_66]], %[[VAL_68]] : tensor +// CHECK: %[[VAL_70:.*]] = stablehlo.sqrt %[[VAL_69]] : tensor +// CHECK: %[[VAL_71:.*]] = stablehlo.multiply %[[VAL_4]], %[[VAL_70]] : tensor +// CHECK: %[[VAL_72:.*]] = stablehlo.select %[[VAL_12]], %[[VAL_65]], %[[VAL_71]] : tensor, tensor +// CHECK: %[[VAL_73:.*]] = stablehlo.select %[[VAL_10]], %[[VAL_4]], %[[VAL_72]] : tensor, tensor +// CHECK: %[[VAL_74:.*]] = stablehlo.constant dense<9.99999995E+11> : tensor +// CHECK: %[[VAL_75:.*]] = stablehlo.multiply %[[VAL_9]], %[[VAL_74]] : tensor +// CHECK: %[[VAL_76:.*]] = stablehlo.compare LT, %[[VAL_2]], %[[VAL_75]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_77:.*]] = stablehlo.constant dense<9.99999997E-7> : tensor +// CHECK: %[[VAL_78:.*]] = stablehlo.multiply %[[VAL_9]], %[[VAL_77]] : tensor +// CHECK: %[[VAL_79:.*]] = stablehlo.constant dense<1.000000e+02> : tensor +// CHECK: %[[VAL_80:.*]] = stablehlo.multiply %[[VAL_9]], %[[VAL_79]] : tensor +// CHECK: %[[VAL_81:.*]] = stablehlo.select %[[VAL_76]], %[[VAL_78]], %[[VAL_80]] : tensor, tensor +// CHECK: %[[VAL_82:.*]] = stablehlo.compare GE, %[[VAL_4]], %[[VAL_81]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_83:.*]] = stablehlo.select %[[VAL_82]], %[[VAL_4]], %[[VAL_2]] : tensor, tensor +// CHECK: %[[VAL_84:.*]] = stablehlo.select %[[VAL_82]], %[[VAL_81]], %[[VAL_9]] : tensor, tensor +// CHECK: %[[VAL_85:.*]] = stablehlo.compare GE, %[[VAL_83]], %[[VAL_84]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_86:.*]] = stablehlo.log %[[VAL_19]] : tensor +// CHECK: %[[VAL_87:.*]] = stablehlo.log %[[VAL_83]] : tensor +// CHECK: %[[VAL_88:.*]] = stablehlo.add %[[VAL_86]], %[[VAL_87]] : tensor +// CHECK: %[[VAL_89:.*]] = stablehlo.constant dense<0x7F800000> : tensor +// CHECK: %[[VAL_90:.*]] = stablehlo.compare EQ, %[[VAL_4]], %[[VAL_89]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_91:.*]] = stablehlo.not %[[VAL_90]] : tensor +// CHECK: %[[VAL_92:.*]] = stablehlo.and %[[VAL_82]], %[[VAL_91]] : tensor +// CHECK: %[[VAL_93:.*]] = stablehlo.divide %[[VAL_2]], %[[VAL_4]] : tensor +// CHECK: %[[VAL_94:.*]] = stablehlo.select %[[VAL_92]], %[[VAL_93]], %[[VAL_27]] : tensor, tensor +// CHECK: %[[VAL_95:.*]] = stablehlo.multiply %[[VAL_94]], %[[VAL_94]] : tensor +// CHECK: %[[VAL_96:.*]] = stablehlo.log_plus_one %[[VAL_95]] : tensor +// CHECK: %[[VAL_97:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_96]] : tensor +// CHECK: %[[VAL_98:.*]] = stablehlo.add %[[VAL_88]], %[[VAL_97]] : tensor +// CHECK: %[[VAL_99:.*]] = stablehlo.constant dense<1.17549435E-38> : tensor +// CHECK: %[[VAL_100:.*]] = stablehlo.sqrt %[[VAL_99]] : tensor +// CHECK: %[[VAL_101:.*]] = stablehlo.constant dense<4.000000e+00> : tensor +// CHECK: %[[VAL_102:.*]] = stablehlo.multiply %[[VAL_100]], %[[VAL_101]] : tensor +// CHECK: %[[VAL_103:.*]] = stablehlo.compare LT, %[[VAL_4]], %[[VAL_102]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_104:.*]] = stablehlo.compare LT, %[[VAL_2]], %[[VAL_11]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_105:.*]] = stablehlo.and %[[VAL_103]], %[[VAL_104]] : tensor +// CHECK: %[[VAL_106:.*]] = stablehlo.multiply %[[VAL_14]], %[[VAL_36]] : tensor +// CHECK: %[[VAL_107:.*]] = stablehlo.add %[[VAL_56]], %[[VAL_11]] : tensor +// CHECK: %[[VAL_108:.*]] = stablehlo.divide %[[VAL_106]], %[[VAL_107]] : tensor +// CHECK: %[[VAL_109:.*]] = stablehlo.negate %[[VAL_108]] : tensor +// CHECK: %[[VAL_110:.*]] = stablehlo.compare GE, %[[VAL_2]], %[[VAL_11]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_111:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_59]] : tensor +// CHECK: %[[VAL_112:.*]] = stablehlo.divide %[[VAL_111]], %[[VAL_60]] : tensor +// CHECK: %[[VAL_113:.*]] = stablehlo.multiply %[[VAL_13]], %[[VAL_67]] : tensor +// CHECK: %[[VAL_114:.*]] = stablehlo.add %[[VAL_112]], %[[VAL_113]] : tensor +// CHECK: %[[VAL_115:.*]] = stablehlo.constant dense<1.500000e+00> : tensor +// CHECK: %[[VAL_116:.*]] = stablehlo.compare LE, %[[VAL_56]], %[[VAL_115]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_117:.*]] = stablehlo.divide %[[VAL_111]], %[[VAL_62]] : tensor +// CHECK: %[[VAL_118:.*]] = stablehlo.add %[[VAL_112]], %[[VAL_117]] : tensor +// CHECK: %[[VAL_119:.*]] = stablehlo.subtract %[[VAL_56]], %[[VAL_11]] : tensor +// CHECK: %[[VAL_120:.*]] = stablehlo.select %[[VAL_116]], %[[VAL_118]], %[[VAL_119]] : tensor, tensor +// CHECK: %[[VAL_121:.*]] = stablehlo.select %[[VAL_110]], %[[VAL_114]], %[[VAL_120]] : tensor, tensor +// CHECK: %[[VAL_122:.*]] = stablehlo.select %[[VAL_105]], %[[VAL_109]], %[[VAL_121]] : tensor, tensor +// CHECK: %[[VAL_123:.*]] = stablehlo.multiply %[[VAL_122]], %[[VAL_107]] : tensor +// CHECK: %[[VAL_124:.*]] = stablehlo.sqrt %[[VAL_123]] : tensor +// CHECK: %[[VAL_125:.*]] = stablehlo.divide %[[VAL_4]], %[[VAL_124]] : tensor +// CHECK: %[[VAL_126:.*]] = stablehlo.add %[[VAL_122]], %[[VAL_124]] : tensor +// CHECK: %[[VAL_127:.*]] = stablehlo.log_plus_one %[[VAL_126]] : tensor +// CHECK: %[[VAL_128:.*]] = stablehlo.select %[[VAL_105]], %[[VAL_125]], %[[VAL_127]] : tensor, tensor +// CHECK: %[[VAL_129:.*]] = stablehlo.select %[[VAL_85]], %[[VAL_98]], %[[VAL_128]] : tensor, tensor +// CHECK: %[[VAL_130:.*]] = stablehlo.complex %[[VAL_73]], %[[VAL_129]] : tensor> +// CHECK: %[[VAL_131:.*]] = stablehlo.imag %[[VAL_130]] : (tensor>) -> tensor +// CHECK: %[[VAL_132:.*]] = stablehlo.imag %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_133:.*]] = stablehlo.constant dense<0.000000e+00> : tensor +// CHECK: %[[VAL_134:.*]] = stablehlo.compare LT, %[[VAL_132]], %[[VAL_133]] : (tensor, tensor) -> tensor +// CHECK: %[[VAL_135:.*]] = stablehlo.real %[[VAL_130]] : (tensor>) -> tensor +// CHECK: %[[VAL_136:.*]] = stablehlo.real %[[VAL_0]] : (tensor>) -> tensor +// CHECK: %[[VAL_137:.*]] = stablehlo.atan2 %[[VAL_135]], %[[VAL_136]] : tensor +// CHECK: %[[VAL_138:.*]] = stablehlo.negate %[[VAL_137]] : tensor +// CHECK: %[[VAL_139:.*]] = stablehlo.select %[[VAL_134]], %[[VAL_138]], %[[VAL_137]] : tensor, tensor +// CHECK: %[[VAL_140:.*]] = stablehlo.complex %[[VAL_131]], %[[VAL_139]] : tensor> +// CHECK: return %[[VAL_140]] : tensor> +// CHECK: } func.func @acosh_complex_f32(%arg : tensor>) -> tensor> { -// CHECK: %[[TMP_0:.*]] = stablehlo.imag %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_1:.*]] = stablehlo.constant dense<0.000000e+00> : tensor -// CHECK: %[[TMP_2:.*]] = stablehlo.compare LT, %[[TMP_0]], %[[TMP_1]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_3:.*]] = stablehlo.real %[[TMP_arg0]] : (tensor>) -> tensor -// CHECK: %[[TMP_4:.*]] = stablehlo.constant dense<0.000000e+00> : tensor -// CHECK: %[[TMP_5:.*]] = stablehlo.compare LT, %[[TMP_0]], %[[TMP_4]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_6:.*]] = stablehlo.abs %[[TMP_0]] : tensor -// CHECK: %[[TMP_7:.*]] = stablehlo.abs %[[TMP_3]] : tensor -// CHECK: %[[TMP_8:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor -// CHECK: %[[TMP_9:.*]] = stablehlo.sqrt %[[TMP_8]] : tensor -// CHECK: %[[TMP_10:.*]] = stablehlo.constant dense<8.000000e+00> : tensor -// CHECK: %[[TMP_11:.*]] = stablehlo.divide %[[TMP_9]], %[[TMP_10]] : tensor -// CHECK: %[[TMP_12:.*]] = stablehlo.constant dense<9.99999995E+11> : tensor -// CHECK: %[[TMP_13:.*]] = stablehlo.multiply %[[TMP_11]], %[[TMP_12]] : tensor -// CHECK: %[[TMP_14:.*]] = stablehlo.compare LT, %[[TMP_7]], %[[TMP_13]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_15:.*]] = stablehlo.constant dense<9.99999997E-7> : tensor -// CHECK: %[[TMP_16:.*]] = stablehlo.multiply %[[TMP_11]], %[[TMP_15]] : tensor -// CHECK: %[[TMP_17:.*]] = stablehlo.constant dense<1.000000e+02> : tensor -// CHECK: %[[TMP_18:.*]] = stablehlo.multiply %[[TMP_11]], %[[TMP_17]] : tensor -// CHECK: %[[TMP_19:.*]] = stablehlo.select %[[TMP_14]], %[[TMP_16]], %[[TMP_18]] : tensor, tensor -// CHECK: %[[TMP_20:.*]] = stablehlo.compare GE, %[[TMP_6]], %[[TMP_19]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_21:.*]] = stablehlo.select %[[TMP_20]], %[[TMP_6]], %[[TMP_7]] : tensor, tensor -// CHECK: %[[TMP_22:.*]] = stablehlo.select %[[TMP_20]], %[[TMP_19]], %[[TMP_11]] : tensor, tensor -// CHECK: %[[TMP_23:.*]] = stablehlo.compare GE, %[[TMP_21]], %[[TMP_22]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_24:.*]] = stablehlo.constant dense<2.000000e+00> : tensor -// CHECK: %[[TMP_25:.*]] = stablehlo.log %[[TMP_24]] : tensor -// CHECK: %[[TMP_26:.*]] = stablehlo.log %[[TMP_21]] : tensor -// CHECK: %[[TMP_27:.*]] = stablehlo.add %[[TMP_25]], %[[TMP_26]] : tensor -// CHECK: %[[TMP_28:.*]] = stablehlo.constant dense<5.000000e-01> : tensor -// CHECK: %[[TMP_29:.*]] = stablehlo.constant dense<0x7F800000> : tensor -// CHECK: %[[TMP_30:.*]] = stablehlo.compare EQ, %[[TMP_6]], %[[TMP_29]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_31:.*]] = stablehlo.not %[[TMP_30]] : tensor -// CHECK: %[[TMP_32:.*]] = stablehlo.and %[[TMP_20]], %[[TMP_31]] : tensor -// CHECK: %[[TMP_33:.*]] = stablehlo.divide %[[TMP_7]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_34:.*]] = stablehlo.select %[[TMP_32]], %[[TMP_33]], %[[TMP_4]] : tensor, tensor -// CHECK: %[[TMP_35:.*]] = stablehlo.multiply %[[TMP_34]], %[[TMP_34]] : tensor -// CHECK: %[[TMP_36:.*]] = stablehlo.log_plus_one %[[TMP_35]] : tensor -// CHECK: %[[TMP_37:.*]] = stablehlo.multiply %[[TMP_28]], %[[TMP_36]] : tensor -// CHECK: %[[TMP_38:.*]] = stablehlo.add %[[TMP_27]], %[[TMP_37]] : tensor -// CHECK: %[[TMP_39:.*]] = stablehlo.constant dense<1.17549435E-38> : tensor -// CHECK: %[[TMP_40:.*]] = stablehlo.sqrt %[[TMP_39]] : tensor -// CHECK: %[[TMP_41:.*]] = stablehlo.constant dense<4.000000e+00> : tensor -// CHECK: %[[TMP_42:.*]] = stablehlo.multiply %[[TMP_40]], %[[TMP_41]] : tensor -// CHECK: %[[TMP_43:.*]] = stablehlo.compare LT, %[[TMP_6]], %[[TMP_42]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_44:.*]] = stablehlo.constant dense<1.000000e+00> : tensor -// CHECK: %[[TMP_45:.*]] = stablehlo.compare LT, %[[TMP_7]], %[[TMP_44]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_46:.*]] = stablehlo.and %[[TMP_43]], %[[TMP_45]] : tensor -// CHECK: %[[TMP_47:.*]] = stablehlo.add %[[TMP_7]], %[[TMP_44]] : tensor -// CHECK: %[[TMP_48:.*]] = stablehlo.subtract %[[TMP_7]], %[[TMP_44]] : tensor -// CHECK: %[[TMP_49:.*]] = stablehlo.multiply %[[TMP_47]], %[[TMP_48]] : tensor -// CHECK: %[[TMP_50:.*]] = stablehlo.abs %[[TMP_47]] : tensor -// CHECK: %[[TMP_51:.*]] = stablehlo.maximum %[[TMP_50]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_52:.*]] = stablehlo.minimum %[[TMP_50]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_53:.*]] = stablehlo.compare EQ, %[[TMP_51]], %[[TMP_52]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_54:.*]] = stablehlo.sqrt %[[TMP_24]] : tensor -// CHECK: %[[TMP_55:.*]] = stablehlo.multiply %[[TMP_54]], %[[TMP_51]] : tensor -// CHECK: %[[TMP_56:.*]] = stablehlo.divide %[[TMP_52]], %[[TMP_51]] : tensor -// CHECK: %[[TMP_57:.*]] = stablehlo.multiply %[[TMP_56]], %[[TMP_56]] : tensor -// CHECK: %[[TMP_58:.*]] = stablehlo.add %[[TMP_44]], %[[TMP_57]] : tensor -// CHECK: %[[TMP_59:.*]] = stablehlo.sqrt %[[TMP_58]] : tensor -// CHECK: %[[TMP_60:.*]] = stablehlo.compare EQ, %[[TMP_59]], %[[TMP_44]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_61:.*]] = stablehlo.compare GT, %[[TMP_57]], %[[TMP_4]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_62:.*]] = stablehlo.and %[[TMP_60]], %[[TMP_61]] : tensor -// CHECK: %[[TMP_63:.*]] = stablehlo.multiply %[[TMP_51]], %[[TMP_57]] : tensor -// CHECK: %[[TMP_64:.*]] = stablehlo.divide %[[TMP_63]], %[[TMP_24]] : tensor -// CHECK: %[[TMP_65:.*]] = stablehlo.add %[[TMP_51]], %[[TMP_64]] : tensor -// CHECK: %[[TMP_66:.*]] = stablehlo.multiply %[[TMP_51]], %[[TMP_59]] : tensor -// CHECK: %[[TMP_67:.*]] = stablehlo.select %[[TMP_62]], %[[TMP_65]], %[[TMP_66]] : tensor, tensor -// CHECK: %[[TMP_68:.*]] = stablehlo.select %[[TMP_53]], %[[TMP_55]], %[[TMP_67]] : tensor, tensor -// CHECK: %[[TMP_69:.*]] = stablehlo.abs %[[TMP_48]] : tensor -// CHECK: %[[TMP_70:.*]] = stablehlo.maximum %[[TMP_69]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_71:.*]] = stablehlo.minimum %[[TMP_69]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_72:.*]] = stablehlo.compare EQ, %[[TMP_70]], %[[TMP_71]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_73:.*]] = stablehlo.multiply %[[TMP_54]], %[[TMP_70]] : tensor -// CHECK: %[[TMP_74:.*]] = stablehlo.divide %[[TMP_71]], %[[TMP_70]] : tensor -// CHECK: %[[TMP_75:.*]] = stablehlo.multiply %[[TMP_74]], %[[TMP_74]] : tensor -// CHECK: %[[TMP_76:.*]] = stablehlo.add %[[TMP_44]], %[[TMP_75]] : tensor -// CHECK: %[[TMP_77:.*]] = stablehlo.sqrt %[[TMP_76]] : tensor -// CHECK: %[[TMP_78:.*]] = stablehlo.compare EQ, %[[TMP_77]], %[[TMP_44]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_79:.*]] = stablehlo.compare GT, %[[TMP_75]], %[[TMP_4]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_80:.*]] = stablehlo.and %[[TMP_78]], %[[TMP_79]] : tensor -// CHECK: %[[TMP_81:.*]] = stablehlo.multiply %[[TMP_70]], %[[TMP_75]] : tensor -// CHECK: %[[TMP_82:.*]] = stablehlo.divide %[[TMP_81]], %[[TMP_24]] : tensor -// CHECK: %[[TMP_83:.*]] = stablehlo.add %[[TMP_70]], %[[TMP_82]] : tensor -// CHECK: %[[TMP_84:.*]] = stablehlo.multiply %[[TMP_70]], %[[TMP_77]] : tensor -// CHECK: %[[TMP_85:.*]] = stablehlo.select %[[TMP_80]], %[[TMP_83]], %[[TMP_84]] : tensor, tensor -// CHECK: %[[TMP_86:.*]] = stablehlo.select %[[TMP_72]], %[[TMP_73]], %[[TMP_85]] : tensor, tensor -// CHECK: %[[TMP_87:.*]] = stablehlo.add %[[TMP_68]], %[[TMP_86]] : tensor -// CHECK: %[[TMP_88:.*]] = stablehlo.multiply %[[TMP_28]], %[[TMP_87]] : tensor -// CHECK: %[[TMP_89:.*]] = stablehlo.add %[[TMP_88]], %[[TMP_44]] : tensor -// CHECK: %[[TMP_90:.*]] = stablehlo.divide %[[TMP_49]], %[[TMP_89]] : tensor -// CHECK: %[[TMP_91:.*]] = stablehlo.negate %[[TMP_90]] : tensor -// CHECK: %[[TMP_92:.*]] = stablehlo.compare GE, %[[TMP_7]], %[[TMP_44]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_93:.*]] = stablehlo.multiply %[[TMP_6]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_94:.*]] = stablehlo.multiply %[[TMP_28]], %[[TMP_93]] : tensor -// CHECK: %[[TMP_95:.*]] = stablehlo.add %[[TMP_68]], %[[TMP_47]] : tensor -// CHECK: %[[TMP_96:.*]] = stablehlo.divide %[[TMP_94]], %[[TMP_95]] : tensor -// CHECK: %[[TMP_97:.*]] = stablehlo.add %[[TMP_86]], %[[TMP_48]] : tensor -// CHECK: %[[TMP_98:.*]] = stablehlo.multiply %[[TMP_28]], %[[TMP_97]] : tensor -// CHECK: %[[TMP_99:.*]] = stablehlo.add %[[TMP_96]], %[[TMP_98]] : tensor -// CHECK: %[[TMP_100:.*]] = stablehlo.constant dense<1.500000e+00> : tensor -// CHECK: %[[TMP_101:.*]] = stablehlo.compare LE, %[[TMP_88]], %[[TMP_100]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_102:.*]] = stablehlo.subtract %[[TMP_86]], %[[TMP_48]] : tensor -// CHECK: %[[TMP_103:.*]] = stablehlo.divide %[[TMP_94]], %[[TMP_102]] : tensor -// CHECK: %[[TMP_104:.*]] = stablehlo.add %[[TMP_96]], %[[TMP_103]] : tensor -// CHECK: %[[TMP_105:.*]] = stablehlo.subtract %[[TMP_88]], %[[TMP_44]] : tensor -// CHECK: %[[TMP_106:.*]] = stablehlo.select %[[TMP_101]], %[[TMP_104]], %[[TMP_105]] : tensor, tensor -// CHECK: %[[TMP_107:.*]] = stablehlo.select %[[TMP_92]], %[[TMP_99]], %[[TMP_106]] : tensor, tensor -// CHECK: %[[TMP_108:.*]] = stablehlo.select %[[TMP_46]], %[[TMP_91]], %[[TMP_107]] : tensor, tensor -// CHECK: %[[TMP_109:.*]] = stablehlo.multiply %[[TMP_108]], %[[TMP_89]] : tensor -// CHECK: %[[TMP_110:.*]] = stablehlo.sqrt %[[TMP_109]] : tensor -// CHECK: %[[TMP_111:.*]] = stablehlo.divide %[[TMP_6]], %[[TMP_110]] : tensor -// CHECK: %[[TMP_112:.*]] = stablehlo.add %[[TMP_108]], %[[TMP_110]] : tensor -// CHECK: %[[TMP_113:.*]] = stablehlo.log_plus_one %[[TMP_112]] : tensor -// CHECK: %[[TMP_114:.*]] = stablehlo.select %[[TMP_46]], %[[TMP_111]], %[[TMP_113]] : tensor, tensor -// CHECK: %[[TMP_115:.*]] = stablehlo.select %[[TMP_23]], %[[TMP_38]], %[[TMP_114]] : tensor, tensor -// CHECK: %[[TMP_116:.*]] = stablehlo.negate %[[TMP_115]] : tensor -// CHECK: %[[TMP_117:.*]] = stablehlo.select %[[TMP_5]], %[[TMP_115]], %[[TMP_116]] : tensor, tensor -// CHECK: %[[TMP_118:.*]] = stablehlo.negate %[[TMP_117]] : tensor -// CHECK: %[[TMP_119:.*]] = stablehlo.maximum %[[TMP_7]], %[[TMP_6]] : tensor -// CHECK: %[[TMP_120:.*]] = stablehlo.compare GE, %[[TMP_119]], %[[TMP_11]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_121:.*]] = stablehlo.compare LE, %[[TMP_7]], %[[TMP_44]] : (tensor, tensor) -> tensor -// CHECK: %[[TMP_122:.*]] = stablehlo.add %[[TMP_88]], %[[TMP_7]] : tensor -// CHECK: %[[TMP_123:.*]] = stablehlo.multiply %[[TMP_28]], %[[TMP_122]] : tensor -// CHECK: %[[TMP_124:.*]] = stablehlo.divide %[[TMP_93]], %[[TMP_95]] : tensor -// CHECK: %[[TMP_125:.*]] = stablehlo.add %[[TMP_124]], %[[TMP_102]] : tensor -// CHECK: %[[TMP_126:.*]] = stablehlo.multiply %[[TMP_123]], %[[TMP_125]] : tensor -// CHECK: %[[TMP_127:.*]] = stablehlo.sqrt %[[TMP_126]] : tensor -// CHECK: %[[TMP_128:.*]] = stablehlo.divide %[[TMP_123]], %[[TMP_95]] : tensor -// CHECK: %[[TMP_129:.*]] = stablehlo.divide %[[TMP_123]], %[[TMP_97]] : tensor -// CHECK: %[[TMP_130:.*]] = stablehlo.add %[[TMP_128]], %[[TMP_129]] : tensor -// CHECK: %[[TMP_131:.*]] = stablehlo.sqrt %[[TMP_130]] : tensor -// CHECK: %[[TMP_132:.*]] = stablehlo.multiply %[[TMP_6]], %[[TMP_131]] : tensor -// CHECK: %[[TMP_133:.*]] = stablehlo.select %[[TMP_121]], %[[TMP_127]], %[[TMP_132]] : tensor, tensor -// CHECK: %[[TMP_134:.*]] = stablehlo.select %[[TMP_120]], %[[TMP_6]], %[[TMP_133]] : tensor, tensor -// CHECK: %[[TMP_135:.*]] = stablehlo.atan2 %[[TMP_134]], %[[TMP_3]] : tensor -// CHECK: %[[TMP_136:.*]] = stablehlo.complex %[[TMP_118]], %[[TMP_135]] : tensor> -// CHECK: %[[TMP_137:.*]] = stablehlo.negate %[[TMP_136]] : tensor> -// CHECK: %[[TMP_138:.*]] = stablehlo.select %[[TMP_2]], %[[TMP_137]], %[[TMP_136]] : tensor, tensor> -// CHECK: return %[[TMP_138]] : tensor> %result = "chlo.acosh"(%arg) : (tensor>) -> tensor> func.return %result : tensor> } diff --git a/stablehlo/tests/math/acos_complex128.mlir b/stablehlo/tests/math/acos_complex128.mlir index c3d6579f83e..b142200fb25 100644 --- a/stablehlo/tests/math/acos_complex128.mlir +++ b/stablehlo/tests/math/acos_complex128.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acos_complex128 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BE000000000000F0FFCD3B7F669EA0969D000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FFCD3B7F669EA0961D000000000000F0FF000000000000603E000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF00000000000060BEFFFFFFFFFFFFEFFFCD3B7F669EA0969DFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFFCD3B7F669EA0961DFFFFFFFFFFFFEFFF000000000000603EFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BEFFFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFF00000000000060BE00000000000060BE00000000000060BECD3B7F669EA0969D00000000000060BE010000000000008000000000000060BE000000000000000000000000000060BE010000000000000000000000000060BECD3B7F669EA0961D00000000000060BE000000000000603E00000000000060BEFEFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7F00000000000060BE000000000000F07F00000000000060BE000000000000F0FFCD3B7F669EA0969DFFFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFFCD3B7F669EA0969D00000000000060BECD3B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969D000000000000603ECD3B7F669EA0969DFEFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7FCD3B7F669EA0969D000000000000F07FCD3B7F669EA0969D000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF010000000000008000000000000060BE0100000000000080CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080000000000000603E0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF000000000000000000000000000060BE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000000000000000603E0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF010000000000000000000000000060BE0100000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000000000000000603E0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FFCD3B7F669EA0961DFFFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFFCD3B7F669EA0961D00000000000060BECD3B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961D000000000000603ECD3B7F669EA0961DFEFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7FCD3B7F669EA0961D000000000000F07FCD3B7F669EA0961D000000000000F0FF000000000000603EFFFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFF000000000000603E00000000000060BE000000000000603ECD3B7F669EA0969D000000000000603E0100000000000080000000000000603E0000000000000000000000000000603E0100000000000000000000000000603ECD3B7F669EA0961D000000000000603E000000000000603E000000000000603EFEFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7F000000000000603E000000000000F07F000000000000603E000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F00000000000060BEFEFFFFFFFFFFEF7FCD3B7F669EA0969DFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7FCD3B7F669EA0961DFEFFFFFFFFFFEF7F000000000000603EFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F00000000000060BE000000000000F07FCD3B7F669EA0969D000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07FCD3B7F669EA0961D000000000000F07F000000000000603E000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BF000000000000F0FF000000000000FC9F000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FF000000000000FC1F000000000000F0FF000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF000000000000F8BFFFFFFFFFFFFFEFFF000000000000FC9FFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFF000000000000FC1FFFFFFFFFFFFFEFFF000000000000F83FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BFFFFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000F8BF000000000000F8BF000000000000F8BF000000000000FC9F000000000000F8BF0100000000000080000000000000F8BF0000000000000000000000000000F8BF0100000000000000000000000000F8BF000000000000FC1F000000000000F8BF000000000000F83F000000000000F8BFFEFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000F8BF000000000000F07F000000000000F8BF000000000000F0FF000000000000FC9FFFFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF000000000000FC9F000000000000F8BF000000000000FC9F000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9F000000000000F83F000000000000FC9FFEFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F000000000000FC9F000000000000F07F000000000000FC9F000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0100000000000080000000000000F8BF0100000000000080000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080000000000000F83F0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0000000000000000000000000000F8BF0000000000000000000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000000000000000F83F0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF0100000000000000000000000000F8BF0100000000000000000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000000000000000F83F0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FF000000000000FC1FFFFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000FC1F000000000000F8BF000000000000FC1F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1F000000000000F83F000000000000FC1FFEFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000FC1F000000000000F07F000000000000FC1F000000000000F0FF000000000000F83FFFFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFF000000000000F83F000000000000F8BF000000000000F83F000000000000FC9F000000000000F83F0100000000000080000000000000F83F0000000000000000000000000000F83F0100000000000000000000000000F83F000000000000FC1F000000000000F83F000000000000F83F000000000000F83FFEFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7F000000000000F83F000000000000F07F000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F000000000000F8BFFEFFFFFFFFFFEF7F000000000000FC9FFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7F000000000000FC1FFEFFFFFFFFFFEF7F000000000000F83FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F000000000000F8BF000000000000F07F000000000000FC9F000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07F000000000000FC1F000000000000F07F000000000000F83F000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0xD221337F7CD90240000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F000000000000F07F182D4454FB210940000000000000F07FD221337F7CD90240C5D7195894368640D221337F7CD90240C5D7195894368640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640192D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D71958943686400000000000000000000000000000F07F182D4454FB210940000000000000F07FD221337F7CD90240C5D7195894368640D221337F7CD90240C5D7195894368640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D71958943686400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D445CFB21F93F010000000000603E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D444CFB21F93F010000000000603E00000002000000007EF8B98FCE33864000000002000000007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D445CFB21F93FD03B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D444CFB21F93FD03B7F669EA0961D00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D445CFB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D444CFB21F93F010000000000000000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D445CFB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D444CFB21F93F000000000000000000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D445CFB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D444CFB21F93F010000000000008000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D445CFB21F93FD03B7F669EA0969D182D4454FB21F93FCD3B7F669EA0969D182D4454FB21F93FCD3B7F669EA0969D182D4454FB21F93FCD3B7F669EA0969D182D4454FB21F93FCD3B7F669EA0969D182D4454FB21F93FCD3B7F669EA0969D182D444CFB21F93FD03B7F669EA0969D00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D445CFB21F93F01000000000060BE182D4454FB21F93FFFFFFFFFFFFF5FBE182D4454FB21F93FFFFFFFFFFFFF5FBE182D4454FB21F93FFFFFFFFFFFFF5FBE182D4454FB21F93FFFFFFFFFFFFF5FBE182D4454FB21F93FFFFFFFFFFFFF5FBE182D444CFB21F93F01000000000060BE00000002000000007EF8B98FCE3386C000000002000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FFD221337F7CD90240C5D71958943686C0D221337F7CD90240C5D71958943686C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FFD221337F7CD90240C5D71958943686C0D221337F7CD90240C5D71958943686C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0192D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C00000000000000000000000000000F0FFD221337F7CD90240000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21E93F000000000000F0FF"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0xD221337F7CD90240000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F000000000000F07F182D4454FB210940000000000000F07FD221337F7CD90240C5D7195894368640D221337F7CD90240C5D7195894368640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640192D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D71958943686400000000000000000000000000000F07F182D4454FB210940000000000000F07FD221337F7CD90240C5D7195894368640D221337F7CD90240C5D7195894368640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D71958943686400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE33864024A12242DA68024013B635A51C32F73F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33FD32F864884E4EA3F13B635A51C32F73F00000000000006007EF8B98FCE33864000000000000006007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400A16C5AE2CCCEE3F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F1EF0070D410BF91F0A16C5AE2CCCEE3F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400A16C5AE2CCCEE3F182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F010000000000000000000000000000000A16C5AE2CCCEE3F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D4454FB2109400A16C5AE2CCCEEBF182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F000000000000000000000000000000000A16C5AE2CCCEEBF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D4454FB2109400A16C5AE2CCCEEBF182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F0100000000000080182D4454FB21F93F010000000000008000000000000000000A16C5AE2CCCEEBF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C0182D4454FB2109400A16C5AE2CCCEEBF182D4454FB21F93F000000000000FC9F182D4454FB21F93F000000000000FC9F182D4454FB21F93F000000000000FC9F182D4454FB21F93F000000000000FC9F182D4454FB21F93F000000000000FC9F1EF0070D410BF91F0A16C5AE2CCCEEBF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FF182D4454FB2109407EF8B98FCE3386C0182D4454FB2109407EF8B98FCE3386C024A12242DA68024013B635A51C32F7BF182D4454FB21F93FD8630B09C01DF3BF182D4454FB21F93FD8630B09C01DF3BF182D4454FB21F93FD8630B09C01DF3BF182D4454FB21F93FD8630B09C01DF3BF182D4454FB21F93FD8630B09C01DF3BFD32F864884E4EA3F13B635A51C32F7BF00000000000006007EF8B98FCE3386C000000000000006007EF8B98FCE3386C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FFD221337F7CD90240C5D71958943686C0D221337F7CD90240C5D71958943686C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C00000000000000000000000000000F0FF182D4454FB210940000000000000F0FFD221337F7CD90240C5D71958943686C0D221337F7CD90240C5D71958943686C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0192D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C00000000000000000000000000000F0FFD221337F7CD90240000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21E93F000000000000F0FF"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/acos_complex64.mlir b/stablehlo/tests/math/acos_complex64.mlir index 3000a1681cf..2c86d6c63ce 100644 --- a/stablehlo/tests/math/acos_complex64.mlir +++ b/stablehlo/tests/math/acos_complex64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acos_complex64 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FFF30435BA000080FFF0379897000080FF01000080000080FF00000000000080FF01000000000080FFF0379817000080FFF304353A000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFFF30435BAFFFF7FFFF0379897FFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFFF0379817FFFF7FFFF304353AFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFFF30435BAFEFF7FFFF0379897FEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFFF0379817FEFF7FFFF304353AFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FFF30435BAFFFF7FFFF30435BAFEFF7FFFF30435BAF30435BAF30435BAF0379897F30435BA01000080F30435BA00000000F30435BA01000000F30435BAF0379817F30435BAF304353AF30435BAFEFF7F7FF30435BAFFFF7F7FF30435BA0000807FF30435BA000080FFF0379897FFFF7FFFF0379897FEFF7FFFF0379897F30435BAF0379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F304353AF0379897FEFF7F7FF0379897FFFF7F7FF03798970000807FF0379897000080FF01000080FFFF7FFF01000080FEFF7FFF01000080F30435BA01000080F037989701000080010000800100008000000000010000800100000001000080F037981701000080F304353A01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF00000000F30435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F304353A00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF01000000F30435BA01000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F304353A01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FFF0379817FFFF7FFFF0379817FEFF7FFFF0379817F30435BAF0379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F304353AF0379817FEFF7F7FF0379817FFFF7F7FF03798170000807FF0379817000080FFF304353AFFFF7FFFF304353AFEFF7FFFF304353AF30435BAF304353AF0379897F304353A01000080F304353A00000000F304353A01000000F304353AF0379817F304353AF304353AF304353AFEFF7F7FF304353AFFFF7F7FF304353A0000807FF304353A000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7FF30435BAFEFF7F7FF0379897FEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7FF0379817FEFF7F7FF304353AFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7FF30435BAFFFF7F7FF0379897FFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7FF0379817FFFF7F7FF304353AFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807FF30435BA0000807FF03798970000807F010000800000807F000000000000807F010000000000807FF03798170000807FF304353A0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FF0000C0BF000080FF0000E09F000080FF01000080000080FF00000000000080FF01000000000080FF0000E01F000080FF0000C03F000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFF0000C0BFFFFF7FFF0000E09FFFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFF0000E01FFFFF7FFF0000C03FFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFF0000C0BFFEFF7FFF0000E09FFEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFF0000E01FFEFF7FFF0000C03FFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FF0000C0BFFFFF7FFF0000C0BFFEFF7FFF0000C0BF0000C0BF0000C0BF0000E09F0000C0BF010000800000C0BF000000000000C0BF010000000000C0BF0000E01F0000C0BF0000C03F0000C0BFFEFF7F7F0000C0BFFFFF7F7F0000C0BF0000807F0000C0BF000080FF0000E09FFFFF7FFF0000E09FFEFF7FFF0000E09F0000C0BF0000E09F0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09F0000C03F0000E09FFEFF7F7F0000E09FFFFF7F7F0000E09F0000807F0000E09F000080FF01000080FFFF7FFF01000080FEFF7FFF010000800000C0BF010000800000E09F010000800100008001000080000000000100008001000000010000800000E01F010000800000C03F01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF000000000000C0BF000000000000E09F000000000100008000000000000000000000000001000000000000000000E01F000000000000C03F00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF010000000000C0BF010000000000E09F010000000100008001000000000000000100000001000000010000000000E01F010000000000C03F01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FF0000E01FFFFF7FFF0000E01FFEFF7FFF0000E01F0000C0BF0000E01F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01F0000C03F0000E01FFEFF7F7F0000E01FFFFF7F7F0000E01F0000807F0000E01F000080FF0000C03FFFFF7FFF0000C03FFEFF7FFF0000C03F0000C0BF0000C03F0000E09F0000C03F010000800000C03F000000000000C03F010000000000C03F0000E01F0000C03F0000C03F0000C03FFEFF7F7F0000C03FFFFF7F7F0000C03F0000807F0000C03F000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7F0000C0BFFEFF7F7F0000E09FFEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7F0000E01FFEFF7F7F0000C03FFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7F0000C0BFFFFF7F7F0000E09FFFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7F0000E01FFFFF7F7F0000C03FFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807F0000C0BF0000807F0000E09F0000807F010000800000807F000000000000807F010000000000807F0000E01F0000807F0000C03F0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0xE4CB16400000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F0000807FDB0F49400000807FE4CB16406E86B342E4CB16406E86B342DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0F493F6E86B342DB0F493F6E86B342000000000000807FDB0F49400000807FE4CB16406E86B342E4CB16406E86B342DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0F493F6E86B342DA0F493F6E86B342000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B2427B26C93FF504353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF204353A3AF9C83FF504353AA8050000FCD4B242A8050000FCD4B242000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B2427B26C93FF2379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF03798173AF9C83FF237981700000000FCD4B24200000000FCD4B242000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B2427B26C93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F010000003AF9C83F0100000000000000FCD4B24200000000FCD4B242000000000000807FDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C27B26C93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F000000003AF9C83F0000000000000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C27B26C93F01000080DB0FC93F01000080DB0FC93F01000080DB0FC93F01000080DB0FC93F01000080DB0FC93F010000803AF9C83F0100008000000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C27B26C93FF2379897DB0FC93FF0379897DB0FC93FF0379897DB0FC93FF0379897DB0FC93FF0379897DB0FC93FF03798973AF9C83FF237989700000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C27B26C93FF50435BADB0FC93FF20435BADB0FC93FF20435BADB0FC93FF20435BADB0FC93FF20435BADB0FC93FF20435BA3AF9C83FF50435BAA8050000FCD4B2C2A8050000FCD4B2C200000000000080FFDB0F4940000080FFE4CB16406E86B3C2E4CB16406E86B3C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0F493F6E86B3C2DA0F493F6E86B3C200000000000080FFDB0F4940000080FFE4CB16406E86B3C2E4CB16406E86B3C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0F493F6E86B3C2DB0F493F6E86B3C200000000000080FFE4CB1640000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0F493F000080FF"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0xE4CB16400000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F0000807FDB0F49400000807FE4CB16406E86B342E4CB16406E86B342DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0F493F6E86B342DB0F493F6E86B342000000000000807FDB0F49400000807FE4CB16406E86B342E4CB16406E86B342DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0F493F6E86B342DA0F493F6E86B342000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B242D2461340E590B93FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93F00EE983F2224573FE590B93F00003000FCD4B24200003000FCD4B242000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F49406561763FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F0000E01F085AC81F6561763F00000000FCD4B24200000000FCD4B242000000000000807FDB0F49400000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F49406561763FDB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000000000006561763F00000000FCD4B24200000000FCD4B242000000000000807FDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C2DB0F4940656176BFDB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F0000000000000000656176BF00000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C2DB0F4940656176BFDB0FC93F01000080DB0FC93F01000080DB0FC93F01000080DB0FC93F01000080DB0FC93F0100008000000000656176BF00000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C2DB0F4940656176BFDB0FC93F0000E09FDB0FC93F0000E09FDB0FC93F0000E09FDB0FC93F0000E09FDB0FC93F0000E09F085AC81F656176BF00000000FCD4B2C200000000FCD4B2C200000000000080FFDB0F4940000080FFDB0F4940FCD4B2C2DB0F4940FCD4B2C2D2461340E590B9BFDB0FC93F00EE98BFDB0FC93F00EE98BFDB0FC93F00EE98BFDB0FC93F00EE98BFDB0FC93F00EE98BF2224573FE590B9BF00003000FCD4B2C200003000FCD4B2C200000000000080FFDB0F4940000080FFE4CB16406E86B3C2E4CB16406E86B3C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0F493F6E86B3C2DA0F493F6E86B3C200000000000080FFDB0F4940000080FFE4CB16406E86B3C2E4CB16406E86B3C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0F493F6E86B3C2DB0F493F6E86B3C200000000000080FFE4CB1640000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0F493F000080FF"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/acos_float32.mlir b/stablehlo/tests/math/acos_float32.mlir index 3e3ff833696..e6a3e0fef49 100644 --- a/stablehlo/tests/math/acos_float32.mlir +++ b/stablehlo/tests/math/acos_float32.mlir @@ -1,19 +1,19 @@ // RUN: stablehlo-opt --chlo-legalize-to-stablehlo %s | stablehlo-translate --interpret // This file is generated, see build_tools/math/README.md for more information. module @acos_float32 { - func.func private @samples() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF979317FCFC4469FAE17EB3F82C1E0AF7A58E54F5D98EA3F35CB5FBF11BAF41F0160995EEE45BE5EC907C30EB6ECD87E971FED0E7EED020E6237D77E4E66FBEE27E8912E1958361DF2987ADDDA08605DC887D4DDAC71E9ED80657F3D6A03E3BD59E1490D3C7BBDDD1749E2AD0974983CEA80BCACC31781BCBB7426FC90D1BB8C74AAA0DC631045AC43BC2A7C22A1601C190A846BFFCDC98BDE93FEBBBF30435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F304353AE93FEB3BFCDC983D90A8463F2A1601413BC2A74231045A444AAA0D460D1BB847B7426F4931781B4BA80BCA4C9749834E749E2A50C7BBDD519E149053A03E3B550657F356C71E9E58887D4D5AA086055C2987AD5D9583615F7E891261E66FBE62237D7764EED0206671FED0676ECD8769907C306BE45BE56C1609956E1BAF41705CB5FB71D98EA373A58E54752C1E0A77E17EB378FC44697A9793177CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> - return %0 : tensor<169xf32> + func.func private @samples() -> tensor<175xf32> { + %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF05E763FC88DAD5FA0BCE47F98EC1B9F711B52BF695A89DF4189C0FF39B8F81F11E83F3EFA17665EE246AD7ECA75D49EB2B51BBE9AE442DE831389FE6B42B11E5371F83E3BA12F5E13D0667E0C1F9D8DE44ED4ADDC7E0BCDB4AD42EDACDC7A0D850BB12D7D3AE84D557A2F6D3DA9568D25D89DAD0E07C4CCF6370BECDE66330CC6957A2CAED4A14C9703E86C7F331F8C576256AC4F918DCC27C0C4EC10000C0BF83F331BE06E7A3BC89DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873989DA153B06E7A33C83F3313E0000C03F7C0C4E41F918DC4276256A44F331F845703E8647ED4A14496957A24AE663304C6370BE4DE07C4C4F5D89DA50DA95685257A2F653D3AE845550BB1257CDC7A0584AD42E5AC7E0BC5B44ED4A5DC1F9D85E3D066760BA12F561371F8363B42B116531389F66AE442D682B51BB69A75D496B246AD76CA176656E1E83F36F9B8F8171189C0F7395A89D7411B52B768EC1B9770BCE477988DAD57A05E7637CFEFF7F7FFFFF7F7F0000807F010080BF000080BFFFFF7FBFFFFF7F3F0000803F0100803F"> : tensor<175xf32> + return %0 : tensor<175xf32> } - func.func private @expected() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F11621D40F19FD23F1BFBC93F7B26C93F0812C93F1010C93FE00FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDA0FC93FD50FC93FA50FC93FAD0DC93F3AF9C83F9A24C83FC47FBF3F27B72E3F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F"> : tensor<169xf32> - return %0 : tensor<169xf32> + func.func private @expected() -> tensor<175xf32> { + %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F5A6BDF3F829FCB3FC85AC93F5818C93FD410C93FF80FC93FDE0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDB0FC93FDA0FC93FD70FC93FBD0FC93FE10EC93F5E07C93FEDC4C83F3380C63F5BB4B23F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07FDB0F4940320A4940F304B539000000000000C07F"> : tensor<175xf32> + return %0 : tensor<175xf32> } func.func public @main() { - %0 = call @samples() : () -> tensor<169xf32> - %1 = "chlo.acos"(%0) : (tensor<169xf32>) -> tensor<169xf32> - %2 = call @expected() : () -> tensor<169xf32> - check.expect_close %1, %2, max_ulp_difference = 3 : tensor<169xf32>, tensor<169xf32> + %0 = call @samples() : () -> tensor<175xf32> + %1 = "chlo.acos"(%0) : (tensor<175xf32>) -> tensor<175xf32> + %2 = call @expected() : () -> tensor<175xf32> + check.expect_close %1, %2, max_ulp_difference = 3 : tensor<175xf32>, tensor<175xf32> func.return } } diff --git a/stablehlo/tests/math/acos_float64.mlir b/stablehlo/tests/math/acos_float64.mlir index edcb5e03ccc..bcf3031a9df 100644 --- a/stablehlo/tests/math/acos_float64.mlir +++ b/stablehlo/tests/math/acos_float64.mlir @@ -1,19 +1,19 @@ // RUN: stablehlo-opt --chlo-legalize-to-stablehlo %s | stablehlo-translate --interpret // This file is generated, see build_tools/math/README.md for more information. module @acos_float64 { - func.func private @samples() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF8947AC0AB56DBCFCC1AE24D172F222FB376F06F0744189F94EAFC37F19D5F0F7D10D012BDC6F56F63DBB37D356E8BDF4AD77C49BCCEE23F394EEB494D4918AF10ABF993649B5F1EFC1DBEF0FB19A57EEB033ED80AB76BFEC0317E96347F824EB5F3BB74AB4F38BE9AC8BEACD22A1F2E76F3F450312D558E69C215EB8DC8CC0E473E0AD05920F26E3F5DFD726FD678DE1070CC99D4199F3DF41E24716CE1F5ADEE2EBF5524A69C1DC960A1776643527DB7095395EA4EF8ED9F4454413499EF4D7B2771E20BF7B5BD64827F3BF2F51C2D47EC03B3C806A28D3C1A5ECF3D54590D1FE7F0B1CE5B0F5CFD6124B4DCAE95CCE5A89BDBC2545C3CC6BF1BDF0B0AF29CBED883B93911E91C90939AC97CAD1F6C7E8769DB6E06A5EC6DFA409F9CC45C4C454FDE3C3CC052BC3490EABCD930292C1AC39B4CEB701F8BF00000000000060BEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53C000000000000603EAC39B4CEB701F83F490EABCD9302924154FDE3C3CC052B43DFA409F9CC45C444E8769DB6E06A5E460939AC97CAD1F647ED883B93911E91496BF1BDF0B0AF294B5A89BDBC2545C34CD6124B4DCAE95C4EFE7F0B1CE5B0F54FC1A5ECF3D54590517EC03B3C806A28534827F3BF2F51C254B2771E20BF7B5B56F4454413499EF4577095395EA4EF8E59960A17766435275BE2EBF5524A69C15C41E24716CE1F5A5E070CC99D4199F35FF5DFD726FD678D6173E0AD05920F26639C215EB8DC8CC0646F3F450312D55866AC8BEACD22A1F2675F3BB74AB4F38B690317E96347F8246BB033ED80AB76BF6CC1DBEF0FB19A576E0ABF993649B5F16F94EEB494D4918A71AD77C49BCCEE23733DBB37D356E8BD74D10D012BDC6F56764EAFC37F19D5F077376F06F074418979C1AE24D172F2227B8947AC0AB56DBC7CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> - return %0 : tensor<169xf64> + func.func private @samples() -> tensor<175xf64> { + %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF0054BB12B52BD1FC00FC189C8FC141FB00A476256A57B2F9004CD4AE44ED22F800F431381F8393F6009C8FC1F91804F50048ED4AD4AE74F300F04AD4AE44E5F10098A85D89DA55F0004006E76370C6EE00E863703E0637ED0090C1F9189CA7EB00381F83F33118EA00E47C0CCEC788E8008CDA95A85DF9E60034381F83F369E500DC95A85D89DAE30084F331381F4BE2002C51BB12B5BBE000D4AE44ED4A2CDF00800CCEC7E09CDD00286A57A2760DDC00D0C7E07C0C7EDA0078256A57A2EED8002083F331385FD700C8E07C0CCECFD500703E06E76340D4001C9C8FC1F9B0D200C4F9189C8F21D1006C57A2762592CF0014B52B51BB02CE00BC12B52B5173CC0064703E06E7E3CA000CCEC7E07C54C900B82B51BB12C5C7006089DA95A835C60008E763703EA6C400B044ED4AD416C30058A276256A87C1000000000000F8BF00AA5D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93C00AA5D89DA95683E000000000000F83F0058A276256A874100B044ED4AD416430008E763703EA644006089DA95A8354600B82B51BB12C547000CCEC7E07C54490064703E06E7E34A00BC12B52B51734C0014B52B51BB024E006C57A27625924F00C4F9189C8F2151001C9C8FC1F9B05200703E06E763405400C8E07C0CCECF55002083F331385F570078256A57A2EE5800D0C7E07C0C7E5A00286A57A2760D5C00800CCEC7E09C5D00D4AE44ED4A2C5F002C51BB12B5BB600084F331381F4B6200DC95A85D89DA630034381F83F36965008CDA95A85DF96600E47C0CCEC7886800381F83F331186A0090C1F9189CA76B00E863703E06376D004006E76370C66E0098A85D89DA557000F04AD4AE44E5710048ED4AD4AE7473009C8FC1F918047500F431381F839376004CD4AE44ED227800A476256A57B27900FC189C8FC1417B0054BB12B52BD17CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F010000000000F0BF000000000000F0BFFFFFFFFFFFFFEFBFFFFFFFFFFFFFEF3F000000000000F03F010000000000F03F"> : tensor<175xf64> + return %0 : tensor<175xf64> } - func.func private @expected() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F182D445CFB21F93F1B2D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F162D4454FB21F93F182D444CFB21F93F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F"> : tensor<169xf64> - return %0 : tensor<169xf64> + func.func private @expected() -> tensor<175xf64> { + %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F5D1A8F60FB21F93F1F2D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F182D4454FB21F93F122D4454FB21F93FD43FF947FB21F93F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F182D4454FB210940182D4452FB210940000000000000503E0000000000000000000000000000F87F"> : tensor<175xf64> + return %0 : tensor<175xf64> } func.func public @main() { - %0 = call @samples() : () -> tensor<169xf64> - %1 = "chlo.acos"(%0) : (tensor<169xf64>) -> tensor<169xf64> - %2 = call @expected() : () -> tensor<169xf64> - check.expect_close %1, %2, max_ulp_difference = 3 : tensor<169xf64>, tensor<169xf64> + %0 = call @samples() : () -> tensor<175xf64> + %1 = "chlo.acos"(%0) : (tensor<175xf64>) -> tensor<175xf64> + %2 = call @expected() : () -> tensor<175xf64> + check.expect_close %1, %2, max_ulp_difference = 3 : tensor<175xf64>, tensor<175xf64> func.return } } diff --git a/stablehlo/tests/math/acosh_complex128.mlir b/stablehlo/tests/math/acosh_complex128.mlir index d23fabf0634..09fa66c76f2 100644 --- a/stablehlo/tests/math/acosh_complex128.mlir +++ b/stablehlo/tests/math/acosh_complex128.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acosh_complex128 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BE000000000000F0FFCD3B7F669EA0969D000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FFCD3B7F669EA0961D000000000000F0FF000000000000603E000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF00000000000060BEFFFFFFFFFFFFEFFFCD3B7F669EA0969DFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFFCD3B7F669EA0961DFFFFFFFFFFFFEFFF000000000000603EFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BEFFFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFF00000000000060BE00000000000060BE00000000000060BECD3B7F669EA0969D00000000000060BE010000000000008000000000000060BE000000000000000000000000000060BE010000000000000000000000000060BECD3B7F669EA0961D00000000000060BE000000000000603E00000000000060BEFEFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7F00000000000060BE000000000000F07F00000000000060BE000000000000F0FFCD3B7F669EA0969DFFFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFFCD3B7F669EA0969D00000000000060BECD3B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969D000000000000603ECD3B7F669EA0969DFEFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7FCD3B7F669EA0969D000000000000F07FCD3B7F669EA0969D000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF010000000000008000000000000060BE0100000000000080CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080000000000000603E0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF000000000000000000000000000060BE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000000000000000603E0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF010000000000000000000000000060BE0100000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000000000000000603E0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FFCD3B7F669EA0961DFFFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFFCD3B7F669EA0961D00000000000060BECD3B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961D000000000000603ECD3B7F669EA0961DFEFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7FCD3B7F669EA0961D000000000000F07FCD3B7F669EA0961D000000000000F0FF000000000000603EFFFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFF000000000000603E00000000000060BE000000000000603ECD3B7F669EA0969D000000000000603E0100000000000080000000000000603E0000000000000000000000000000603E0100000000000000000000000000603ECD3B7F669EA0961D000000000000603E000000000000603E000000000000603EFEFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7F000000000000603E000000000000F07F000000000000603E000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F00000000000060BEFEFFFFFFFFFFEF7FCD3B7F669EA0969DFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7FCD3B7F669EA0961DFEFFFFFFFFFFEF7F000000000000603EFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F00000000000060BE000000000000F07FCD3B7F669EA0969D000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07FCD3B7F669EA0961D000000000000F07F000000000000603E000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BF000000000000F0FF000000000000FC9F000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FF000000000000FC1F000000000000F0FF000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF000000000000F8BFFFFFFFFFFFFFEFFF000000000000FC9FFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFF000000000000FC1FFFFFFFFFFFFFEFFF000000000000F83FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BFFFFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000F8BF000000000000F8BF000000000000F8BF000000000000FC9F000000000000F8BF0100000000000080000000000000F8BF0000000000000000000000000000F8BF0100000000000000000000000000F8BF000000000000FC1F000000000000F8BF000000000000F83F000000000000F8BFFEFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000F8BF000000000000F07F000000000000F8BF000000000000F0FF000000000000FC9FFFFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF000000000000FC9F000000000000F8BF000000000000FC9F000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9F000000000000F83F000000000000FC9FFEFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F000000000000FC9F000000000000F07F000000000000FC9F000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0100000000000080000000000000F8BF0100000000000080000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080000000000000F83F0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0000000000000000000000000000F8BF0000000000000000000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000000000000000F83F0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF0100000000000000000000000000F8BF0100000000000000000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000000000000000F83F0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FF000000000000FC1FFFFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000FC1F000000000000F8BF000000000000FC1F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1F000000000000F83F000000000000FC1FFEFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000FC1F000000000000F07F000000000000FC1F000000000000F0FF000000000000F83FFFFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFF000000000000F83F000000000000F8BF000000000000F83F000000000000FC9F000000000000F83F0100000000000080000000000000F83F0000000000000000000000000000F83F0100000000000000000000000000F83F000000000000FC1F000000000000F83F000000000000F83F000000000000F83FFEFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7F000000000000F83F000000000000F07F000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F000000000000F8BFFEFFFFFFFFFFEF7F000000000000FC9FFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7F000000000000FC1FFEFFFFFFFFFFEF7F000000000000F83FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F000000000000F8BF000000000000F07F000000000000FC9F000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07F000000000000FC1F000000000000F07F000000000000F83F000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F07FD221337F7CD902C0000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BF000000000000F07F182D4454FB2109C0C5D7195894368640D221337F7CD902C0C5D7195894368640D221337F7CD902C07EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640192D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F182D4454FB2109C0C5D7195894368640D221337F7CD902C0C5D7195894368640D221337F7CD902C07EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640182D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C0010000000000603E182D445CFB21F9BFFFFFFFFFFFFF5F3E182D4454FB21F9BFFFFFFFFFFFFF5F3E182D4454FB21F9BFFFFFFFFFFFFF5F3E182D4454FB21F9BFFFFFFFFFFFFF5F3E182D4454FB21F9BFFFFFFFFFFFFF5F3E182D4454FB21F9BF010000000000603E182D444CFB21F9BF7EF8B98FCE33864000000002000000807EF8B98FCE3386400000000200000080000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C0D03B7F669EA0961D182D445CFB21F9BFCD3B7F669EA0961D182D4454FB21F9BFCD3B7F669EA0961D182D4454FB21F9BFCD3B7F669EA0961D182D4454FB21F9BFCD3B7F669EA0961D182D4454FB21F9BFCD3B7F669EA0961D182D4454FB21F9BFD03B7F669EA0961D182D444CFB21F9BF7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C00100000000000000182D445CFB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D444CFB21F9BF7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400000000000000000182D445CFB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D444CFB21F93F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400100000000000000182D445CFB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D444CFB21F93F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB210940D03B7F669EA0961D182D445CFB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FCD3B7F669EA0961D182D4454FB21F93FD03B7F669EA0961D182D444CFB21F93F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB210940010000000000603E182D445CFB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93FFFFFFFFFFFFF5F3E182D4454FB21F93F010000000000603E182D444CFB21F93F7EF8B98FCE33864000000002000000007EF8B98FCE3386400000000200000000000000000000F07F0000000000000000000000000000F07F182D4454FB210940C5D7195894368640D221337F7CD90240C5D7195894368640D221337F7CD902407EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F07F182D4454FB210940C5D7195894368640D221337F7CD90240C5D7195894368640D221337F7CD902407EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F07FD221337F7CD90240000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F07FD221337F7CD902C0000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BF000000000000F07F182D4454FB2109C0C5D7195894368640D221337F7CD902C0C5D7195894368640D221337F7CD902C07EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640192D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F182D4454FB2109C0C5D7195894368640D221337F7CD902C0C5D7195894368640D221337F7CD902C07EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640182D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C013B635A51C32F73F24A12242DA6802C0D8630B09C01DF33F182D4454FB21F9BFD8630B09C01DF33F182D4454FB21F9BFD8630B09C01DF33F182D4454FB21F9BFD8630B09C01DF33F182D4454FB21F9BFD8630B09C01DF33F182D4454FB21F9BF13B635A51C32F73FD32F864884E4EABF7EF8B98FCE33864000000000000006807EF8B98FCE3386400000000000000680000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C00A16C5AE2CCCEE3F182D4454FB2109C0000000000000FC1F182D4454FB21F9BF000000000000FC1F182D4454FB21F9BF000000000000FC1F182D4454FB21F9BF000000000000FC1F182D4454FB21F9BF000000000000FC1F182D4454FB21F9BF0A16C5AE2CCCEE3F1EF0070D410BF99F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109C07EF8B98FCE338640182D4454FB2109C07EF8B98FCE338640182D4454FB2109C00A16C5AE2CCCEE3F182D4454FB2109C00100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0100000000000000182D4454FB21F9BF0A16C5AE2CCCEE3F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400A16C5AE2CCCEE3F182D4454FB2109400000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0000000000000000182D4454FB21F93F0A16C5AE2CCCEE3F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400A16C5AE2CCCEE3F182D4454FB2109400100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0100000000000000182D4454FB21F93F0A16C5AE2CCCEE3F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB2109400A16C5AE2CCCEE3F182D4454FB210940000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F000000000000FC1F182D4454FB21F93F0A16C5AE2CCCEE3F1EF0070D410BF91F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB2109407EF8B98FCE338640182D4454FB2109407EF8B98FCE338640182D4454FB21094013B635A51C32F73F24A12242DA680240D8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93FD8630B09C01DF33F182D4454FB21F93F13B635A51C32F73FD32F864884E4EA3F7EF8B98FCE33864000000000000006007EF8B98FCE3386400000000000000600000000000000F07F0000000000000000000000000000F07F182D4454FB210940C5D7195894368640D221337F7CD90240C5D7195894368640D221337F7CD902407EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F07F182D4454FB210940C5D7195894368640D221337F7CD90240C5D7195894368640D221337F7CD902407EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F07FD221337F7CD90240000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/acosh_complex64.mlir b/stablehlo/tests/math/acosh_complex64.mlir index 5cd0ea09f6b..64c0e13a28f 100644 --- a/stablehlo/tests/math/acosh_complex64.mlir +++ b/stablehlo/tests/math/acosh_complex64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acosh_complex64 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FFF30435BA000080FFF0379897000080FF01000080000080FF00000000000080FF01000000000080FFF0379817000080FFF304353A000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFFF30435BAFFFF7FFFF0379897FFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFFF0379817FFFF7FFFF304353AFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFFF30435BAFEFF7FFFF0379897FEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFFF0379817FEFF7FFFF304353AFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FFF30435BAFFFF7FFFF30435BAFEFF7FFFF30435BAF30435BAF30435BAF0379897F30435BA01000080F30435BA00000000F30435BA01000000F30435BAF0379817F30435BAF304353AF30435BAFEFF7F7FF30435BAFFFF7F7FF30435BA0000807FF30435BA000080FFF0379897FFFF7FFFF0379897FEFF7FFFF0379897F30435BAF0379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F304353AF0379897FEFF7F7FF0379897FFFF7F7FF03798970000807FF0379897000080FF01000080FFFF7FFF01000080FEFF7FFF01000080F30435BA01000080F037989701000080010000800100008000000000010000800100000001000080F037981701000080F304353A01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF00000000F30435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F304353A00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF01000000F30435BA01000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F304353A01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FFF0379817FFFF7FFFF0379817FEFF7FFFF0379817F30435BAF0379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F304353AF0379817FEFF7F7FF0379817FFFF7F7FF03798170000807FF0379817000080FFF304353AFFFF7FFFF304353AFEFF7FFFF304353AF30435BAF304353AF0379897F304353A01000080F304353A00000000F304353A01000000F304353AF0379817F304353AF304353AF304353AFEFF7F7FF304353AFFFF7F7FF304353A0000807FF304353A000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7FF30435BAFEFF7F7FF0379897FEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7FF0379817FEFF7F7FF304353AFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7FF30435BAFFFF7F7FF0379897FFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7FF0379817FFFF7F7FF304353AFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807FF30435BA0000807FF03798970000807F010000800000807F000000000000807F010000000000807FF03798170000807FF304353A0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FF0000C0BF000080FF0000E09F000080FF01000080000080FF00000000000080FF01000000000080FF0000E01F000080FF0000C03F000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFF0000C0BFFFFF7FFF0000E09FFFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFF0000E01FFFFF7FFF0000C03FFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFF0000C0BFFEFF7FFF0000E09FFEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFF0000E01FFEFF7FFF0000C03FFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FF0000C0BFFFFF7FFF0000C0BFFEFF7FFF0000C0BF0000C0BF0000C0BF0000E09F0000C0BF010000800000C0BF000000000000C0BF010000000000C0BF0000E01F0000C0BF0000C03F0000C0BFFEFF7F7F0000C0BFFFFF7F7F0000C0BF0000807F0000C0BF000080FF0000E09FFFFF7FFF0000E09FFEFF7FFF0000E09F0000C0BF0000E09F0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09F0000C03F0000E09FFEFF7F7F0000E09FFFFF7F7F0000E09F0000807F0000E09F000080FF01000080FFFF7FFF01000080FEFF7FFF010000800000C0BF010000800000E09F010000800100008001000080000000000100008001000000010000800000E01F010000800000C03F01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF000000000000C0BF000000000000E09F000000000100008000000000000000000000000001000000000000000000E01F000000000000C03F00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF010000000000C0BF010000000000E09F010000000100008001000000000000000100000001000000010000000000E01F010000000000C03F01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FF0000E01FFFFF7FFF0000E01FFEFF7FFF0000E01F0000C0BF0000E01F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01F0000C03F0000E01FFEFF7F7F0000E01FFFFF7F7F0000E01F0000807F0000E01F000080FF0000C03FFFFF7FFF0000C03FFEFF7FFF0000C03F0000C0BF0000C03F0000E09F0000C03F010000800000C03F000000000000C03F010000000000C03F0000E01F0000C03F0000C03F0000C03FFEFF7F7F0000C03FFFFF7F7F0000C03F0000807F0000C03F000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7F0000C0BFFEFF7F7F0000E09FFEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7F0000E01FFEFF7F7F0000C03FFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7F0000C0BFFFFF7F7F0000E09FFFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7F0000E01FFFFF7F7F0000C03FFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807F0000C0BF0000807F0000E09F0000807F010000800000807F000000000000807F010000000000807F0000E01F0000807F0000C03F0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x0000807FE4CB16C00000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0F49BF0000807FDB0F49C06E86B342E4CB16C06E86B342E4CB16C0FCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DB0F49BF0000807F000000000000807FDB0F49C06E86B342E4CB16C06E86B342E4CB16C0FCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DA0F49BF0000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C0F504353A7B26C9BFF204353ADB0FC9BFF204353ADB0FC9BFF204353ADB0FC9BFF204353ADB0FC9BFF204353ADB0FC9BFF504353A3AF9C8BFFCD4B242A8050080FCD4B242A80500800000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C0F23798177B26C9BFF0379817DB0FC9BFF0379817DB0FC9BFF0379817DB0FC9BFF0379817DB0FC9BFF0379817DB0FC9BFF23798173AF9C8BFFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C0010000007B26C9BF01000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF010000003AF9C8BFFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F4940000000007B26C93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F000000003AF9C83FFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F4940010000007B26C93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F010000003AF9C83FFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F4940F23798177B26C93FF0379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF0379817DB0FC93FF23798173AF9C83FFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F4940F504353A7B26C93FF204353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF204353ADB0FC93FF504353A3AF9C83FFCD4B242A8050000FCD4B242A80500000000807F000000000000807FDB0F49406E86B342E4CB16406E86B342E4CB1640FCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DA0F493F0000807F000000000000807FDB0F49406E86B342E4CB16406E86B342E4CB1640FCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DB0F493F0000807F000000000000807FE4CB16400000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x0000807FE4CB16C00000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0F49BF0000807FDB0F49C06E86B342E4CB16C06E86B342E4CB16C0FCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DB0F49BF0000807F000000000000807FDB0F49C06E86B342E4CB16C06E86B342E4CB16C0FCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DA0F49BF0000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C0E590B93FD24613C000EE983FDB0FC9BF00EE983FDB0FC9BF00EE983FDB0FC9BF00EE983FDB0FC9BF00EE983FDB0FC9BFE590B93F222457BFFCD4B24200003080FCD4B242000030800000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C06561763FDB0F49C00000E01FDB0FC9BF0000E01FDB0FC9BF0000E01FDB0FC9BF0000E01FDB0FC9BF0000E01FDB0FC9BF6561763F085AC89FFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F49C0FCD4B242DB0F49C0FCD4B242DB0F49C06561763FDB0F49C001000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF01000000DB0FC9BF6561763F00000000FCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F49406561763FDB0F494000000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F00000000DB0FC93F6561763F00000000FCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F49406561763FDB0F494001000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F01000000DB0FC93F6561763F00000000FCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F49406561763FDB0F49400000E01FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F0000E01FDB0FC93F6561763F085AC81FFCD4B24200000000FCD4B242000000000000807F000000000000807FDB0F4940FCD4B242DB0F4940FCD4B242DB0F4940E590B93FD246134000EE983FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93F00EE983FDB0FC93FE590B93F2224573FFCD4B24200003000FCD4B242000030000000807F000000000000807FDB0F49406E86B342E4CB16406E86B342E4CB1640FCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DA0F493F0000807F000000000000807FDB0F49406E86B342E4CB16406E86B342E4CB1640FCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DB0F493F0000807F000000000000807FE4CB16400000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/acosh_float32.mlir b/stablehlo/tests/math/acosh_float32.mlir index 07fc2a1103a..d2d575a6a0e 100644 --- a/stablehlo/tests/math/acosh_float32.mlir +++ b/stablehlo/tests/math/acosh_float32.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acosh_float32 { func.func private @samples() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF979317FCFC4469FAE17EB3F82C1E0AF7A58E54F5D98EA3F35CB5FBF11BAF41F0160995EEE45BE5EC907C30EB6ECD87E971FED0E7EED020E6237D77E4E66FBEE27E8912E1958361DF2987ADDDA08605DC887D4DDAC71E9ED80657F3D6A03E3BD59E1490D3C7BBDDD1749E2AD0974983CEA80BCACC31781BCBB7426FC90D1BB8C74AAA0DC631045AC43BC2A7C22A1601C190A846BFFCDC98BDE93FEBBBF30435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F304353AE93FEB3BFCDC983D90A8463F2A1601413BC2A74231045A444AAA0D460D1BB847B7426F4931781B4BA80BCA4C9749834E749E2A50C7BBDD519E149053A03E3B550657F356C71E9E58887D4D5AA086055C2987AD5D9583615F7E891261E66FBE62237D7764EED0206671FED0676ECD8769907C306BE45BE56C1609956E1BAF41705CB5FB71D98EA373A58E54752C1E0A77E17EB378FC44697A9793177CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> + %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF05E763FC88DAD5FA0BCE47F98EC1B9F711B52BF695A89DF4189C0FF39B8F81F11E83F3EFA17665EE246AD7ECA75D49EB2B51BBE9AE442DE831389FE6B42B11E5371F83E3BA12F5E13D0667E0C1F9D8DE44ED4ADDC7E0BCDB4AD42EDACDC7A0D850BB12D7D3AE84D557A2F6D3DA9568D25D89DAD0E07C4CCF6370BECDE66330CC6957A2CAED4A14C9703E86C7F331F8C576256AC4F918DCC27C0C4EC10000C0BF83F331BE06E7A3BC89DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873989DA153B06E7A33C83F3313E0000C03F7C0C4E41F918DC4276256A44F331F845703E8647ED4A14496957A24AE663304C6370BE4DE07C4C4F5D89DA50DA95685257A2F653D3AE845550BB1257CDC7A0584AD42E5AC7E0BC5B44ED4A5DC1F9D85E3D066760BA12F561371F8363B42B116531389F66AE442D682B51BB69A75D496B246AD76CA176656E1E83F36F9B8F8171189C0F7395A89D7411B52B768EC1B9770BCE477988DAD57A05E7637CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> return %0 : tensor<169xf32> } func.func private @expected() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F4CBD314073EBA3402ED9EE4051E31C41095A4241C2D06741BEA386411A5F9941771AAC41D3D5BE413091D1418C4CE441E907F741A3E10442513F0E42FF9C1742ADFA20425B582A420AB63342B8133D426671464214CF4F42C32C5942718A62421FE86B42CD4575427CA37E42950084426CAF8842435E8D421A0D9242F1BB9642C96A9B42A019A04277C8A4424E77A942FCD4B242FCD4B2420000807F"> : tensor<169xf32> + %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F6561763F7AD14F400F9CAC40E521F14003C51A414F4C3D4160296041C27081416EBD924112FDA3418931B541505CC6419B7ED7416A99E84108D2F9416CA1054266500E4287F7164206981F42D6322842BBC83042535A39421FE84142D07E4A426338534253E85B424390644271316D42D9CC754241637E42A67A8342BFC187423C0A8C429E67904214C094427414994265659D4266B3A142DDFEA5421D48AA42FCD4B242FCD4B2420000807F"> : tensor<169xf32> return %0 : tensor<169xf32> } func.func public @main() { diff --git a/stablehlo/tests/math/acosh_float64.mlir b/stablehlo/tests/math/acosh_float64.mlir index 43ee1308919..acd7b1c64ec 100644 --- a/stablehlo/tests/math/acosh_float64.mlir +++ b/stablehlo/tests/math/acosh_float64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @acosh_float64 { func.func private @samples() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF8947AC0AB56DBCFCC1AE24D172F222FB376F06F0744189F94EAFC37F19D5F0F7D10D012BDC6F56F63DBB37D356E8BDF4AD77C49BCCEE23F394EEB494D4918AF10ABF993649B5F1EFC1DBEF0FB19A57EEB033ED80AB76BFEC0317E96347F824EB5F3BB74AB4F38BE9AC8BEACD22A1F2E76F3F450312D558E69C215EB8DC8CC0E473E0AD05920F26E3F5DFD726FD678DE1070CC99D4199F3DF41E24716CE1F5ADEE2EBF5524A69C1DC960A1776643527DB7095395EA4EF8ED9F4454413499EF4D7B2771E20BF7B5BD64827F3BF2F51C2D47EC03B3C806A28D3C1A5ECF3D54590D1FE7F0B1CE5B0F5CFD6124B4DCAE95CCE5A89BDBC2545C3CC6BF1BDF0B0AF29CBED883B93911E91C90939AC97CAD1F6C7E8769DB6E06A5EC6DFA409F9CC45C4C454FDE3C3CC052BC3490EABCD930292C1AC39B4CEB701F8BF00000000000060BEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53C000000000000603EAC39B4CEB701F83F490EABCD9302924154FDE3C3CC052B43DFA409F9CC45C444E8769DB6E06A5E460939AC97CAD1F647ED883B93911E91496BF1BDF0B0AF294B5A89BDBC2545C34CD6124B4DCAE95C4EFE7F0B1CE5B0F54FC1A5ECF3D54590517EC03B3C806A28534827F3BF2F51C254B2771E20BF7B5B56F4454413499EF4577095395EA4EF8E59960A17766435275BE2EBF5524A69C15C41E24716CE1F5A5E070CC99D4199F35FF5DFD726FD678D6173E0AD05920F26639C215EB8DC8CC0646F3F450312D55866AC8BEACD22A1F2675F3BB74AB4F38B690317E96347F8246BB033ED80AB76BF6CC1DBEF0FB19A576E0ABF993649B5F16F94EEB494D4918A71AD77C49BCCEE23733DBB37D356E8BD74D10D012BDC6F56764EAFC37F19D5F077376F06F074418979C1AE24D172F2227B8947AC0AB56DBC7CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> + %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF0054BB12B52BD1FC00FC189C8FC141FB00A476256A57B2F9004CD4AE44ED22F800F431381F8393F6009C8FC1F91804F50048ED4AD4AE74F300F04AD4AE44E5F10098A85D89DA55F0004006E76370C6EE00E863703E0637ED0090C1F9189CA7EB00381F83F33118EA00E47C0CCEC788E8008CDA95A85DF9E60034381F83F369E500DC95A85D89DAE30084F331381F4BE2002C51BB12B5BBE000D4AE44ED4A2CDF00800CCEC7E09CDD00286A57A2760DDC00D0C7E07C0C7EDA0078256A57A2EED8002083F331385FD700C8E07C0CCECFD500703E06E76340D4001C9C8FC1F9B0D200C4F9189C8F21D1006C57A2762592CF0014B52B51BB02CE00BC12B52B5173CC0064703E06E7E3CA000CCEC7E07C54C900B82B51BB12C5C7006089DA95A835C60008E763703EA6C400B044ED4AD416C30058A276256A87C1000000000000F8BF00AA5D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93C00AA5D89DA95683E000000000000F83F0058A276256A874100B044ED4AD416430008E763703EA644006089DA95A8354600B82B51BB12C547000CCEC7E07C54490064703E06E7E34A00BC12B52B51734C0014B52B51BB024E006C57A27625924F00C4F9189C8F2151001C9C8FC1F9B05200703E06E763405400C8E07C0CCECF55002083F331385F570078256A57A2EE5800D0C7E07C0C7E5A00286A57A2760D5C00800CCEC7E09C5D00D4AE44ED4A2C5F002C51BB12B5BB600084F331381F4B6200DC95A85D89DA630034381F83F36965008CDA95A85DF96600E47C0CCEC7886800381F83F331186A0090C1F9189CA76B00E863703E06376D004006E76370C66E0098A85D89DA557000F04AD4AE44E5710048ED4AD4AE7473009C8FC1F918047500F431381F839376004CD4AE44ED227800A476256A57B27900FC189C8FC1417B0054BB12B52BD17CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> return %0 : tensor<169xf64> } func.func private @expected() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F837D7A3C3FCFEE3FAF8FD03354D532409556ABB6AB48424053656E53AD264B4013BA18785702524072417A4658715640D1C8DB1459E05A403B503DE3594F5F40CD6BCF582DDF6140822F00C0AD16644031F330272E4E6640E1B6618EAE856840967A92F52EBD6A40453EC35CAFF46C40F401F4C32F2C6F40D5629215D8B17040ACC42A4998CD71408426C37C58E972405F885BB01805744036EAF3E3D82075400E4C8C17993C7640E8AD244B59587740C00FBD7E19747840987155B2D98F794072D3EDE599AB7A404A3586195AC77B4022971E4D1AE37C40FCF8B680DAFE7D40D45A4FB49A1A7F4056DEF3732D1B8040430FC08D0DA980402F408CA7ED3681401B7158C1CDC4814008A224DBAD528240F4D2F0F48DE08240E003BD0E6E6E8340CD3489284EFC8340B96555422E8A8440A696215C0E1885407EF8B98FCE3386407EF8B98FCE338640000000000000F07F"> : tensor<169xf64> + %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F0A16C5AE2CCCEE3F32C692BD106732407A7B38ED5CDA41405CEDA5EE1B814A403192631EE293514046EC8F4C2AE755402BFA23D5653A5A404F2266FC938D5E407CF3E5FA5970614064EFF370E299634099C001E662C36540F01AAAD3DAEC67403793DBA549166A400924EDB8AE3F6C40F6B4F0C03B696E40180A2B0F94497040EF4A29CD885E714088C8380C7C737240783248BD6D88734015FA5DD05D9D7440A74B85344CB275406A0AB9D738C77640F38DCCA623DC7740F1D5518D0CF1784031DD7C75F3057A4007A70348D81A7B40D291FAEBBA2F7C407C65AC469B447D409D7D6D3B79597E40575269AB546E7F40AFC0B4BA9641804086A7CABA01CC8040B33294426B568140BFAC0F3DD3E08140041A6C93396B8240716ED22C9EF58240496A26EE008083401A8BBDB9610A84403F220A6FC0948440532E38EA1C1F85407EF8B98FCE3386407EF8B98FCE338640000000000000F07F"> : tensor<169xf64> return %0 : tensor<169xf64> } func.func public @main() { diff --git a/stablehlo/tests/math/asin_complex128.mlir b/stablehlo/tests/math/asin_complex128.mlir index 024406bf26d..9345cea28f3 100644 --- a/stablehlo/tests/math/asin_complex128.mlir +++ b/stablehlo/tests/math/asin_complex128.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asin_complex128 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BE000000000000F0FFCD3B7F669EA0969D000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FFCD3B7F669EA0961D000000000000F0FF000000000000603E000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF00000000000060BEFFFFFFFFFFFFEFFFCD3B7F669EA0969DFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFFCD3B7F669EA0961DFFFFFFFFFFFFEFFF000000000000603EFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BEFFFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFF00000000000060BE00000000000060BE00000000000060BECD3B7F669EA0969D00000000000060BE010000000000008000000000000060BE000000000000000000000000000060BE010000000000000000000000000060BECD3B7F669EA0961D00000000000060BE000000000000603E00000000000060BEFEFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7F00000000000060BE000000000000F07F00000000000060BE000000000000F0FFCD3B7F669EA0969DFFFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFFCD3B7F669EA0969D00000000000060BECD3B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969D000000000000603ECD3B7F669EA0969DFEFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7FCD3B7F669EA0969D000000000000F07FCD3B7F669EA0969D000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF010000000000008000000000000060BE0100000000000080CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080000000000000603E0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF000000000000000000000000000060BE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000000000000000603E0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF010000000000000000000000000060BE0100000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000000000000000603E0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FFCD3B7F669EA0961DFFFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFFCD3B7F669EA0961D00000000000060BECD3B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961D000000000000603ECD3B7F669EA0961DFEFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7FCD3B7F669EA0961D000000000000F07FCD3B7F669EA0961D000000000000F0FF000000000000603EFFFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFF000000000000603E00000000000060BE000000000000603ECD3B7F669EA0969D000000000000603E0100000000000080000000000000603E0000000000000000000000000000603E0100000000000000000000000000603ECD3B7F669EA0961D000000000000603E000000000000603E000000000000603EFEFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7F000000000000603E000000000000F07F000000000000603E000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F00000000000060BEFEFFFFFFFFFFEF7FCD3B7F669EA0969DFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7FCD3B7F669EA0961DFEFFFFFFFFFFEF7F000000000000603EFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F00000000000060BE000000000000F07FCD3B7F669EA0969D000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07FCD3B7F669EA0961D000000000000F07F000000000000603E000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BF000000000000F0FF000000000000FC9F000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FF000000000000FC1F000000000000F0FF000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF000000000000F8BFFFFFFFFFFFFFEFFF000000000000FC9FFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFF000000000000FC1FFFFFFFFFFFFFEFFF000000000000F83FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BFFFFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000F8BF000000000000F8BF000000000000F8BF000000000000FC9F000000000000F8BF0100000000000080000000000000F8BF0000000000000000000000000000F8BF0100000000000000000000000000F8BF000000000000FC1F000000000000F8BF000000000000F83F000000000000F8BFFEFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000F8BF000000000000F07F000000000000F8BF000000000000F0FF000000000000FC9FFFFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF000000000000FC9F000000000000F8BF000000000000FC9F000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9F000000000000F83F000000000000FC9FFEFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F000000000000FC9F000000000000F07F000000000000FC9F000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0100000000000080000000000000F8BF0100000000000080000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080000000000000F83F0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0000000000000000000000000000F8BF0000000000000000000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000000000000000F83F0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF0100000000000000000000000000F8BF0100000000000000000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000000000000000F83F0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FF000000000000FC1FFFFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000FC1F000000000000F8BF000000000000FC1F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1F000000000000F83F000000000000FC1FFEFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000FC1F000000000000F07F000000000000FC1F000000000000F0FF000000000000F83FFFFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFF000000000000F83F000000000000F8BF000000000000F83F000000000000FC9F000000000000F83F0100000000000080000000000000F83F0000000000000000000000000000F83F0100000000000000000000000000F83F000000000000FC1F000000000000F83F000000000000F83F000000000000F83FFEFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7F000000000000F83F000000000000F07F000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F000000000000F8BFFEFFFFFFFFFFEF7F000000000000FC9FFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7F000000000000FC1FFEFFFFFFFFFFEF7F000000000000F83FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F000000000000F8BF000000000000F07F000000000000FC9F000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07F000000000000FC1F000000000000F07F000000000000F83F000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x182D4454FB21E9BF000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF182D4454FB21E93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21E9BFC5D71958943686C0182D4454FB21E9BFC5D71958943686C000000002000000807EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000002000000007EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF192D4454FB21E9BFC5D71958943686C0182D4454FB21E9BFC5D71958943686C000000002000000807EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000002000000007EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0192D4454FB21E93FC5D71958943686C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0FDFFFFFFFFFF5FBE01000000000060BECA3B7F669EA0969DFFFFFFFFFFFF5FBE0000000000000000FFFFFFFFFFFF5FBE0000000000000000FFFFFFFFFFFF5FBE0000000000000000FFFFFFFFFFFF5FBECA3B7F669EA0961DFFFFFFFFFFFF5FBEFDFFFFFFFFFF5F3E01000000000060BE182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C001000000000060BED03B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969D010000000000603ED03B7F669EA0969D182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C001000000000060BE0100000000000080CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080010000000000603E0100000000000080182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE33864001000000000060BE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000010000000000603E0000000000000000182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE33864001000000000060BE0100000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000010000000000603E0100000000000000182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE33864001000000000060BED03B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961D010000000000603ED03B7F669EA0961D182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640FDFFFFFFFFFF5FBE010000000000603ECA3B7F669EA0969DFFFFFFFFFFFF5F3E0000000000000000FFFFFFFFFFFF5F3E0000000000000000FFFFFFFFFFFF5F3E0000000000000000FFFFFFFFFFFF5F3ECA3B7F669EA0961DFFFFFFFFFFFF5F3EFDFFFFFFFFFF5F3E010000000000603E182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F192D4454FB21E9BFC5D7195894368640182D4454FB21E9BFC5D719589436864000000002000000807EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000002000000007EF8B98FCE338640182D4454FB21E93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BFC5D7195894368640182D4454FB21E9BFC5D719589436864000000002000000807EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000002000000007EF8B98FCE338640182D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21F93F000000000000F07F182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB21E93F000000000000F07F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x182D4454FB21E9BF000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF0000000000000000000000000000F0FF182D4454FB21E93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21E9BFC5D71958943686C0182D4454FB21E9BFC5D71958943686C000000000000006807EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000006007EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93FC5D71958943686C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF192D4454FB21E9BFC5D71958943686C0182D4454FB21E9BFC5D71958943686C000000000000006807EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C000000000000006007EF8B98FCE3386C0182D4454FB21E93FC5D71958943686C0192D4454FB21E93FC5D71958943686C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C05E2A0260725FE7BF13B635A51C32F7BF06D768982E10EF9FD8630B09C01DF3BF0000000000000000D8630B09C01DF3BF0000000000000000D8630B09C01DF3BF0000000000000000D8630B09C01DF3BF06D768982E10EF1FD8630B09C01DF3BF5E2A0260725FE73F13B635A51C32F7BF182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF0A16C5AE2CCCEEBF000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9F182D4454FB21F93F0A16C5AE2CCCEEBF182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF0A16C5AE2CCCEEBF000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080182D4454FB21F93F0A16C5AE2CCCEEBF182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F000000000000F0FF182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF0A16C5AE2CCCEE3F000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF0A16C5AE2CCCEE3F000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF0A16C5AE2CCCEE3F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1F182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE3386405E2A0260725FE7BF13B635A51C32F73F06D768982E10EF9FD8630B09C01DF33F0000000000000000D8630B09C01DF33F0000000000000000D8630B09C01DF33F0000000000000000D8630B09C01DF33F06D768982E10EF1FD8630B09C01DF33F5E2A0260725FE73F13B635A51C32F73F182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F192D4454FB21E9BFC5D7195894368640182D4454FB21E9BFC5D719589436864000000000000006807EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000006007EF8B98FCE338640182D4454FB21E93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21F93F000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BFC5D7195894368640182D4454FB21E9BFC5D719589436864000000000000006807EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000000007EF8B98FCE33864000000000000006007EF8B98FCE338640182D4454FB21E93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21F93F000000000000F07F182D4454FB21E9BF000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F0000000000000000000000000000F07F182D4454FB21E93F000000000000F07F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/asin_complex64.mlir b/stablehlo/tests/math/asin_complex64.mlir index dd59d85a0a7..28cfe96c277 100644 --- a/stablehlo/tests/math/asin_complex64.mlir +++ b/stablehlo/tests/math/asin_complex64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asin_complex64 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FFF30435BA000080FFF0379897000080FF01000080000080FF00000000000080FF01000000000080FFF0379817000080FFF304353A000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFFF30435BAFFFF7FFFF0379897FFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFFF0379817FFFF7FFFF304353AFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFFF30435BAFEFF7FFFF0379897FEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFFF0379817FEFF7FFFF304353AFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FFF30435BAFFFF7FFFF30435BAFEFF7FFFF30435BAF30435BAF30435BAF0379897F30435BA01000080F30435BA00000000F30435BA01000000F30435BAF0379817F30435BAF304353AF30435BAFEFF7F7FF30435BAFFFF7F7FF30435BA0000807FF30435BA000080FFF0379897FFFF7FFFF0379897FEFF7FFFF0379897F30435BAF0379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F304353AF0379897FEFF7F7FF0379897FFFF7F7FF03798970000807FF0379897000080FF01000080FFFF7FFF01000080FEFF7FFF01000080F30435BA01000080F037989701000080010000800100008000000000010000800100000001000080F037981701000080F304353A01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF00000000F30435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F304353A00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF01000000F30435BA01000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F304353A01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FFF0379817FFFF7FFFF0379817FEFF7FFFF0379817F30435BAF0379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F304353AF0379817FEFF7F7FF0379817FFFF7F7FF03798170000807FF0379817000080FFF304353AFFFF7FFFF304353AFEFF7FFFF304353AF30435BAF304353AF0379897F304353A01000080F304353A00000000F304353A01000000F304353AF0379817F304353AF304353AF304353AFEFF7F7FF304353AFFFF7F7FF304353A0000807FF304353A000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7FF30435BAFEFF7F7FF0379897FEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7FF0379817FEFF7F7FF304353AFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7FF30435BAFFFF7F7FF0379897FFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7FF0379817FFFF7F7FF304353AFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807FF30435BA0000807FF03798970000807F010000800000807F000000000000807F010000000000807FF03798170000807FF304353A0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FF0000C0BF000080FF0000E09F000080FF01000080000080FF00000000000080FF01000000000080FF0000E01F000080FF0000C03F000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFF0000C0BFFFFF7FFF0000E09FFFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFF0000E01FFFFF7FFF0000C03FFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFF0000C0BFFEFF7FFF0000E09FFEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFF0000E01FFEFF7FFF0000C03FFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FF0000C0BFFFFF7FFF0000C0BFFEFF7FFF0000C0BF0000C0BF0000C0BF0000E09F0000C0BF010000800000C0BF000000000000C0BF010000000000C0BF0000E01F0000C0BF0000C03F0000C0BFFEFF7F7F0000C0BFFFFF7F7F0000C0BF0000807F0000C0BF000080FF0000E09FFFFF7FFF0000E09FFEFF7FFF0000E09F0000C0BF0000E09F0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09F0000C03F0000E09FFEFF7F7F0000E09FFFFF7F7F0000E09F0000807F0000E09F000080FF01000080FFFF7FFF01000080FEFF7FFF010000800000C0BF010000800000E09F010000800100008001000080000000000100008001000000010000800000E01F010000800000C03F01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF000000000000C0BF000000000000E09F000000000100008000000000000000000000000001000000000000000000E01F000000000000C03F00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF010000000000C0BF010000000000E09F010000000100008001000000000000000100000001000000010000000000E01F010000000000C03F01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FF0000E01FFFFF7FFF0000E01FFEFF7FFF0000E01F0000C0BF0000E01F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01F0000C03F0000E01FFEFF7F7F0000E01FFFFF7F7F0000E01F0000807F0000E01F000080FF0000C03FFFFF7FFF0000C03FFEFF7FFF0000C03F0000C0BF0000C03F0000E09F0000C03F010000800000C03F000000000000C03F010000000000C03F0000E01F0000C03F0000C03F0000C03FFEFF7F7F0000C03FFFFF7F7F0000C03F0000807F0000C03F000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7F0000C0BFFEFF7F7F0000E09FFEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7F0000E01FFEFF7F7F0000C03FFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7F0000C0BFFFFF7F7F0000E09FFFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7F0000E01FFFFF7F7F0000C03FFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807F0000C0BF0000807F0000E09F0000807F010000800000807F000000000000807F010000000000807F0000E01F0000807F0000C03F0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0xDB0F49BF000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FFDB0F493F000080FFDB0FC9BF000080FFDB0F49BF6E86B3C2DA0F49BF6E86B3C2A8050080FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C2A8050000FCD4B2C2DA0F493F6E86B3C2DB0F493F6E86B3C2DB0FC93F000080FFDB0FC9BF000080FFDB0F49BF6E86B3C2DB0F49BF6E86B3C2A8050080FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C2A8050000FCD4B2C2DB0F493F6E86B3C2DB0F493F6E86B3C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2F10435BAF50435BAEE379897F20435BA00000000F20435BA00000000F20435BA00000000F20435BAEE379817F20435BAF104353AF50435BADB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2F40435BAF2379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F404353AF2379897DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2F40435BA01000080F037989701000080010000800100008000000000010000800100000001000080F037981701000080F404353A01000080DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242F40435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F404353A00000000DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242F40435BA01000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F404353A01000000DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242F40435BAF2379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F404353AF2379817DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242F10435BAF504353AEE379897F204353A00000000F204353A00000000F204353A00000000F204353AEE379817F204353AF104353AF504353ADB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0F49BF6E86B342DB0F49BF6E86B342A8050080FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B242A8050000FCD4B242DB0F493F6E86B342DB0F493F6E86B342DB0FC93F0000807FDB0FC9BF0000807FDB0F49BF6E86B342DA0F49BF6E86B342A8050080FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B242A8050000FCD4B242DA0F493F6E86B342DB0F493F6E86B342DB0FC93F0000807FDB0F49BF0000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807FDB0F493F0000807F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0xDB0F49BF000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FF00000000000080FFDB0F493F000080FFDB0FC9BF000080FFDB0F49BF6E86B3C2DA0F49BF6E86B3C200003080FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200003000FCD4B2C2DA0F493F6E86B3C2DB0F493F6E86B3C2DB0FC93F000080FFDB0FC9BF000080FFDB0F49BF6E86B3C2DB0F49BF6E86B3C200003080FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200000000FCD4B2C200003000FCD4B2C2DB0F493F6E86B3C2DB0F493F6E86B3C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C293FB3ABFE590B9BF7581789F00EE98BF0000000000EE98BF0000000000EE98BF0000000000EE98BF7581781F00EE98BF93FB3A3FE590B9BFDB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BF656176BF0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09FDB0FC93F656176BFDB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF000080FFDB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BF656176BF0000E09F010000800100008001000080000000000100008001000000010000800000E01F01000080DB0FC93F656176BFDB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93F000080FFDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6561763F0000E09F000000000100008000000000000000000000000001000000000000000000E01F00000000DB0FC93F6561763FDB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6561763F0000E09F010000000100008001000000000000000100000001000000010000000000E01F01000000DB0FC93F6561763FDB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6561763F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01FDB0FC93F6561763FDB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0FC9BFFCD4B242DB0FC9BFFCD4B24293FB3ABFE590B93F7581789F00EE983F0000000000EE983F0000000000EE983F0000000000EE983F7581781F00EE983F93FB3A3FE590B93FDB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F0000807FDB0FC9BF0000807FDB0F49BF6E86B342DB0F49BF6E86B34200003080FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200003000FCD4B242DB0F493F6E86B342DB0F493F6E86B342DB0FC93F0000807FDB0FC9BF0000807FDB0F49BF6E86B342DA0F49BF6E86B34200003080FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200000000FCD4B24200003000FCD4B242DA0F493F6E86B342DB0F493F6E86B342DB0FC93F0000807FDB0F49BF0000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807F000000000000807FDB0F493F0000807F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/asin_float32.mlir b/stablehlo/tests/math/asin_float32.mlir index 48ca32493ad..ddf32c381ea 100644 --- a/stablehlo/tests/math/asin_float32.mlir +++ b/stablehlo/tests/math/asin_float32.mlir @@ -1,19 +1,19 @@ // RUN: stablehlo-opt --chlo-legalize-to-stablehlo %s | stablehlo-translate --interpret // This file is generated, see build_tools/math/README.md for more information. module @asin_float32 { - func.func private @samples() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF979317FCFC4469FAE17EB3F82C1E0AF7A58E54F5D98EA3F35CB5FBF11BAF41F0160995EEE45BE5EC907C30EB6ECD87E971FED0E7EED020E6237D77E4E66FBEE27E8912E1958361DF2987ADDDA08605DC887D4DDAC71E9ED80657F3D6A03E3BD59E1490D3C7BBDDD1749E2AD0974983CEA80BCACC31781BCBB7426FC90D1BB8C74AAA0DC631045AC43BC2A7C22A1601C190A846BFFCDC98BDE93FEBBBF30435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F304353AE93FEB3BFCDC983D90A8463F2A1601413BC2A74231045A444AAA0D460D1BB847B7426F4931781B4BA80BCA4C9749834E749E2A50C7BBDD519E149053A03E3B550657F356C71E9E58887D4D5AA086055C2987AD5D9583615F7E891261E66FBE62237D7764EED0206671FED0676ECD8769907C306BE45BE56C1609956E1BAF41705CB5FB71D98EA373A58E54752C1E0A77E17EB378FC44697A9793177CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> - return %0 : tensor<169xf32> + func.func private @samples() -> tensor<175xf32> { + %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF05E763FC88DAD5FA0BCE47F98EC1B9F711B52BF695A89DF4189C0FF39B8F81F11E83F3EFA17665EE246AD7ECA75D49EB2B51BBE9AE442DE831389FE6B42B11E5371F83E3BA12F5E13D0667E0C1F9D8DE44ED4ADDC7E0BCDB4AD42EDACDC7A0D850BB12D7D3AE84D557A2F6D3DA9568D25D89DAD0E07C4CCF6370BECDE66330CC6957A2CAED4A14C9703E86C7F331F8C576256AC4F918DCC27C0C4EC10000C0BF83F331BE06E7A3BC89DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873989DA153B06E7A33C83F3313E0000C03F7C0C4E41F918DC4276256A44F331F845703E8647ED4A14496957A24AE663304C6370BE4DE07C4C4F5D89DA50DA95685257A2F653D3AE845550BB1257CDC7A0584AD42E5AC7E0BC5B44ED4A5DC1F9D85E3D066760BA12F561371F8363B42B116531389F66AE442D682B51BB69A75D496B246AD76CA176656E1E83F36F9B8F8171189C0F7395A89D7411B52B768EC1B9770BCE477988DAD57A05E7637CFEFF7F7FFFFF7F7F0000807F010080BF000080BFFFFF7FBFFFFF7F3F0000803F0100803F"> : tensor<175xf32> + return %0 : tensor<175xf32> } - func.func private @expected() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F8F6863BF690199BD6D40EBBBF40435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F404353A6D40EB3B6901993D8F68633F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F"> : tensor<169xf32> - return %0 : tensor<169xf32> + func.func private @expected() -> tensor<175xf32> { + %0 = stablehlo.constant dense<"0x0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07FFADB32BED3E9A3BC92DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873992DA153BD3E9A33CFADB323E0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07F0000C07FDB0FC9BF8A04C9BF8A04C93FDB0FC93F0000C07F"> : tensor<175xf32> + return %0 : tensor<175xf32> } func.func public @main() { - %0 = call @samples() : () -> tensor<169xf32> - %1 = "chlo.asin"(%0) : (tensor<169xf32>) -> tensor<169xf32> - %2 = call @expected() : () -> tensor<169xf32> - check.expect_close %1, %2, max_ulp_difference = 3 : tensor<169xf32>, tensor<169xf32> + %0 = call @samples() : () -> tensor<175xf32> + %1 = "chlo.asin"(%0) : (tensor<175xf32>) -> tensor<175xf32> + %2 = call @expected() : () -> tensor<175xf32> + check.expect_close %1, %2, max_ulp_difference = 3 : tensor<175xf32>, tensor<175xf32> func.return } } diff --git a/stablehlo/tests/math/asin_float64.mlir b/stablehlo/tests/math/asin_float64.mlir index 1db0f48a5ee..50fe0dba6fd 100644 --- a/stablehlo/tests/math/asin_float64.mlir +++ b/stablehlo/tests/math/asin_float64.mlir @@ -1,19 +1,19 @@ // RUN: stablehlo-opt --chlo-legalize-to-stablehlo %s | stablehlo-translate --interpret // This file is generated, see build_tools/math/README.md for more information. module @asin_float64 { - func.func private @samples() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF8947AC0AB56DBCFCC1AE24D172F222FB376F06F0744189F94EAFC37F19D5F0F7D10D012BDC6F56F63DBB37D356E8BDF4AD77C49BCCEE23F394EEB494D4918AF10ABF993649B5F1EFC1DBEF0FB19A57EEB033ED80AB76BFEC0317E96347F824EB5F3BB74AB4F38BE9AC8BEACD22A1F2E76F3F450312D558E69C215EB8DC8CC0E473E0AD05920F26E3F5DFD726FD678DE1070CC99D4199F3DF41E24716CE1F5ADEE2EBF5524A69C1DC960A1776643527DB7095395EA4EF8ED9F4454413499EF4D7B2771E20BF7B5BD64827F3BF2F51C2D47EC03B3C806A28D3C1A5ECF3D54590D1FE7F0B1CE5B0F5CFD6124B4DCAE95CCE5A89BDBC2545C3CC6BF1BDF0B0AF29CBED883B93911E91C90939AC97CAD1F6C7E8769DB6E06A5EC6DFA409F9CC45C4C454FDE3C3CC052BC3490EABCD930292C1AC39B4CEB701F8BF00000000000060BEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53C000000000000603EAC39B4CEB701F83F490EABCD9302924154FDE3C3CC052B43DFA409F9CC45C444E8769DB6E06A5E460939AC97CAD1F647ED883B93911E91496BF1BDF0B0AF294B5A89BDBC2545C34CD6124B4DCAE95C4EFE7F0B1CE5B0F54FC1A5ECF3D54590517EC03B3C806A28534827F3BF2F51C254B2771E20BF7B5B56F4454413499EF4577095395EA4EF8E59960A17766435275BE2EBF5524A69C15C41E24716CE1F5A5E070CC99D4199F35FF5DFD726FD678D6173E0AD05920F26639C215EB8DC8CC0646F3F450312D55866AC8BEACD22A1F2675F3BB74AB4F38B690317E96347F8246BB033ED80AB76BF6CC1DBEF0FB19A576E0ABF993649B5F16F94EEB494D4918A71AD77C49BCCEE23733DBB37D356E8BD74D10D012BDC6F56764EAFC37F19D5F077376F06F074418979C1AE24D172F2227B8947AC0AB56DBC7CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> - return %0 : tensor<169xf64> + func.func private @samples() -> tensor<175xf64> { + %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF0054BB12B52BD1FC00FC189C8FC141FB00A476256A57B2F9004CD4AE44ED22F800F431381F8393F6009C8FC1F91804F50048ED4AD4AE74F300F04AD4AE44E5F10098A85D89DA55F0004006E76370C6EE00E863703E0637ED0090C1F9189CA7EB00381F83F33118EA00E47C0CCEC788E8008CDA95A85DF9E60034381F83F369E500DC95A85D89DAE30084F331381F4BE2002C51BB12B5BBE000D4AE44ED4A2CDF00800CCEC7E09CDD00286A57A2760DDC00D0C7E07C0C7EDA0078256A57A2EED8002083F331385FD700C8E07C0CCECFD500703E06E76340D4001C9C8FC1F9B0D200C4F9189C8F21D1006C57A2762592CF0014B52B51BB02CE00BC12B52B5173CC0064703E06E7E3CA000CCEC7E07C54C900B82B51BB12C5C7006089DA95A835C60008E763703EA6C400B044ED4AD416C30058A276256A87C1000000000000F8BF00AA5D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93C00AA5D89DA95683E000000000000F83F0058A276256A874100B044ED4AD416430008E763703EA644006089DA95A8354600B82B51BB12C547000CCEC7E07C54490064703E06E7E34A00BC12B52B51734C0014B52B51BB024E006C57A27625924F00C4F9189C8F2151001C9C8FC1F9B05200703E06E763405400C8E07C0CCECF55002083F331385F570078256A57A2EE5800D0C7E07C0C7E5A00286A57A2760D5C00800CCEC7E09C5D00D4AE44ED4A2C5F002C51BB12B5BB600084F331381F4B6200DC95A85D89DA630034381F83F36965008CDA95A85DF96600E47C0CCEC7886800381F83F331186A0090C1F9189CA76B00E863703E06376D004006E76370C66E0098A85D89DA557000F04AD4AE44E5710048ED4AD4AE7473009C8FC1F918047500F431381F839376004CD4AE44ED227800A476256A57B27900FC189C8FC1417B0054BB12B52BD17CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F010000000000F0BF000000000000F0BFFFFFFFFFFFFFEFBFFFFFFFFFFFFFEF3F000000000000F03F010000000000F03F"> : tensor<175xf64> + return %0 : tensor<175xf64> } - func.func private @expected() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F01000000000060BEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53C010000000000603E000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F"> : tensor<169xf64> - return %0 : tensor<169xf64> + func.func private @expected() -> tensor<175xf64> { + %0 = stablehlo.constant dense<"0x000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F02AA5D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93C02AA5D89DA95683E000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F000000000000F87F182D4454FB21F9BF182D4450FB21F9BF182D4450FB21F93F182D4454FB21F93F000000000000F87F"> : tensor<175xf64> + return %0 : tensor<175xf64> } func.func public @main() { - %0 = call @samples() : () -> tensor<169xf64> - %1 = "chlo.asin"(%0) : (tensor<169xf64>) -> tensor<169xf64> - %2 = call @expected() : () -> tensor<169xf64> - check.expect_close %1, %2, max_ulp_difference = 3 : tensor<169xf64>, tensor<169xf64> + %0 = call @samples() : () -> tensor<175xf64> + %1 = "chlo.asin"(%0) : (tensor<175xf64>) -> tensor<175xf64> + %2 = call @expected() : () -> tensor<175xf64> + check.expect_close %1, %2, max_ulp_difference = 3 : tensor<175xf64>, tensor<175xf64> func.return } } diff --git a/stablehlo/tests/math/asinh_complex128.mlir b/stablehlo/tests/math/asinh_complex128.mlir index e80dc6f6ce5..69469187649 100644 --- a/stablehlo/tests/math/asinh_complex128.mlir +++ b/stablehlo/tests/math/asinh_complex128.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asinh_complex128 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BE000000000000F0FFCD3B7F669EA0969D000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FFCD3B7F669EA0961D000000000000F0FF000000000000603E000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF00000000000060BEFFFFFFFFFFFFEFFFCD3B7F669EA0969DFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFFCD3B7F669EA0961DFFFFFFFFFFFFEFFF000000000000603EFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF00000000000060BEFFFFFFFFFFFFEFFF00000000000060BEFEFFFFFFFFFFEFFF00000000000060BE00000000000060BE00000000000060BECD3B7F669EA0969D00000000000060BE010000000000008000000000000060BE000000000000000000000000000060BE010000000000000000000000000060BECD3B7F669EA0961D00000000000060BE000000000000603E00000000000060BEFEFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7F00000000000060BE000000000000F07F00000000000060BE000000000000F0FFCD3B7F669EA0969DFFFFFFFFFFFFEFFFCD3B7F669EA0969DFEFFFFFFFFFFEFFFCD3B7F669EA0969D00000000000060BECD3B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969D000000000000603ECD3B7F669EA0969DFEFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7FCD3B7F669EA0969D000000000000F07FCD3B7F669EA0969D000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF010000000000008000000000000060BE0100000000000080CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080000000000000603E0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF000000000000000000000000000060BE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000000000000000603E0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF010000000000000000000000000060BE0100000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000000000000000603E0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FFCD3B7F669EA0961DFFFFFFFFFFFFEFFFCD3B7F669EA0961DFEFFFFFFFFFFEFFFCD3B7F669EA0961D00000000000060BECD3B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961D000000000000603ECD3B7F669EA0961DFEFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7FCD3B7F669EA0961D000000000000F07FCD3B7F669EA0961D000000000000F0FF000000000000603EFFFFFFFFFFFFEFFF000000000000603EFEFFFFFFFFFFEFFF000000000000603E00000000000060BE000000000000603ECD3B7F669EA0969D000000000000603E0100000000000080000000000000603E0000000000000000000000000000603E0100000000000000000000000000603ECD3B7F669EA0961D000000000000603E000000000000603E000000000000603EFEFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7F000000000000603E000000000000F07F000000000000603E000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F00000000000060BEFEFFFFFFFFFFEF7FCD3B7F669EA0969DFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7FCD3B7F669EA0961DFEFFFFFFFFFFEF7F000000000000603EFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F00000000000060BEFFFFFFFFFFFFEF7FCD3B7F669EA0969DFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7FCD3B7F669EA0961DFFFFFFFFFFFFEF7F000000000000603EFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F00000000000060BE000000000000F07FCD3B7F669EA0969D000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07FCD3B7F669EA0961D000000000000F07F000000000000603E000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BF000000000000F0FF000000000000FC9F000000000000F0FF0100000000000080000000000000F0FF0000000000000000000000000000F0FF0100000000000000000000000000F0FF000000000000FC1F000000000000F0FF000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07F000000000000F0FF000000000000F0FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFF000000000000F8BFFFFFFFFFFFFFEFFF000000000000FC9FFFFFFFFFFFFFEFFF0100000000000080FFFFFFFFFFFFEFFF0000000000000000FFFFFFFFFFFFEFFF0100000000000000FFFFFFFFFFFFEFFF000000000000FC1FFFFFFFFFFFFFEFFF000000000000F83FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFF000000000000F07FFFFFFFFFFFFFEFFF000000000000F0FFFEFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F0FF000000000000F8BFFFFFFFFFFFFFEFFF000000000000F8BFFEFFFFFFFFFFEFFF000000000000F8BF000000000000F8BF000000000000F8BF000000000000FC9F000000000000F8BF0100000000000080000000000000F8BF0000000000000000000000000000F8BF0100000000000000000000000000F8BF000000000000FC1F000000000000F8BF000000000000F83F000000000000F8BFFEFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000F8BF000000000000F07F000000000000F8BF000000000000F0FF000000000000FC9FFFFFFFFFFFFFEFFF000000000000FC9FFEFFFFFFFFFFEFFF000000000000FC9F000000000000F8BF000000000000FC9F000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9F000000000000F83F000000000000FC9FFEFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F000000000000FC9F000000000000F07F000000000000FC9F000000000000F0FF0100000000000080FFFFFFFFFFFFEFFF0100000000000080FEFFFFFFFFFFEFFF0100000000000080000000000000F8BF0100000000000080000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080000000000000F83F0100000000000080FEFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0100000000000080000000000000F07F0100000000000080000000000000F0FF0000000000000000FFFFFFFFFFFFEFFF0000000000000000FEFFFFFFFFFFEFFF0000000000000000000000000000F8BF0000000000000000000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000000000000000F83F0000000000000000FEFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0000000000000000000000000000F07F0000000000000000000000000000F0FF0100000000000000FFFFFFFFFFFFEFFF0100000000000000FEFFFFFFFFFFEFFF0100000000000000000000000000F8BF0100000000000000000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000000000000000F83F0100000000000000FEFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F0100000000000000000000000000F07F0100000000000000000000000000F0FF000000000000FC1FFFFFFFFFFFFFEFFF000000000000FC1FFEFFFFFFFFFFEFFF000000000000FC1F000000000000F8BF000000000000FC1F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1F000000000000F83F000000000000FC1FFEFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000FC1F000000000000F07F000000000000FC1F000000000000F0FF000000000000F83FFFFFFFFFFFFFEFFF000000000000F83FFEFFFFFFFFFFEFFF000000000000F83F000000000000F8BF000000000000F83F000000000000FC9F000000000000F83F0100000000000080000000000000F83F0000000000000000000000000000F83F0100000000000000000000000000F83F000000000000FC1F000000000000F83F000000000000F83F000000000000F83FFEFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7F000000000000F83F000000000000F07F000000000000F83F000000000000F0FFFEFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFEFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFEFFFFFFFFFFEF7F000000000000F8BFFEFFFFFFFFFFEF7F000000000000FC9FFEFFFFFFFFFFEF7F0100000000000080FEFFFFFFFFFFEF7F0000000000000000FEFFFFFFFFFFEF7F0100000000000000FEFFFFFFFFFFEF7F000000000000FC1FFEFFFFFFFFFFEF7F000000000000F83FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7F000000000000F07FFEFFFFFFFFFFEF7F000000000000F0FFFFFFFFFFFFFFEF7FFFFFFFFFFFFFEFFFFFFFFFFFFFFFEF7FFEFFFFFFFFFFEFFFFFFFFFFFFFFFEF7F000000000000F8BFFFFFFFFFFFFFEF7F000000000000FC9FFFFFFFFFFFFFEF7F0100000000000080FFFFFFFFFFFFEF7F0000000000000000FFFFFFFFFFFFEF7F0100000000000000FFFFFFFFFFFFEF7F000000000000FC1FFFFFFFFFFFFFEF7F000000000000F83FFFFFFFFFFFFFEF7FFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F0FF000000000000F07FFFFFFFFFFFFFEFFF000000000000F07FFEFFFFFFFFFFEFFF000000000000F07F000000000000F8BF000000000000F07F000000000000FC9F000000000000F07F0100000000000080000000000000F07F0000000000000000000000000000F07F0100000000000000000000000000F07F000000000000FC1F000000000000F07F000000000000F83F000000000000F07FFEFFFFFFFFFFEF7F000000000000F07FFFFFFFFFFFFFEF7F000000000000F07F000000000000F07F000000000000F07F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000000000000F0FF182D4454FB21E9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BF000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E9BFC5D71958943686C0192D4454FB21E9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640192D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E9BFC5D71958943686C0182D4454FB21E9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640182D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000002000000807EF8B98FCE3386C0000000020000008001000000000060BEFDFFFFFFFFFF5FBED03B7F669EA0969D01000000000060BE010000000000008001000000000060BE000000000000000001000000000060BE010000000000000001000000000060BED03B7F669EA0961D01000000000060BE010000000000603EFDFFFFFFFFFF5FBE7EF8B98FCE33864000000002000000807EF8B98FCE3386400000000200000080000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000FFFFFFFFFFFF5FBECA3B7F669EA0969DCD3B7F669EA0969DCD3B7F669EA0969D0100000000000080CD3B7F669EA0969D0000000000000000CD3B7F669EA0969D0100000000000000CD3B7F669EA0969DCD3B7F669EA0961DCD3B7F669EA0969DFFFFFFFFFFFF5F3ECA3B7F669EA0969D7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000FFFFFFFFFFFF5FBE0000000000000000CD3B7F669EA0969D0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080CD3B7F669EA0961D0100000000000080FFFFFFFFFFFF5F3E00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000FFFFFFFFFFFF5FBE0000000000000000CD3B7F669EA0969D0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000CD3B7F669EA0961D0000000000000000FFFFFFFFFFFF5F3E00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000FFFFFFFFFFFF5FBE0000000000000000CD3B7F669EA0969D0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000CD3B7F669EA0961D0100000000000000FFFFFFFFFFFF5F3E00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000FFFFFFFFFFFF5FBECA3B7F669EA0961DCD3B7F669EA0969DCD3B7F669EA0961D0100000000000080CD3B7F669EA0961D0000000000000000CD3B7F669EA0961D0100000000000000CD3B7F669EA0961DCD3B7F669EA0961DCD3B7F669EA0961DFFFFFFFFFFFF5F3ECA3B7F669EA0961D7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000002000000007EF8B98FCE3386C0000000020000000001000000000060BEFDFFFFFFFFFF5F3ED03B7F669EA0969D010000000000603E0100000000000080010000000000603E0000000000000000010000000000603E0100000000000000010000000000603ED03B7F669EA0961D010000000000603E010000000000603EFDFFFFFFFFFF5F3E7EF8B98FCE33864000000002000000007EF8B98FCE3386400000000200000000000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E93FC5D71958943686C0192D4454FB21E93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F0FF182D4454FB21E93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000000000000F0FF182D4454FB21E9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F0FF182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21F9BF000000000000F07F182D4454FB21E9BF000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E9BFC5D71958943686C0192D4454FB21E9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640192D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E9BFC5D71958943686C0182D4454FB21E9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE3386C0182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BF7EF8B98FCE338640182D4454FB21F9BFC5D7195894368640182D4454FB21E9BFC5D7195894368640182D4454FB21E9BF000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000006807EF8B98FCE3386C0000000000000068013B635A51C32F7BF5E2A0260725FE7BF0A16C5AE2CCCEEBF182D4454FB21F9BF0A16C5AE2CCCEEBF182D4454FB21F9BF0A16C5AE2CCCEE3F182D4454FB21F9BF0A16C5AE2CCCEE3F182D4454FB21F9BF0A16C5AE2CCCEE3F182D4454FB21F9BF13B635A51C32F73F5E2A0260725FE7BF7EF8B98FCE33864000000000000006807EF8B98FCE3386400000000000000680000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000D8630B09C01DF3BF06D768982E10EF9F000000000000FC9F000000000000FC9F0100000000000080000000000000FC9F0000000000000000000000000000FC9F0100000000000000000000000000FC9F000000000000FC1F000000000000FC9FD8630B09C01DF33F06D768982E10EF9F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000D8630B09C01DF3BF0000000000000000000000000000FC9F0100000000000080010000000000008001000000000000800000000000000000010000000000008001000000000000000100000000000080000000000000FC1F0100000000000080D8630B09C01DF33F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000D8630B09C01DF3BF0000000000000000000000000000FC9F0000000000000000010000000000008000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000FC1F0000000000000000D8630B09C01DF33F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000D8630B09C01DF3BF0000000000000000000000000000FC9F0100000000000000010000000000008001000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000FC1F0100000000000000D8630B09C01DF33F00000000000000007EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000000007EF8B98FCE3386C00000000000000000D8630B09C01DF3BF06D768982E10EF1F000000000000FC9F000000000000FC1F0100000000000080000000000000FC1F0000000000000000000000000000FC1F0100000000000000000000000000FC1F000000000000FC1F000000000000FC1FD8630B09C01DF33F06D768982E10EF1F7EF8B98FCE33864000000000000000007EF8B98FCE3386400000000000000000000000000000F07F0000000000000000000000000000F0FF00000000000000007EF8B98FCE3386C000000000000006007EF8B98FCE3386C0000000000000060013B635A51C32F7BF5E2A0260725FE73F0A16C5AE2CCCEEBF182D4454FB21F93F0A16C5AE2CCCEEBF182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F0A16C5AE2CCCEE3F182D4454FB21F93F13B635A51C32F73F5E2A0260725FE73F7EF8B98FCE33864000000000000006007EF8B98FCE3386400000000000000600000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E93FC5D71958943686C0182D4454FB21E93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640182D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F0FF0000000000000000C5D71958943686C0182D4454FB21E93FC5D71958943686C0192D4454FB21E93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE3386C0182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93F7EF8B98FCE338640182D4454FB21F93FC5D7195894368640192D4454FB21E93FC5D7195894368640182D4454FB21E93F000000000000F07F0000000000000000000000000000F0FF182D4454FB21E93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F0FF182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21F93F000000000000F07F182D4454FB21E93F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/asinh_complex64.mlir b/stablehlo/tests/math/asinh_complex64.mlir index ab99b6a87cf..1808df0d8d2 100644 --- a/stablehlo/tests/math/asinh_complex64.mlir +++ b/stablehlo/tests/math/asinh_complex64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asinh_complex64 { func.func private @samples() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FFF30435BA000080FFF0379897000080FF01000080000080FF00000000000080FF01000000000080FFF0379817000080FFF304353A000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFFF30435BAFFFF7FFFF0379897FFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFFF0379817FFFF7FFFF304353AFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFFF30435BAFEFF7FFFF0379897FEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFFF0379817FEFF7FFFF304353AFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FFF30435BAFFFF7FFFF30435BAFEFF7FFFF30435BAF30435BAF30435BAF0379897F30435BA01000080F30435BA00000000F30435BA01000000F30435BAF0379817F30435BAF304353AF30435BAFEFF7F7FF30435BAFFFF7F7FF30435BA0000807FF30435BA000080FFF0379897FFFF7FFFF0379897FEFF7FFFF0379897F30435BAF0379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F304353AF0379897FEFF7F7FF0379897FFFF7F7FF03798970000807FF0379897000080FF01000080FFFF7FFF01000080FEFF7FFF01000080F30435BA01000080F037989701000080010000800100008000000000010000800100000001000080F037981701000080F304353A01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF00000000F30435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F304353A00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF01000000F30435BA01000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F304353A01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FFF0379817FFFF7FFFF0379817FEFF7FFFF0379817F30435BAF0379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F304353AF0379817FEFF7F7FF0379817FFFF7F7FF03798170000807FF0379817000080FFF304353AFFFF7FFFF304353AFEFF7FFFF304353AF30435BAF304353AF0379897F304353A01000080F304353A00000000F304353A01000000F304353AF0379817F304353AF304353AF304353AFEFF7F7FF304353AFFFF7F7FF304353A0000807FF304353A000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7FF30435BAFEFF7F7FF0379897FEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7FF0379817FEFF7F7FF304353AFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7FF30435BAFFFF7F7FF0379897FFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7FF0379817FFFF7F7FF304353AFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807FF30435BA0000807FF03798970000807F010000800000807F000000000000807F010000000000807FF03798170000807FF304353A0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000080FF000080FFFFFF7FFF000080FFFEFF7FFF000080FF0000C0BF000080FF0000E09F000080FF01000080000080FF00000000000080FF01000000000080FF0000E01F000080FF0000C03F000080FFFEFF7F7F000080FFFFFF7F7F000080FF0000807F000080FF000080FFFFFF7FFFFFFF7FFFFFFF7FFFFEFF7FFFFFFF7FFF0000C0BFFFFF7FFF0000E09FFFFF7FFF01000080FFFF7FFF00000000FFFF7FFF01000000FFFF7FFF0000E01FFFFF7FFF0000C03FFFFF7FFFFEFF7F7FFFFF7FFFFFFF7F7FFFFF7FFF0000807FFFFF7FFF000080FFFEFF7FFFFFFF7FFFFEFF7FFFFEFF7FFFFEFF7FFF0000C0BFFEFF7FFF0000E09FFEFF7FFF01000080FEFF7FFF00000000FEFF7FFF01000000FEFF7FFF0000E01FFEFF7FFF0000C03FFEFF7FFFFEFF7F7FFEFF7FFFFFFF7F7FFEFF7FFF0000807FFEFF7FFF000080FF0000C0BFFFFF7FFF0000C0BFFEFF7FFF0000C0BF0000C0BF0000C0BF0000E09F0000C0BF010000800000C0BF000000000000C0BF010000000000C0BF0000E01F0000C0BF0000C03F0000C0BFFEFF7F7F0000C0BFFFFF7F7F0000C0BF0000807F0000C0BF000080FF0000E09FFFFF7FFF0000E09FFEFF7FFF0000E09F0000C0BF0000E09F0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09F0000C03F0000E09FFEFF7F7F0000E09FFFFF7F7F0000E09F0000807F0000E09F000080FF01000080FFFF7FFF01000080FEFF7FFF010000800000C0BF010000800000E09F010000800100008001000080000000000100008001000000010000800000E01F010000800000C03F01000080FEFF7F7F01000080FFFF7F7F010000800000807F01000080000080FF00000000FFFF7FFF00000000FEFF7FFF000000000000C0BF000000000000E09F000000000100008000000000000000000000000001000000000000000000E01F000000000000C03F00000000FEFF7F7F00000000FFFF7F7F000000000000807F00000000000080FF01000000FFFF7FFF01000000FEFF7FFF010000000000C0BF010000000000E09F010000000100008001000000000000000100000001000000010000000000E01F010000000000C03F01000000FEFF7F7F01000000FFFF7F7F010000000000807F01000000000080FF0000E01FFFFF7FFF0000E01FFEFF7FFF0000E01F0000C0BF0000E01F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01F0000C03F0000E01FFEFF7F7F0000E01FFFFF7F7F0000E01F0000807F0000E01F000080FF0000C03FFFFF7FFF0000C03FFEFF7FFF0000C03F0000C0BF0000C03F0000E09F0000C03F010000800000C03F000000000000C03F010000000000C03F0000E01F0000C03F0000C03F0000C03FFEFF7F7F0000C03FFFFF7F7F0000C03F0000807F0000C03F000080FFFEFF7F7FFFFF7FFFFEFF7F7FFEFF7FFFFEFF7F7F0000C0BFFEFF7F7F0000E09FFEFF7F7F01000080FEFF7F7F00000000FEFF7F7F01000000FEFF7F7F0000E01FFEFF7F7F0000C03FFEFF7F7FFEFF7F7FFEFF7F7FFFFF7F7FFEFF7F7F0000807FFEFF7F7F000080FFFFFF7F7FFFFF7FFFFFFF7F7FFEFF7FFFFFFF7F7F0000C0BFFFFF7F7F0000E09FFFFF7F7F01000080FFFF7F7F00000000FFFF7F7F01000000FFFF7F7F0000E01FFFFF7F7F0000C03FFFFF7F7FFEFF7F7FFFFF7F7FFFFF7F7FFFFF7F7F0000807FFFFF7F7F000080FF0000807FFFFF7FFF0000807FFEFF7FFF0000807F0000C0BF0000807F0000E09F0000807F010000800000807F000000000000807F010000000000807F0000E01F0000807F0000C03F0000807FFEFF7F7F0000807FFFFF7F7F0000807F0000807F0000807F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func private @expected() -> tensor<169xcomplex> { - %0 = stablehlo.constant dense<"0x000080FFDB0F49BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0F49BF000080FF000000006E86B3C2DB0F49BF6E86B3C2DB0F49BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DB0F49BF0000807F00000000000080FF000000006E86B3C2DA0F49BF6E86B3C2DB0F49BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DA0F49BF0000807F00000000000080FF00000000FCD4B2C2A8050080FCD4B2C2A8050080F50435BAF10435BAF2379897F40435BA01000080F40435BA00000000F40435BA01000000F40435BAF2379817F40435BAF504353AF10435BAFCD4B242A8050080FCD4B242A80500800000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C200000000F20435BAEE379897F0379897F037989701000080F037989700000000F037989701000000F0379897F0379817F0379897F204353AEE379897FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C200000000F20435BA00000000F037989701000080010000800100008000000000010000800100000001000080F037981701000080F204353A00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C200000000F20435BA00000000F037989700000000010000800000000000000000000000000100000000000000F037981700000000F204353A00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C200000000F20435BA00000000F037989701000000010000800100000000000000010000000100000001000000F037981701000000F204353A00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C200000000F20435BAEE379817F0379897F037981701000080F037981700000000F037981701000000F0379817F0379817F0379817F204353AEE379817FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C2A8050000FCD4B2C2A8050000F50435BAF104353AF2379897F404353A01000080F404353A00000000F404353A01000000F404353AF2379817F404353AF504353AF104353AFCD4B242A8050000FCD4B242A80500000000807F00000000000080FF000000006E86B3C2DA0F493F6E86B3C2DB0F493FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DA0F493F0000807F00000000000080FF000000006E86B3C2DB0F493F6E86B3C2DB0F493FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DB0F493F0000807F00000000000080FFDB0F493F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F"> : tensor<169xcomplex> + %0 = stablehlo.constant dense<"0x000080FFDB0F49BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF000080FFDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0FC9BF0000807FDB0F49BF000080FF000000006E86B3C2DB0F49BF6E86B3C2DB0F49BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DB0F49BF0000807F00000000000080FF000000006E86B3C2DA0F49BF6E86B3C2DB0F49BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B2C2DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BFFCD4B242DB0FC9BF6E86B342DB0F49BF6E86B342DA0F49BF0000807F00000000000080FF00000000FCD4B2C200003080FCD4B2C200003080E590B9BF93FB3ABF656176BFDB0FC9BF656176BFDB0FC9BF6561763FDB0FC9BF6561763FDB0FC9BF6561763FDB0FC9BFE590B93F93FB3ABFFCD4B24200003080FCD4B242000030800000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C20000000000EE98BF7581789F0000E09F0000E09F010000800000E09F000000000000E09F010000000000E09F0000E01F0000E09F00EE983F7581789FFCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C20000000000EE98BF000000000000E09F010000800100008001000080000000000100008001000000010000800000E01F0100008000EE983F00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C20000000000EE98BF000000000000E09F000000000100008000000000000000000000000001000000000000000000E01F0000000000EE983F00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C20000000000EE98BF000000000000E09F010000000100008001000000000000000100000001000000010000000000E01F0100000000EE983F00000000FCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200000000FCD4B2C20000000000EE98BF7581781F0000E09F0000E01F010000800000E01F000000000000E01F010000000000E01F0000E01F0000E01F00EE983F7581781FFCD4B24200000000FCD4B242000000000000807F00000000000080FF00000000FCD4B2C200003000FCD4B2C200003000E590B9BF93FB3A3F656176BFDB0FC93F656176BFDB0FC93F6561763FDB0FC93F6561763FDB0FC93F6561763FDB0FC93FE590B93F93FB3A3FFCD4B24200003000FCD4B242000030000000807F00000000000080FF000000006E86B3C2DA0F493F6E86B3C2DB0F493FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DA0F493F0000807F00000000000080FF000000006E86B3C2DB0F493F6E86B3C2DB0F493FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B2C2DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93FFCD4B242DB0FC93F6E86B342DB0F493F6E86B342DB0F493F0000807F00000000000080FFDB0F493F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F000080FFDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0FC93F0000807FDB0F493F"> : tensor<169xcomplex> return %0 : tensor<169xcomplex> } func.func public @main() { diff --git a/stablehlo/tests/math/asinh_float32.mlir b/stablehlo/tests/math/asinh_float32.mlir index 9556857281e..26aeeeba247 100644 --- a/stablehlo/tests/math/asinh_float32.mlir +++ b/stablehlo/tests/math/asinh_float32.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asinh_float32 { func.func private @samples() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF979317FCFC4469FAE17EB3F82C1E0AF7A58E54F5D98EA3F35CB5FBF11BAF41F0160995EEE45BE5EC907C30EB6ECD87E971FED0E7EED020E6237D77E4E66FBEE27E8912E1958361DF2987ADDDA08605DC887D4DDAC71E9ED80657F3D6A03E3BD59E1490D3C7BBDDD1749E2AD0974983CEA80BCACC31781BCBB7426FC90D1BB8C74AAA0DC631045AC43BC2A7C22A1601C190A846BFFCDC98BDE93FEBBBF30435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F304353AE93FEB3BFCDC983D90A8463F2A1601413BC2A74231045A444AAA0D460D1BB847B7426F4931781B4BA80BCA4C9749834E749E2A50C7BBDD519E149053A03E3B550657F356C71E9E58887D4D5AA086055C2987AD5D9583615F7E891261E66FBE62237D7764EED0206671FED0676ECD8769907C306BE45BE56C1609956E1BAF41705CB5FB71D98EA373A58E54752C1E0A77E17EB378FC44697A9793177CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> + %0 = stablehlo.constant dense<"0x000080FFFFFF7FFFFEFF7FFF05E763FC88DAD5FA0BCE47F98EC1B9F711B52BF695A89DF4189C0FF39B8F81F11E83F3EFA17665EE246AD7ECA75D49EB2B51BBE9AE442DE831389FE6B42B11E5371F83E3BA12F5E13D0667E0C1F9D8DE44ED4ADDC7E0BCDB4AD42EDACDC7A0D850BB12D7D3AE84D557A2F6D3DA9568D25D89DAD0E07C4CCF6370BECDE66330CC6957A2CAED4A14C9703E86C7F331F8C576256AC4F918DCC27C0C4EC10000C0BF83F331BE06E7A3BC89DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873989DA153B06E7A33C83F3313E0000C03F7C0C4E41F918DC4276256A44F331F845703E8647ED4A14496957A24AE663304C6370BE4DE07C4C4F5D89DA50DA95685257A2F653D3AE845550BB1257CDC7A0584AD42E5AC7E0BC5B44ED4A5DC1F9D85E3D066760BA12F561371F8363B42B116531389F66AE442D682B51BB69A75D496B246AD76CA176656E1E83F36F9B8F8171189C0F7395A89D7411B52B768EC1B9770BCE477988DAD57A05E7637CFEFF7F7FFFFF7F7F0000807F"> : tensor<169xf32> return %0 : tensor<169xf32> } func.func private @expected() -> tensor<169xf32> { - %0 = stablehlo.constant dense<"0x000080FFFCD4B2C2FCD4B2C24E77A9C277C8A4C2A019A0C2C96A9BC2F1BB96C21A0D92C2435E8DC26CAF88C2950084C27CA37EC2CD4575C21FE86BC2718A62C2C32C59C214CF4FC2667146C2B8133DC20AB633C25B582AC2ADFA20C2FF9C17C2513F0EC2A3E104C2E907F7C18C4CE4C13091D1C1D3D5BEC1771AACC11A5F99C1BEA386C1C2D067C1095A42C151E31CC130D9EEC008ECA3C0283B32C03EBD36BFBDB898BD653FEBBBF20435BA534A8BB88F5CD6B649F224B55CD87DB30254C3B1F74C16B0524E67AE18FCB1AC8DF408AB9DC452A9682EA2A7F796F9A5BE0D40A4F0C793A2A86DE3A043002F9FCCA8869D173CCF9B65761F9AD667759888D5BC96BA4D1195A29D5F933C11AC91E6660490BAC24B8E0DCA9C8CA94AF18A24AB398926DE8E87F9DDDB85CB2E2984B02E82824758C880264513807EDA0180A42D0080640400806C0000800A0000800100008000000000010000000A0000006C00000064040000A42D00007EDA0100264513004758C800B02E8202CB2E2904F9DDDB0526DE8E0724AB3909A94AF10A0DCA9C0CBAC24B0EE66604103C11AC11A29D5F13BA4D111588D5BC16D667751865761F1A173CCF1BCCA8861D43002F1FA86DE320F0C79322BE0D4024F796F925682EA2279DC452298DF4082B18FCB12C524E672EF74C16300254C3315CD87D3349F224358F5CD636534A8B38F204353A653FEB3BBDB8983D3EBD363F283B324008ECA34030D9EE4051E31C41095A4241C2D06741BEA386411A5F9941771AAC41D3D5BE413091D1418C4CE441E907F741A3E10442513F0E42FF9C1742ADFA20425B582A420AB63342B8133D426671464214CF4F42C32C5942718A62421FE86B42CD4575427CA37E42950084426CAF8842435E8D421A0D9242F1BB9642C96A9B42A019A04277C8A4424E77A942FCD4B242FCD4B2420000807F"> : tensor<169xf32> + %0 = stablehlo.constant dense<"0x000080FFFCD4B2C2FCD4B2C21D48AAC2DDFEA5C266B3A1C265659DC2741499C214C094C29E6790C23C0A8CC2BFC187C2A67A83C241637EC2D9CC75C271316DC2439064C253E85BC2633853C2D07E4AC21FE841C2535A39C2BBC830C2D63228C206981FC287F716C266500EC26CA105C208D2F9C16A99E8C19B7ED7C1505CC6C18931B5C112FDA3C16EBD92C1C27081C1602960C14F4C3DC103C51AC1E621F1C0669CACC0E00250C000EE98BF481131BE39E4A3BC80DA15BB0CCE87B98FC1F9B712B56BB696A8DDB4199C4FB39C8FC1B11F8333B0A276A5AE256A17ADA85D89AB2C51FBA9AF446DA83238DFA6B52B51A5381FC3A3BB1235A23E06A7A0C2F9189F45ED8A9DC8E0FC9B4BD46E9ACEC7E09851BB5297D4AEC49558A23694DB95A8925E891A91E17C8C8F6470FE8DE763708C6A57E28AEE4A5489713EC687F43138867725AA84FA181C837D0C8E810100008000000000010000007D0C8E01FA181C037725AA04F4313806713EC607EE4A54096A57E20AE763700C6470FE0DE17C8C0F5E891A11DB95A81258A23614D4AEC41551BB5217CEC7E0184BD46E1AC8E0FC1B45ED8A1DC2F9181F3E06A720BB123522381FC323B52B51253238DF26AF446D282C51FB29A85D892B256A172DA276A52E1F8333309C8FC131199C4F3396A8DD3412B56B368FC1F9370CCE873980DA153B39E4A33C4811313E00EE983FE0025040669CAC40E621F14003C51A414F4C3D4160296041C27081416EBD924112FDA3418931B541505CC6419B7ED7416A99E84108D2F9416CA1054266500E4287F7164206981F42D6322842BBC83042535A39421FE84142D07E4A426338534253E85B424390644271316D42D9CC754241637E42A67A8342BFC187423C0A8C429E67904214C094427414994265659D4266B3A142DDFEA5421D48AA42FCD4B242FCD4B2420000807F"> : tensor<169xf32> return %0 : tensor<169xf32> } func.func public @main() { diff --git a/stablehlo/tests/math/asinh_float64.mlir b/stablehlo/tests/math/asinh_float64.mlir index 46e5f59e3b8..18e5d37c250 100644 --- a/stablehlo/tests/math/asinh_float64.mlir +++ b/stablehlo/tests/math/asinh_float64.mlir @@ -2,11 +2,11 @@ // This file is generated, see build_tools/math/README.md for more information. module @asinh_float64 { func.func private @samples() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF8947AC0AB56DBCFCC1AE24D172F222FB376F06F0744189F94EAFC37F19D5F0F7D10D012BDC6F56F63DBB37D356E8BDF4AD77C49BCCEE23F394EEB494D4918AF10ABF993649B5F1EFC1DBEF0FB19A57EEB033ED80AB76BFEC0317E96347F824EB5F3BB74AB4F38BE9AC8BEACD22A1F2E76F3F450312D558E69C215EB8DC8CC0E473E0AD05920F26E3F5DFD726FD678DE1070CC99D4199F3DF41E24716CE1F5ADEE2EBF5524A69C1DC960A1776643527DB7095395EA4EF8ED9F4454413499EF4D7B2771E20BF7B5BD64827F3BF2F51C2D47EC03B3C806A28D3C1A5ECF3D54590D1FE7F0B1CE5B0F5CFD6124B4DCAE95CCE5A89BDBC2545C3CC6BF1BDF0B0AF29CBED883B93911E91C90939AC97CAD1F6C7E8769DB6E06A5EC6DFA409F9CC45C4C454FDE3C3CC052BC3490EABCD930292C1AC39B4CEB701F8BF00000000000060BEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53C000000000000603EAC39B4CEB701F83F490EABCD9302924154FDE3C3CC052B43DFA409F9CC45C444E8769DB6E06A5E460939AC97CAD1F647ED883B93911E91496BF1BDF0B0AF294B5A89BDBC2545C34CD6124B4DCAE95C4EFE7F0B1CE5B0F54FC1A5ECF3D54590517EC03B3C806A28534827F3BF2F51C254B2771E20BF7B5B56F4454413499EF4577095395EA4EF8E59960A17766435275BE2EBF5524A69C15C41E24716CE1F5A5E070CC99D4199F35FF5DFD726FD678D6173E0AD05920F26639C215EB8DC8CC0646F3F450312D55866AC8BEACD22A1F2675F3BB74AB4F38B690317E96347F8246BB033ED80AB76BF6CC1DBEF0FB19A576E0ABF993649B5F16F94EEB494D4918A71AD77C49BCCEE23733DBB37D356E8BD74D10D012BDC6F56764EAFC37F19D5F077376F06F074418979C1AE24D172F2227B8947AC0AB56DBC7CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> + %0 = stablehlo.constant dense<"0x000000000000F0FFFFFFFFFFFFFFEFFFFEFFFFFFFFFFEFFF0054BB12B52BD1FC00FC189C8FC141FB00A476256A57B2F9004CD4AE44ED22F800F431381F8393F6009C8FC1F91804F50048ED4AD4AE74F300F04AD4AE44E5F10098A85D89DA55F0004006E76370C6EE00E863703E0637ED0090C1F9189CA7EB00381F83F33118EA00E47C0CCEC788E8008CDA95A85DF9E60034381F83F369E500DC95A85D89DAE30084F331381F4BE2002C51BB12B5BBE000D4AE44ED4A2CDF00800CCEC7E09CDD00286A57A2760DDC00D0C7E07C0C7EDA0078256A57A2EED8002083F331385FD700C8E07C0CCECFD500703E06E76340D4001C9C8FC1F9B0D200C4F9189C8F21D1006C57A2762592CF0014B52B51BB02CE00BC12B52B5173CC0064703E06E7E3CA000CCEC7E07C54C900B82B51BB12C5C7006089DA95A835C60008E763703EA6C400B044ED4AD416C30058A276256A87C1000000000000F8BF00AA5D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93C00AA5D89DA95683E000000000000F83F0058A276256A874100B044ED4AD416430008E763703EA644006089DA95A8354600B82B51BB12C547000CCEC7E07C54490064703E06E7E34A00BC12B52B51734C0014B52B51BB024E006C57A27625924F00C4F9189C8F2151001C9C8FC1F9B05200703E06E763405400C8E07C0CCECF55002083F331385F570078256A57A2EE5800D0C7E07C0C7E5A00286A57A2760D5C00800CCEC7E09C5D00D4AE44ED4A2C5F002C51BB12B5BB600084F331381F4B6200DC95A85D89DA630034381F83F36965008CDA95A85DF96600E47C0CCEC7886800381F83F331186A0090C1F9189CA76B00E863703E06376D004006E76370C66E0098A85D89DA557000F04AD4AE44E5710048ED4AD4AE7473009C8FC1F918047500F431381F839376004CD4AE44ED227800A476256A57B27900FC189C8FC1417B0054BB12B52BD17CFEFFFFFFFFFFEF7FFFFFFFFFFFFFEF7F000000000000F07F"> : tensor<169xf64> return %0 : tensor<169xf64> } func.func private @expected() -> tensor<169xf64> { - %0 = stablehlo.constant dense<"0x000000000000F0FF7EF8B98FCE3386C07EF8B98FCE3386C0A696215C0E1885C0B96555422E8A84C0CD3489284EFC83C0E003BD0E6E6E83C0F4D2F0F48DE082C008A224DBAD5282C01B7158C1CDC481C02F408CA7ED3681C0430FC08D0DA980C056DEF3732D1B80C0D45A4FB49A1A7FC0FCF8B680DAFE7DC022971E4D1AE37CC04A3586195AC77BC072D3EDE599AB7AC0987155B2D98F79C0C00FBD7E197478C0E8AD244B595877C00E4C8C17993C76C036EAF3E3D82075C05F885BB0180574C08426C37C58E972C0ACC42A4998CD71C0D5629215D8B170C0F401F4C32F2C6FC0453EC35CAFF46CC0967A92F52EBD6AC0E1B6618EAE8568C031F330272E4E66C0822F00C0AD1664C0CD6BCF582DDF61C03B503DE3594F5FC0D1C8DB1459E05AC072417A46587156C013BA1878570252C053656E53AD264BC09556ABB6AB4842C0AF8FD03354D532C005EC15F9B31EF3BFFFFFFFFFFFFF5FBEDD39AF80CE53C5BC1245AC0AB56D2CBBC1AE24D172F292B9076D06F07441F9B7C3B0C37F19D560B6D10D012BDC6FC6B4A5B837D356E82DB36779C49BCCEE93B194EEB494D491FAAF81BD993649B561AECDDDEF0FB19AC7ACB033ED80AB762FAB3215E96347F894A9CB3DB74AB4F3FBA7AC8BEACD22A162A6483D450312D5C8A49C215EB8DC8C30A373E0AD05920F96A169DDD726FD67FD9F070CC99D4199639E41E24716CE1FCA9C60EAF5524A69319B960A1776643597997095395EA4EFFE972B444413499E6496B2771E20BF7BCB944827F3BF2F51329360BE3B3C806A9891C1A5ECF3D5450090FE7F0B1CE5B0658E55104B4DCAE9CC8C5A89BDBC2545338B6BF1BDF0B0AF9989698A3B93911E01880939AC97CAD16686E8769DB6E06ACE84A1A609F9CC45348354FDE3C3CC059B815D86D5E649010980FA36000300000080010000000000008000000000000000000100000000000000FA360003000000005D86D5E64901090054FDE3C3CC059B01A1A609F9CC453403E8769DB6E06ACE040939AC97CAD16606698A3B93911E01086BF1BDF0B0AF99095A89BDBC2545330B55104B4DCAE9CC0CFE7F0B1CE5B0650EC1A5ECF3D545001060BE3B3C806A98114827F3BF2F513213B2771E20BF7BCB142B444413499E64167095395EA4EFFE17960A17766435971960EAF5524A69311B41E24716CE1FCA1C070CC99D4199631E69DDD726FD67FD1F73E0AD05920F96219C215EB8DC8C3023483D450312D5C824AC8BEACD22A16226CB3DB74AB4F3FB273215E96347F89429B033ED80AB762F2BCDDDEF0FB19AC72C81BD993649B5612E94EEB494D491FA2F6779C49BCCEE9331A5B837D356E82D33D10D012BDC6FC634C3B0C37F19D56036076D06F07441F937C1AE24D172F292391245AC0AB56D2C3BDD39AF80CE53C53CFFFFFFFFFFFF5F3E05EC15F9B31EF33FAF8FD03354D532409556ABB6AB48424053656E53AD264B4013BA18785702524072417A4658715640D1C8DB1459E05A403B503DE3594F5F40CD6BCF582DDF6140822F00C0AD16644031F330272E4E6640E1B6618EAE856840967A92F52EBD6A40453EC35CAFF46C40F401F4C32F2C6F40D5629215D8B17040ACC42A4998CD71408426C37C58E972405F885BB01805744036EAF3E3D82075400E4C8C17993C7640E8AD244B59587740C00FBD7E19747840987155B2D98F794072D3EDE599AB7A404A3586195AC77B4022971E4D1AE37C40FCF8B680DAFE7D40D45A4FB49A1A7F4056DEF3732D1B8040430FC08D0DA980402F408CA7ED3681401B7158C1CDC4814008A224DBAD528240F4D2F0F48DE08240E003BD0E6E6E8340CD3489284EFC8340B96555422E8A8440A696215C0E1885407EF8B98FCE3386407EF8B98FCE338640000000000000F07F"> : tensor<169xf64> + %0 = stablehlo.constant dense<"0x000000000000F0FF7EF8B98FCE3386C07EF8B98FCE3386C0532E38EA1C1F85C03F220A6FC09484C01A8BBDB9610A84C0496A26EE008083C0716ED22C9EF582C0041A6C93396B82C0BFAC0F3DD3E081C0B33294426B5681C086A7CABA01CC80C0AFC0B4BA964180C0575269AB546E7FC09D7D6D3B79597EC07C65AC469B447DC0D291FAEBBA2F7CC007A70348D81A7BC031DD7C75F3057AC0F1D5518D0CF178C0F38DCCA623DC77C06A0AB9D738C776C0A74B85344CB275C015FA5DD05D9D74C0783248BD6D8873C088C8380C7C7372C0EF4A29CD885E71C0180A2B0F944970C0F6B4F0C03B696EC00924EDB8AE3F6CC03793DBA549166AC0F01AAAD3DAEC67C099C001E662C365C064EFF370E29963C07CF3E5FA597061C04F2266FC938D5EC02BFA23D5653A5AC046EC8F4C2AE755C03192631EE29351C05CEDA5EE1B814AC07A7B38ED5CDA41C032C692BD106732C0D8630B09C01DF3BFFEA95D89DA9568BE0052BB12B52BD9BC00FA189C8FC149BB00A476256A57BAB9004CD4AE44ED2AB800F431381F839BB6009C8FC1F9180CB50046ED4AD4AE7CB300EE4AD4AE44EDB10096A85D89DA5DB0004006E76370CEAE00E863703E063FAD0090C1F9189CAFAB00381F83F33120AA00E27C0CCEC790A8008ADA95A85D01A70032381F83F371A500DC95A85D89E2A30084F331381F53A2002C51BB12B5C3A000D5AE44ED4A349F007D0CCEC7E0A49D00266A57A276159C00CEC7E07C0C869A0077256A57A2F698002083F33138679700C8E07C0CCED79500713E06E763489400199C8FC1F9B89200C2F9189C8F2991806A57A276259A8F0013B52B51BB0A8E80BB12B52B517B8C0064703E06E7EB8A800CCEC7E07C5C8940B52B51BB12CD87C05D89DA95A83D864006E763703EAE84E0AE44ED4AD41E837057A276256A8F810100000000000080000000000000000001000000000000007057A276256A8F01E0AE44ED4AD41E034006E763703EAE04C05D89DA95A83D0640B52B51BB12CD07800CCEC7E07C5C090064703E06E7EB0A80BB12B52B517B0C0013B52B51BB0A0E806A57A276259A0F00C2F9189C8F291100199C8FC1F9B81200713E06E763481400C8E07C0CCED715002083F3313867170077256A57A2F61800CEC7E07C0C861A00266A57A276151C007D0CCEC7E0A41D00D5AE44ED4A341F002C51BB12B5C3200084F331381F532200DC95A85D89E2230032381F83F37125008ADA95A85D012700E27C0CCEC7902800381F83F331202A0090C1F9189CAF2B00E863703E063F2D004006E76370CE2E0096A85D89DA5D3000EE4AD4AE44ED310046ED4AD4AE7C33009C8FC1F9180C3500F431381F839B36004CD4AE44ED2A3800A476256A57BA3900FA189C8FC1493B0052BB12B52BD93CFEA95D89DA95683ED8630B09C01DF33F32C692BD106732407A7B38ED5CDA41405CEDA5EE1B814A403192631EE293514046EC8F4C2AE755402BFA23D5653A5A404F2266FC938D5E407CF3E5FA5970614064EFF370E299634099C001E662C36540F01AAAD3DAEC67403793DBA549166A400924EDB8AE3F6C40F6B4F0C03B696E40180A2B0F94497040EF4A29CD885E714088C8380C7C737240783248BD6D88734015FA5DD05D9D7440A74B85344CB275406A0AB9D738C77640F38DCCA623DC7740F1D5518D0CF1784031DD7C75F3057A4007A70348D81A7B40D291FAEBBA2F7C407C65AC469B447D409D7D6D3B79597E40575269AB546E7F40AFC0B4BA9641804086A7CABA01CC8040B33294426B568140BFAC0F3DD3E08140041A6C93396B8240716ED22C9EF58240496A26EE008083401A8BBDB9610A84403F220A6FC0948440532E38EA1C1F85407EF8B98FCE3386407EF8B98FCE338640000000000000F07F"> : tensor<169xf64> return %0 : tensor<169xf64> } func.func public @main() { diff --git a/stablehlo/transforms/ChloDecompositionPatterns.td b/stablehlo/transforms/ChloDecompositionPatterns.td index a3034a47c52..bc590dfd52d 100644 --- a/stablehlo/transforms/ChloDecompositionPatterns.td +++ b/stablehlo/transforms/ChloDecompositionPatterns.td @@ -46,37 +46,6 @@ def StableHLO_ConstantLikeSmallestNormalizedValue : NativeCodeCall< // Unary op patterns. //===----------------------------------------------------------------------===// -// Expand acos for non-complex arguments to MHLO dialect as follows: -// acos(x) = 2 * atan2(sqrt(1 - x^2), (1 + x)) if x != -1 -// = pi if x == -1 -// -// Note: Complex decomposition is in ChloDecompositionPatternsMath.td -def : Pat<(CHLO_AcosOp NonComplexElementType:$input), - (StableHLO_SelectOp - (StableHLO_CompareOp - $input, - (StableHLO_ConstantLike<"-1"> $input), - StableHLO_ComparisonDirectionValue<"NE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE) - ), - (StableHLO_MulOp - (StableHLO_ConstantLike<"2"> $input), - (StableHLO_Atan2Op - (StableHLO_SqrtOp - (StableHLO_SubtractOp - (StableHLO_ConstantLike<"1"> $input), - (StableHLO_MulOp $input, $input) - ) - ), - (StableHLO_AddOp - (StableHLO_ConstantLike<"1"> $input), - $input - ) - ) - ), - (StableHLO_ConstantLike<"M_PI"> $input) - )>; - // Express `atan` as // atan(x) = atan2(x, 1) def : Pat<(CHLO_AtanOp $input), diff --git a/stablehlo/transforms/ChloDecompositionPatternsMath.td b/stablehlo/transforms/ChloDecompositionPatternsMath.td index c8070a3cb87..f5c8ca85256 100644 --- a/stablehlo/transforms/ChloDecompositionPatternsMath.td +++ b/stablehlo/transforms/ChloDecompositionPatternsMath.td @@ -14,9 +14,241 @@ limitations under the License. ==============================================================================*/ // -// This file is generated using functional_algorithms tool (0.7.0). +// This file is generated using functional_algorithms tool (0.9.1). // See build_tools/math/README.md for more information. +// A kernel for evaluating asin and acos functions on complex inputs. +// +// asin_acos_kernel(z) = sqrt(a ** 2 - x ** 2) + I * log(a + sqrt(a ** 2 - 1)) +// +// where +// +// x and y are real and imaginary parts of the input to asin_acos_kernel, +// I is imaginary unit, and +// a = (hypot(x + 1, y) + hypot(x - 1, y)) / 2 +// +// See asin for the description of the asin_acos_kernel algorithm. +// +// We have +// asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) +// acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) +// asinh(z) = complex(sign(z.real) * w'.imag, atan2(z.imag, w'.real)) +// acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real)) +// where +// w = asin_acos_kernel(z) +// w' = asin_acos_kernel(I * z) +// +// See asin, asinh, acos, acosh for the derivation of the above relations. +// +def : Pat<(CHLO_AsinAcosKernelOp ComplexElementType:$z), + (StableHLO_ComplexOp + (StableHLO_SelectOp + (StableHLO_CompareOp + (StableHLO_MaxOp + (StableHLO_AbsOp:$x + (StableHLO_RealOp:$signed_x $z)), + (StableHLO_AbsOp:$y + (StableHLO_ImagOp:$signed_y $z))), + (StableHLO_DivOp:$safe_max + (StableHLO_SqrtOp + (StableHLO_ConstantLikeMaxFiniteValue $signed_x)), + (StableHLO_ConstantLike<"8"> $signed_x)), + StableHLO_ComparisonDirectionValue<"GE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + $y, + (StableHLO_SelectOp + (StableHLO_CompareOp + $x, + (StableHLO_ConstantLike<"1">:$one $signed_x), + StableHLO_ComparisonDirectionValue<"LE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_SqrtOp + (StableHLO_MulOp + (StableHLO_MulOp:$half_apx + (StableHLO_ConstantLike<"0.5">:$half $signed_x), + (StableHLO_AddOp + (StableHLO_MulOp:$a + $half, + (StableHLO_AddOp + (StableHLO_SelectOp:$r + (StableHLO_CompareOp + (StableHLO_MaxOp:$_hypot_1_mx + (StableHLO_AbsOp:$abs_xp1 + (StableHLO_AddOp:$xp1 $x, $one)), + $y), + (StableHLO_MinOp:$mn $abs_xp1, $y), + StableHLO_ComparisonDirectionValue<"EQ">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_MulOp + (StableHLO_SqrtOp:$sqrt_two + (StableHLO_ConstantLike<"2">:$two $signed_x)), + $_hypot_1_mx), + (StableHLO_SelectOp + (StableHLO_AndOp + (StableHLO_CompareOp + (StableHLO_SqrtOp:$sqa + (StableHLO_AddOp + $one, + (StableHLO_MulOp:$_hypot_1_r + (StableHLO_DivOp:$mn_over_mx $mn, $_hypot_1_mx), + $mn_over_mx))), + $one, + StableHLO_ComparisonDirectionValue<"EQ">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_CompareOp + $_hypot_1_r, + (StableHLO_ConstantLike<"0">:$zero $signed_x), + StableHLO_ComparisonDirectionValue<"GT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE))), + (StableHLO_AddOp + $_hypot_1_mx, + (StableHLO_DivOp + (StableHLO_MulOp $_hypot_1_mx, $_hypot_1_r), + $two)), + (StableHLO_MulOp $_hypot_1_mx, $sqa))), + (StableHLO_SelectOp:$s + (StableHLO_CompareOp + (StableHLO_MaxOp:$_hypot_2_mx + (StableHLO_AbsOp:$abs_xm1 + (StableHLO_SubtractOp:$xm1 $x, $one)), + $y), + (StableHLO_MinOp:$_hypot_2_mn $abs_xm1, $y), + StableHLO_ComparisonDirectionValue<"EQ">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_MulOp $sqrt_two, $_hypot_2_mx), + (StableHLO_SelectOp + (StableHLO_AndOp + (StableHLO_CompareOp + (StableHLO_SqrtOp:$_hypot_2_sqa + (StableHLO_AddOp + $one, + (StableHLO_MulOp:$_hypot_2_r + (StableHLO_DivOp:$_hypot_2_mn_over_mx $_hypot_2_mn, $_hypot_2_mx), + $_hypot_2_mn_over_mx))), + $one, + StableHLO_ComparisonDirectionValue<"EQ">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_CompareOp + $_hypot_2_r, + $zero, + StableHLO_ComparisonDirectionValue<"GT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE))), + (StableHLO_AddOp + $_hypot_2_mx, + (StableHLO_DivOp + (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_r), + $two)), + (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_sqa))))), + $x)), + (StableHLO_AddOp + (StableHLO_DivOp + (StableHLO_MulOp:$yy $y, $y), + (StableHLO_AddOp:$rpxp1 $r, $xp1)), + (StableHLO_SubtractOp:$smxm1 $s, $xm1)))), + (StableHLO_MulOp + $y, + (StableHLO_SqrtOp + (StableHLO_AddOp + (StableHLO_DivOp $half_apx, $rpxp1), + (StableHLO_DivOp + $half_apx, + (StableHLO_AddOp:$spxm1 $s, $xm1))))))), + (StableHLO_SelectOp + (StableHLO_CompareOp + (StableHLO_SelectOp:$mx + (StableHLO_CompareOp:$y_gt_safe_max_opt + $y, + (StableHLO_SelectOp:$safe_max_opt + (StableHLO_CompareOp + $x, + (StableHLO_MulOp + $safe_max, + (StableHLO_ConstantLike<"1000000000000.0"> $signed_x)), + StableHLO_ComparisonDirectionValue<"LT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_MulOp + $safe_max, + (StableHLO_ConstantLike<"1e-06"> $signed_x)), + (StableHLO_MulOp + $safe_max, + (StableHLO_ConstantLike<"100.0"> $signed_x))), + StableHLO_ComparisonDirectionValue<"GE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + $y, + $x), + (StableHLO_SelectOp $y_gt_safe_max_opt, $safe_max_opt, $safe_max), + StableHLO_ComparisonDirectionValue<"GE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_AddOp + (StableHLO_AddOp + (StableHLO_LogOp $two), + (StableHLO_LogOp $mx)), + (StableHLO_MulOp + $half, + (StableHLO_Log1pOp + (StableHLO_MulOp + (StableHLO_SelectOp:$xoy + (StableHLO_AndOp + $y_gt_safe_max_opt, + (StableHLO_NotOp + (StableHLO_CompareOp + $y, + (StableHLO_ConstantLikePosInfValue $signed_y), + StableHLO_ComparisonDirectionValue<"EQ">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)))), + (StableHLO_DivOp $x, $y), + $zero), + $xoy)))), + (StableHLO_SelectOp + (StableHLO_AndOp:$logical_and_lt_y_safe_min_lt_x_one + (StableHLO_CompareOp + $y, + (StableHLO_MulOp + (StableHLO_SqrtOp + (StableHLO_ConstantLikeSmallestNormalizedValue $signed_x)), + (StableHLO_ConstantLike<"4"> $signed_x)), + StableHLO_ComparisonDirectionValue<"LT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_CompareOp + $x, + $one, + StableHLO_ComparisonDirectionValue<"LT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE))), + (StableHLO_DivOp + $y, + (StableHLO_SqrtOp:$sq + (StableHLO_MulOp + (StableHLO_SelectOp:$am1 + $logical_and_lt_y_safe_min_lt_x_one, + (StableHLO_NegOp + (StableHLO_DivOp + (StableHLO_MulOp $xp1, $xm1), + (StableHLO_AddOp:$ap1 $a, $one))), + (StableHLO_SelectOp:$x_ge_1_or_not + (StableHLO_CompareOp + $x, + $one, + StableHLO_ComparisonDirectionValue<"GE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_AddOp + (StableHLO_DivOp:$divide_half_yy_rpxp1 + (StableHLO_MulOp:$half_yy $half, $yy), + $rpxp1), + (StableHLO_MulOp $half, $spxm1)), + (StableHLO_SelectOp + (StableHLO_CompareOp + $a, + (StableHLO_ConstantLike<"1.5"> $signed_x), + StableHLO_ComparisonDirectionValue<"LE">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_AddOp + $divide_half_yy_rpxp1, + (StableHLO_DivOp $half_yy, $smxm1)), + (StableHLO_SubtractOp $a, $one)))), + $ap1))), + (StableHLO_Log1pOp + (StableHLO_AddOp $am1, $sq)))))>; + // Arcus sine on complex input. // // arcsin(z) = 2 * arctan2(z, (1 + sqrt(1 - z * z))) @@ -146,246 +378,51 @@ limitations under the License. // implementations these would just increase the number of branches // with no gain in accuracy. // +// The above algorithm is implemented in asin_acos_kernel function so +// that we'll have +// +// asin(z) = complex(atan2(z.real, w.real), sign(z.imag) * w.imag) +// +// where +// +// w = asin_acos_kernel(z). // def : Pat<(CHLO_AsinOp ComplexElementType:$z), (StableHLO_ComplexOp (StableHLO_Atan2Op:$real (StableHLO_RealOp:$signed_x $z), - (StableHLO_SelectOp - (StableHLO_CompareOp - (StableHLO_MaxOp - (StableHLO_AbsOp:$x $signed_x), - (StableHLO_AbsOp:$y - (StableHLO_ImagOp:$signed_y $z))), - (StableHLO_DivOp:$safe_max - (StableHLO_SqrtOp - (StableHLO_ConstantLikeMaxFiniteValue $signed_x)), - (StableHLO_ConstantLike<"8"> $signed_x)), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - (StableHLO_SelectOp - (StableHLO_CompareOp - $x, - (StableHLO_ConstantLike<"1">:$one $signed_x), - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_SqrtOp - (StableHLO_MulOp - (StableHLO_MulOp:$half_apx - (StableHLO_ConstantLike<"0.5">:$half $signed_x), - (StableHLO_AddOp - (StableHLO_MulOp:$a - $half, - (StableHLO_AddOp - (StableHLO_SelectOp:$r - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_1_mx - (StableHLO_AbsOp:$abs_xp1 - (StableHLO_AddOp:$xp1 $x, $one)), - $y), - (StableHLO_MinOp:$mn $abs_xp1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - (StableHLO_SqrtOp:$sqrt_two - (StableHLO_ConstantLike<"2">:$two $signed_x)), - $_hypot_1_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_1_r - (StableHLO_DivOp:$mn_over_mx $mn, $_hypot_1_mx), - $mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_1_r, - (StableHLO_ConstantLike<"0">:$zero $signed_x), - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_1_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_1_mx, $_hypot_1_r), - $two)), - (StableHLO_MulOp $_hypot_1_mx, $sqa))), - (StableHLO_SelectOp:$s - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_2_mx - (StableHLO_AbsOp:$abs_xm1 - (StableHLO_SubtractOp:$xm1 $x, $one)), - $y), - (StableHLO_MinOp:$_hypot_2_mn $abs_xm1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp $sqrt_two, $_hypot_2_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$_hypot_2_sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_2_r - (StableHLO_DivOp:$_hypot_2_mn_over_mx $_hypot_2_mn, $_hypot_2_mx), - $_hypot_2_mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_2_r, - $zero, - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_2_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_r), - $two)), - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_sqa))))), - $x)), - (StableHLO_AddOp - (StableHLO_DivOp - (StableHLO_MulOp:$yy $y, $y), - (StableHLO_AddOp:$rpxp1 $r, $xp1)), - (StableHLO_SubtractOp:$smxm1 $s, $xm1)))), - (StableHLO_MulOp - $y, - (StableHLO_SqrtOp - (StableHLO_AddOp - (StableHLO_DivOp $half_apx, $rpxp1), - (StableHLO_DivOp - $half_apx, - (StableHLO_AddOp:$spxm1 $s, $xm1)))))))), + (StableHLO_RealOp + (CHLO_AsinAcosKernelOp:$asin_acos_kernel_z $z))), (StableHLO_SelectOp (StableHLO_CompareOp - $signed_y, - $zero, + (StableHLO_ImagOp:$signed_y $z), + (StableHLO_ConstantLike<"0"> (StableHLO_ImagOp:$imag_asin_acos_kernel_z $asin_acos_kernel_z)), StableHLO_ComparisonDirectionValue<"LT">, (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_NegOp - (StableHLO_SelectOp:$imag - (StableHLO_CompareOp - (StableHLO_SelectOp:$mx - (StableHLO_CompareOp:$y_gt_safe_max_opt - $y, - (StableHLO_SelectOp:$safe_max_opt - (StableHLO_CompareOp - $x, - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"1000000000000.0"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"1e-06"> $signed_x)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"100.0"> $signed_x))), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - $x), - (StableHLO_SelectOp $y_gt_safe_max_opt, $safe_max_opt, $safe_max), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_AddOp - (StableHLO_LogOp $two), - (StableHLO_LogOp $mx)), - (StableHLO_MulOp - $half, - (StableHLO_Log1pOp - (StableHLO_MulOp - (StableHLO_SelectOp:$xoy - (StableHLO_AndOp - $y_gt_safe_max_opt, - (StableHLO_NotOp - (StableHLO_CompareOp - $y, - (StableHLO_ConstantLikePosInfValue $signed_y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)))), - (StableHLO_DivOp $x, $y), - $zero), - $xoy)))), - (StableHLO_SelectOp - (StableHLO_AndOp:$logical_and_lt_y_safe_min_lt_x_one - (StableHLO_CompareOp - $y, - (StableHLO_MulOp - (StableHLO_SqrtOp - (StableHLO_ConstantLikeSmallestNormalizedValue $signed_x)), - (StableHLO_ConstantLike<"4"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_DivOp - $y, - (StableHLO_SqrtOp:$sq - (StableHLO_MulOp - (StableHLO_SelectOp:$am1 - $logical_and_lt_y_safe_min_lt_x_one, - (StableHLO_NegOp - (StableHLO_DivOp - (StableHLO_MulOp $xp1, $xm1), - (StableHLO_AddOp:$ap1 $a, $one))), - (StableHLO_SelectOp:$x_ge_1_or_not - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_DivOp:$divide_half_yy_rpxp1 - (StableHLO_MulOp:$half_yy $half, $yy), - $rpxp1), - (StableHLO_MulOp $half, $spxm1)), - (StableHLO_SelectOp - (StableHLO_CompareOp - $a, - (StableHLO_ConstantLike<"1.5"> $signed_x), - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - $divide_half_yy_rpxp1, - (StableHLO_DivOp $half_yy, $smxm1)), - (StableHLO_SubtractOp $a, $one)))), - $ap1))), - (StableHLO_Log1pOp - (StableHLO_AddOp $am1, $sq))))), - $imag))>; + (StableHLO_NegOp $imag_asin_acos_kernel_z), + $imag_asin_acos_kernel_z))>; // Arcus sine on real input: // -// arcsin(x) = 2 * arctan2(x, (1 + sqrt(1 - x * x))) +// arcsin(x) = 2 * arctan2(x, 1 + sqrt(1 - x * x)) // // To avoid cancellation errors at abs(x) close to 1, we'll use // // 1 - x * x == (1 - x) * (1 + x) // def : Pat<(CHLO_AsinOp NonComplexElementType:$x), - (StableHLO_MulOp - (StableHLO_ConstantLike<"2"> $x), - (StableHLO_Atan2Op + (StableHLO_AddOp + (StableHLO_Atan2Op:$ta $x, (StableHLO_AddOp (StableHLO_ConstantLike<"1">:$one $x), (StableHLO_SqrtOp (StableHLO_MulOp (StableHLO_SubtractOp $one, $x), - (StableHLO_AddOp $one, $x))))))>; + (StableHLO_AddOp $one, $x))))), + $ta)>; -// Arcus cosine on complex input: +// Arcus cosine on complex input // // Here we well use a modified version of the [Hull et // al]((https://dl.acm.org/doi/10.1145/275323.275324) algorithm with @@ -413,227 +450,52 @@ def : Pat<(CHLO_AsinOp NonComplexElementType:$x), // // real(arccos(z)) = argtan2(q, p), // -// and we have identity +// and we have the following identity // // imag(arccos(z)) = -imag(arcsin(z)). // +// With the above notes, we'll have +// +// acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) +// +// where +// +// w = asin_acos_kernel(z) +// def : Pat<(CHLO_AcosOp ComplexElementType:$z), (StableHLO_ComplexOp - (StableHLO_Atan2Op:$acos_real - (StableHLO_SelectOp - (StableHLO_CompareOp - (StableHLO_MaxOp - (StableHLO_AbsOp:$x - (StableHLO_RealOp:$signed_x $z)), - (StableHLO_AbsOp:$y - (StableHLO_ImagOp:$signed_y $z))), - (StableHLO_DivOp:$safe_max - (StableHLO_SqrtOp - (StableHLO_ConstantLikeMaxFiniteValue $signed_x)), - (StableHLO_ConstantLike<"8"> $signed_x)), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - (StableHLO_SelectOp - (StableHLO_CompareOp - $x, - (StableHLO_ConstantLike<"1">:$one $signed_x), - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_SqrtOp - (StableHLO_MulOp - (StableHLO_MulOp:$half_apx - (StableHLO_ConstantLike<"0.5">:$half $signed_x), - (StableHLO_AddOp - (StableHLO_MulOp:$a - $half, - (StableHLO_AddOp - (StableHLO_SelectOp:$r - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_1_mx - (StableHLO_AbsOp:$abs_xp1 - (StableHLO_AddOp:$xp1 $x, $one)), - $y), - (StableHLO_MinOp:$mn $abs_xp1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - (StableHLO_SqrtOp:$sqrt_two - (StableHLO_ConstantLike<"2">:$two $signed_x)), - $_hypot_1_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_1_r - (StableHLO_DivOp:$mn_over_mx $mn, $_hypot_1_mx), - $mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_1_r, - (StableHLO_ConstantLike<"0">:$zero $signed_x), - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_1_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_1_mx, $_hypot_1_r), - $two)), - (StableHLO_MulOp $_hypot_1_mx, $sqa))), - (StableHLO_SelectOp:$s - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_2_mx - (StableHLO_AbsOp:$abs_xm1 - (StableHLO_SubtractOp:$xm1 $x, $one)), - $y), - (StableHLO_MinOp:$_hypot_2_mn $abs_xm1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp $sqrt_two, $_hypot_2_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$_hypot_2_sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_2_r - (StableHLO_DivOp:$_hypot_2_mn_over_mx $_hypot_2_mn, $_hypot_2_mx), - $_hypot_2_mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_2_r, - $zero, - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_2_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_r), - $two)), - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_sqa))))), - $x)), - (StableHLO_AddOp - (StableHLO_DivOp - (StableHLO_MulOp:$yy $y, $y), - (StableHLO_AddOp:$rpxp1 $r, $xp1)), - (StableHLO_SubtractOp:$smxm1 $s, $xm1)))), - (StableHLO_MulOp - $y, - (StableHLO_SqrtOp - (StableHLO_AddOp - (StableHLO_DivOp $half_apx, $rpxp1), - (StableHLO_DivOp - $half_apx, - (StableHLO_AddOp:$spxm1 $s, $xm1))))))), - $signed_x), + (StableHLO_Atan2Op + (StableHLO_RealOp + (CHLO_AsinAcosKernelOp:$asin_acos_kernel_z $z)), + (StableHLO_RealOp:$signed_x $z)), (StableHLO_SelectOp (StableHLO_CompareOp - $signed_y, - $zero, + (StableHLO_ImagOp:$signed_y $z), + (StableHLO_ConstantLike<"0"> $signed_y), StableHLO_ComparisonDirectionValue<"LT">, (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_SelectOp:$imag - (StableHLO_CompareOp - (StableHLO_SelectOp:$mx - (StableHLO_CompareOp:$y_gt_safe_max_opt - $y, - (StableHLO_SelectOp:$safe_max_opt - (StableHLO_CompareOp - $x, - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"1000000000000.0"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"1e-06"> $signed_x)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"100.0"> $signed_x))), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - $x), - (StableHLO_SelectOp $y_gt_safe_max_opt, $safe_max_opt, $safe_max), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_AddOp - (StableHLO_LogOp $two), - (StableHLO_LogOp $mx)), - (StableHLO_MulOp - $half, - (StableHLO_Log1pOp - (StableHLO_MulOp - (StableHLO_SelectOp:$xoy - (StableHLO_AndOp - $y_gt_safe_max_opt, - (StableHLO_NotOp - (StableHLO_CompareOp - $y, - (StableHLO_ConstantLikePosInfValue $signed_y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)))), - (StableHLO_DivOp $x, $y), - $zero), - $xoy)))), - (StableHLO_SelectOp - (StableHLO_AndOp:$logical_and_lt_y_safe_min_lt_x_one - (StableHLO_CompareOp - $y, - (StableHLO_MulOp - (StableHLO_SqrtOp - (StableHLO_ConstantLikeSmallestNormalizedValue $signed_x)), - (StableHLO_ConstantLike<"4"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_DivOp - $y, - (StableHLO_SqrtOp:$sq - (StableHLO_MulOp - (StableHLO_SelectOp:$am1 - $logical_and_lt_y_safe_min_lt_x_one, - (StableHLO_NegOp - (StableHLO_DivOp - (StableHLO_MulOp $xp1, $xm1), - (StableHLO_AddOp:$ap1 $a, $one))), - (StableHLO_SelectOp:$x_ge_1_or_not - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_DivOp:$divide_half_yy_rpxp1 - (StableHLO_MulOp:$half_yy $half, $yy), - $rpxp1), - (StableHLO_MulOp $half, $spxm1)), - (StableHLO_SelectOp - (StableHLO_CompareOp - $a, - (StableHLO_ConstantLike<"1.5"> $signed_x), - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - $divide_half_yy_rpxp1, - (StableHLO_DivOp $half_yy, $smxm1)), - (StableHLO_SubtractOp $a, $one)))), - $ap1))), - (StableHLO_Log1pOp - (StableHLO_AddOp $am1, $sq)))), - (StableHLO_NegOp $imag)))>; + (StableHLO_ImagOp:$imag_asin_acos_kernel_z $asin_acos_kernel_z), + (StableHLO_NegOp $imag_asin_acos_kernel_z)))>; + +// Arcus cosine on real input: +// +// arccos(x) = 2 * arctan2(sqrt(1 - x * x), 1 + x) +// [to avoid undefined value at x == -1] +// = arctan2(sqrt(1 - x * x), x) +// +// To avoid cancellation errors at abs(x) close to 1, we'll use +// +// 1 - x * x == (1 - x) * (1 + x) +// +def : Pat<(CHLO_AcosOp NonComplexElementType:$x), + (StableHLO_Atan2Op + (StableHLO_SqrtOp + (StableHLO_MulOp + (StableHLO_SubtractOp + (StableHLO_ConstantLike<"1">:$constant_1 $x), + $x), + (StableHLO_AddOp $constant_1, $x))), + $x)>; // Inverse hyperbolic cosine on complex input: // @@ -641,230 +503,42 @@ def : Pat<(CHLO_AcosOp ComplexElementType:$z), // = I * acos(z) # when z.imag >= 0 // = -I * acos(z) # otherwise // +// where +// +// w = asin_acos_kernel(z) +// acos(z) = complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) +// +// For `z.imag >= 0`, we'll have `sign(z.imag) = 1` and +// +// acosh(z) = I * complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) +// = complex(w.imag, atan2(w.real, z.real)) +// +// For `z.imag < 0`, we'll have `sign(z.imag) = -1` and +// +// acosh(z) = -I * complex(atan2(w.real, z.real), -sign(z.imag) * w.imag) +// = -I * complex(atan2(w.real, z.real), w.imag) +// = complex(w.imag, -atan2(w.real, z.real)) +// +// So, for any `z.imag`, we'll have +// +// acosh(z) = complex(w.imag, sign(z.imag) * atan2(w.real, z.real)) +// +// def : Pat<(CHLO_AcoshOp ComplexElementType:$z), - (StableHLO_SelectOp - (StableHLO_CompareOp - (StableHLO_ImagOp:$signed_y $z), - (StableHLO_ConstantLike<"0"> $signed_y), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_NegOp - (StableHLO_ComplexOp:$complex_negative_acos_signed_imag_acos_real - (StableHLO_NegOp - (StableHLO_SelectOp - (StableHLO_CompareOp - $signed_y, - (StableHLO_ConstantLike<"0">:$zero (StableHLO_RealOp:$signed_x $z)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_SelectOp:$imag - (StableHLO_CompareOp - (StableHLO_SelectOp:$mx - (StableHLO_CompareOp:$y_gt_safe_max_opt - (StableHLO_AbsOp:$y $signed_y), - (StableHLO_SelectOp:$safe_max_opt - (StableHLO_CompareOp - (StableHLO_AbsOp:$x $signed_x), - (StableHLO_MulOp - (StableHLO_DivOp:$safe_max - (StableHLO_SqrtOp - (StableHLO_ConstantLikeMaxFiniteValue $signed_x)), - (StableHLO_ConstantLike<"8"> $signed_x)), - (StableHLO_ConstantLike<"1000000000000.0"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"1e-06"> $signed_x)), - (StableHLO_MulOp - $safe_max, - (StableHLO_ConstantLike<"100.0"> $signed_x))), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - $x), - (StableHLO_SelectOp $y_gt_safe_max_opt, $safe_max_opt, $safe_max), - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_AddOp - (StableHLO_LogOp - (StableHLO_ConstantLike<"2">:$two $signed_x)), - (StableHLO_LogOp $mx)), - (StableHLO_MulOp - (StableHLO_ConstantLike<"0.5">:$half $signed_x), - (StableHLO_Log1pOp - (StableHLO_MulOp - (StableHLO_SelectOp:$xoy - (StableHLO_AndOp - $y_gt_safe_max_opt, - (StableHLO_NotOp - (StableHLO_CompareOp - $y, - (StableHLO_ConstantLikePosInfValue $signed_y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)))), - (StableHLO_DivOp $x, $y), - $zero), - $xoy)))), - (StableHLO_SelectOp - (StableHLO_AndOp:$logical_and_lt_y_safe_min_lt_x_one - (StableHLO_CompareOp - $y, - (StableHLO_MulOp - (StableHLO_SqrtOp - (StableHLO_ConstantLikeSmallestNormalizedValue $signed_x)), - (StableHLO_ConstantLike<"4"> $signed_x)), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $x, - (StableHLO_ConstantLike<"1">:$one $signed_x), - StableHLO_ComparisonDirectionValue<"LT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_DivOp - $y, - (StableHLO_SqrtOp:$sq - (StableHLO_MulOp - (StableHLO_SelectOp:$am1 - $logical_and_lt_y_safe_min_lt_x_one, - (StableHLO_NegOp - (StableHLO_DivOp - (StableHLO_MulOp - (StableHLO_AddOp:$xp1 $x, $one), - (StableHLO_SubtractOp:$xm1 $x, $one)), - (StableHLO_AddOp:$ap1 - (StableHLO_MulOp:$a - $half, - (StableHLO_AddOp - (StableHLO_SelectOp:$r - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_1_mx - (StableHLO_AbsOp:$abs_xp1 $xp1), - $y), - (StableHLO_MinOp:$mn $abs_xp1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp - (StableHLO_SqrtOp:$sqrt_two $two), - $_hypot_1_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_1_r - (StableHLO_DivOp:$mn_over_mx $mn, $_hypot_1_mx), - $mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_1_r, - $zero, - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_1_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_1_mx, $_hypot_1_r), - $two)), - (StableHLO_MulOp $_hypot_1_mx, $sqa))), - (StableHLO_SelectOp:$s - (StableHLO_CompareOp - (StableHLO_MaxOp:$_hypot_2_mx - (StableHLO_AbsOp:$abs_xm1 $xm1), - $y), - (StableHLO_MinOp:$_hypot_2_mn $abs_xm1, $y), - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_MulOp $sqrt_two, $_hypot_2_mx), - (StableHLO_SelectOp - (StableHLO_AndOp - (StableHLO_CompareOp - (StableHLO_SqrtOp:$_hypot_2_sqa - (StableHLO_AddOp - $one, - (StableHLO_MulOp:$_hypot_2_r - (StableHLO_DivOp:$_hypot_2_mn_over_mx $_hypot_2_mn, $_hypot_2_mx), - $_hypot_2_mn_over_mx))), - $one, - StableHLO_ComparisonDirectionValue<"EQ">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_CompareOp - $_hypot_2_r, - $zero, - StableHLO_ComparisonDirectionValue<"GT">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE))), - (StableHLO_AddOp - $_hypot_2_mx, - (StableHLO_DivOp - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_r), - $two)), - (StableHLO_MulOp $_hypot_2_mx, $_hypot_2_sqa))))), - $one))), - (StableHLO_SelectOp:$x_ge_1_or_not - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - (StableHLO_DivOp:$divide_half_yy_rpxp1 - (StableHLO_MulOp:$half_yy - $half, - (StableHLO_MulOp:$yy $y, $y)), - (StableHLO_AddOp:$rpxp1 $r, $xp1)), - (StableHLO_MulOp - $half, - (StableHLO_AddOp:$spxm1 $s, $xm1))), - (StableHLO_SelectOp - (StableHLO_CompareOp - $a, - (StableHLO_ConstantLike<"1.5"> $signed_x), - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_AddOp - $divide_half_yy_rpxp1, - (StableHLO_DivOp - $half_yy, - (StableHLO_SubtractOp:$smxm1 $s, $xm1))), - (StableHLO_SubtractOp $a, $one)))), - $ap1))), - (StableHLO_Log1pOp - (StableHLO_AddOp $am1, $sq)))), - (StableHLO_NegOp $imag))), - (StableHLO_Atan2Op:$acos_real - (StableHLO_SelectOp - (StableHLO_CompareOp - (StableHLO_MaxOp $x, $y), - $safe_max, - StableHLO_ComparisonDirectionValue<"GE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - $y, - (StableHLO_SelectOp - (StableHLO_CompareOp - $x, - $one, - StableHLO_ComparisonDirectionValue<"LE">, - (STABLEHLO_DEFAULT_COMPARISON_TYPE)), - (StableHLO_SqrtOp - (StableHLO_MulOp - (StableHLO_MulOp:$half_apx - $half, - (StableHLO_AddOp $a, $x)), - (StableHLO_AddOp - (StableHLO_DivOp $yy, $rpxp1), - $smxm1))), - (StableHLO_MulOp - $y, - (StableHLO_SqrtOp - (StableHLO_AddOp - (StableHLO_DivOp $half_apx, $rpxp1), - (StableHLO_DivOp $half_apx, $spxm1)))))), - $signed_x))), - $complex_negative_acos_signed_imag_acos_real)>; + (StableHLO_ComplexOp + (StableHLO_ImagOp + (CHLO_AsinAcosKernelOp:$w $z)), + (StableHLO_SelectOp + (StableHLO_CompareOp + (StableHLO_ImagOp:$signed_y $z), + (StableHLO_ConstantLike<"0"> $signed_y), + StableHLO_ComparisonDirectionValue<"LT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_NegOp + (StableHLO_Atan2Op:$imag + (StableHLO_RealOp $w), + (StableHLO_RealOp:$signed_x $z))), + $imag))>; // Inverse hyperbolic cosine on real input: // @@ -908,17 +582,43 @@ def : Pat<(CHLO_AcoshOp NonComplexElementType:$x), // Inverse hyperbolic sine on complex input: // -// asinh(z) = -I * asin(I * z) +// asinh(z) = -I * asin(I * z) +// +// where +// +// asin(z') = complex(atan2(z'.real, w.real), sign(z'.imag) * w.imag) +// w = asin_acos_kernel(z') +// z' = I * z +// +// Let's find +// +// asinh(z) = -I * asin(z') +// = -I * complex(atan2(z'.real, w.real), sign(z'.imag) * w.imag) +// = complex(sign(z'.imag) * w.imag, -atan2(z'.real, w.real)) +// [z'.imag = z.real, z'.real = -z.imag] +// = complex(sign(z.real) * w.imag, atan2(z.imag, w.real)) +// where +// +// w = asin_acos_kernel(complex(-z.imag, z.real)) // def : Pat<(CHLO_AsinhOp ComplexElementType:$z), (StableHLO_ComplexOp - (StableHLO_ImagOp - (CHLO_AsinOp:$w - (StableHLO_ComplexOp - (StableHLO_NegOp - (StableHLO_ImagOp $z)), - (StableHLO_RealOp $z)))), - (StableHLO_NegOp + (StableHLO_SelectOp + (StableHLO_CompareOp + (StableHLO_RealOp:$signed_x $z), + (StableHLO_ConstantLike<"0"> $signed_x), + StableHLO_ComparisonDirectionValue<"LT">, + (STABLEHLO_DEFAULT_COMPARISON_TYPE)), + (StableHLO_NegOp + (StableHLO_ImagOp:$imag_w + (CHLO_AsinAcosKernelOp:$w + (StableHLO_ComplexOp + (StableHLO_NegOp + (StableHLO_ImagOp:$signed_y $z)), + $signed_x)))), + $imag_w), + (StableHLO_Atan2Op + $signed_y, (StableHLO_RealOp $w)))>; // Inverse hyperbolic sine on real input: