text:
JAX acos accuracy and correctness

pytest -sv ../functional_algorithms-3/functional_algorithms/tests/test_accuracy.py -x -k test_unary[acos-jax-cpu-complex64]

outputs
  +inf    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
  max     E=====111111111111111111111111111111111111111111111=================================================1=E
  3e38    E=====111111111111111111111111111111111111111111111===================================================E
  7e31    E========1=1111111111111111111111111111111111111111==============================================1====E
  3e28    E======11111=11111111111111111111111111111111111111============================================11=====E
  2e25    E=====1=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111=1=====E
  7e21    E================1111111111111111111111111111111111===================================================E
  3e18    E=========11===111111111111111111111111111111111111====================================1=1111=========E
  2e15    E=================11=111111111111111111111111111111===================================================E
  7e11    E==========11=====1====1111111111111111111111111111============================1====11====11==========E
  3e8     E==========11============11111111111111111111111111==========================1====1=======11==========E
  1e5     E==========11===============11111111111111111111111==============================1========11==========E
  7e1     E==========11=============111=111111111111111111111=======================1===============11==========E
  3e-2    E==========11=============12=1111111111111111111111=====================11=2111===========11==========E
  1e-5    E==========11=============111=111111111111111111111=======================111=11==========11==========E
  7e-9    E==========11=============1===111111111111111111111=========================1=============11==========E
  3e-12   E==========11=============1===111111111111111111111=========================11============11==========E
  1e-15   E==========11=============1===111111111111111111111==========================1============11==========E
  7e-19   E==========11=============1===111111111111111111111=========================1=1===========11==========E
  3e-22   E==========11=============11==111111111111111111111========================11=1===========11==========E
  1e-25   E==========11=============1===111111111111111111111=========================1=1===========11==========E
  6e-29   E==========11=============1===111111111111111111111===========================1===========11==========E
  3e-32   E==========11=============1===111111111111111111111===========================2===========11==========E
  1e-35   E==========11=============1===111111111111111111111===========================1===========11==========E
  1e-45   E==========11=============1===111111111111111111111=======================================11==========E
  0       E==========11=============1===111111111111111111111=======================================11==========E
  -1e-45  EEEEEEEEEEEEEEEEEEEEEEEEEE1===111111111111111111111==========================EEEEEEEEEEEEEEEEEEEEEEEEEE
  -1e-35  E==========11=============1===111111111111111111111===========================1EEEEEEEEEEEEEEEEEEEEEEEE
  -3e-32  E==========11=============1===111111111111111111111===========================2==EEEEEEEEEEEEEEEEEEEEEE
  -6e-29  E==========11=============1===111111111111111111111===========================1====EEEEEEEEEEEEEEEEEEEE
  -1e-25  E==========11=============1===111111111111111111111=========================1=1======EEEEEEEEEEEEEEEEEE
  -3e-22  E==========11=============11==111111111111111111111========================11=1========EEEEEEEEEEEEEEEE
  -7e-19  E==========11=============1===111111111111111111111=========================1=1==========EEEEEEEEEEEEEE
  -1e-15  E==========11=============1===111111111111111111111==========================1============11EEEEEEEEEEE
  -3e-12  E==========11=============1===111111111111111111111=========================11============11==EEEEEEEEE
  -7e-9   E==========11=============1===111111111111111111111=========================1=============11====EEEEEEE
  -1e-5   E==========11=============111=111111111111111111111=======================111=11==========11======EEEEE
  -3e-2   E==========11=============12=1111111111111111111111=====================11=2111===========11========EEE
  -7e1    E==========11=============111=111111111111111111111=======================1===============11==========E
  -1e5    E==========11===============11111111111111111111111==============================1========11==========E
  -3e8    E==========11============11111111111111111111111111==========================1====1=======11==========E
  -7e11   E==========11=====1====1111111111111111111111111111============================1====11====11==========E
  -2e15   E=================11=111111111111111111111111111111===================================================E
  -3e18   E=========11===111111111111111111111111111111111111====================================1=1111=========E
  -7e21   E================1111111111111111111111111111111111===================================================E
  -2e25   E=====1=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111=1=====E
  -3e28   E======11111=11111111111111111111111111111111111111============================================11=====E
  -7e31   E========1=1111111111111111111111111111111111111111==============================================1====E
  -3e38   E=====111111111111111111111111111111111111111111111===================================================E
  min     E=====111111111111111111111111111111111111111111111=================================================1=E
  -inf    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
          -inf  -5e30 -2e21 -8e11 -3e2  -1e-7 -5e-1 -2e-2 -8e-3 8e-36 2e-26 5e-17 1e-7  3e2   8e11  2e21  5e30  +inf

ULP-difference
z
jax:acos(z)
mpmath:acos(z)
numpy:acos(z)

4294967296
infj
(nan-infj)
(1.5707964-infj)
(1.5707964-infj)

2238032376
(-3.4028235e+38-1e-45j)
(3.1415927-89.415985j)
(3.1415927+89.415985j)
(3.1415927+89.415985j)

2238032376
(3.4028233e+38-3.0382704e-22j)
(-0-89.415985j)
89.415985j
89.415985j

2236155496
(-2.6448922e+35-1e-45j)
(3.1415927-82.256256j)
(3.1415927+82.256256j)
(3.1415927+82.256256j)

2236155496
(2.6448922e+35-3.0382704e-22j)
(-0-82.256256j)
82.256256j
82.256256j

2235211008
(-7.2056355e+33-1e-45j)
(3.1415927-78.65332j)
(3.1415927+78.65332j)
(3.1415927+78.65332j)

2235211008
(7.2056355e+33-3.0382704e-22j)
(-0-78.65332j)
78.65332j
78.65332j

2234260788
(-1.9206197e+32-1e-45j)
(3.1415927-75.02852j)
(3.1415927+75.02852j)
(3.1415927+75.02852j)

2234260788
(1.9206197e+32-1.3936195e-25j)
(-0-75.02852j)
75.02852j
75.02852j

2233305374
(-5.0188613e+30-1e-45j)
(3.1415927-71.3839j)
(3.1415927+71.3839j)
(3.1415927+71.3839j)

2233305374
(5.0188613e+30-1.3936195e-25j)
(-0-71.3839j)
71.3839j
71.3839j

2232368330
(-1.406704e+29-1e-45j)
(3.1415927-67.809364j)
(3.1415927+67.809364j)
(3.1415927+67.809364j)

2232368330
(1.406704e+29-1.3936195e-25j)
(-0-67.809364j)
67.809364j
67.809364j

2231427800
(-3.8906683e+27-1e-45j)
(3.1415927-64.22153j)
(3.1415927+64.22153j)
(3.1415927+64.22153j)

2231427800
(3.8906683e+27-1.3936195e-25j)
(-0-64.22153j)
64.22153j
64.22153j

2229595892
(-1.0579333e+26-1e-45j)
(3.1415927-60.616676j)
(3.1415927+60.616676j)
(3.1415927+60.616676j)

2229595892
(1.0579333e+26-6.365765e-29j)
(-0-60.616676j)
60.616676j
60.616676j

2227694102
(-2.8126027e+24-1e-45j)
(3.1415927-56.9893j)
(3.1415927+56.9893j)
(3.1415927+56.9893j)

2227694102
(2.8126027e+24-6.365765e-29j)
(-0-56.9893j)
56.9893j
56.9893j

2225786959
(-7.4015863e+22-1e-45j)
(3.1415927-53.35171j)
(3.1415927+53.351715j)
(3.1415927+53.35171j)

...
...
...
...
...

After disabling subnormals (on CUDA):
  -inf    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
  -3e35   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222E
  -3e32   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222E
  -3e29   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112211121E
  -3e26   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222111121E
  -3e23   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112121111221E
  -3e20   E111111111111111111111111111111111111111111111111111111111111111111111111111111111111112211121111121E
  -3e17   E=11111121111111111111111111111111111111111111111111111111111111111111111111111111111233211121111121E
  -3e14   E=11111111111111111111111111111111111111111111111111111111111111111111111111111111132223111111111111E
  -3e11   E=11111111111111111111111111111111111111111111111111111111111111111111111111111112232232111112111111E
  -3e8    E=11111111111111111111111111111111111111111111111111111111111111111111111111111222231233111111211111E
  -3e5    E=111111111111111111111111111===========================================1111122233131222111112221111E
  -3e2    E=11111111111111==1111111211111111111111111111111111111111111111111111111222332232131232211111221111E
  -3e-1   E=11111111111111==1111111222211111111111111111111111111111111111111111112223222232131232111111221111E
  -3e-4   E=11111111111111==1111111222111=======================================111212222232131232211111221111E
  -3e-7   E=11111111111111==1111=11111111=======================================11121322222213123211111211111EE
  -3e-10  E=11111111111111==1111=11112111=======================================111112222232131232211112111EEEE
  -3e-13  E=11111111111111==1111=11111111=======================================1111122222321212321111111EEEEEE
  -3e-16  E=11111111111111==1111=11122222=======================================22222222223212123221111EEEEEEEE
  -3e-19  E=11111111111111==1111=11232222=======================================22222222223212113211=EEEEEEEEEE
  -3e-22  E=11111111111111==1111=11232222=======================================2222232222321211211EEEEEEEEEEEE
  -3e-25  E=11111111111111==1111=11232222=======================================2222222222321211=EEEEEEEEEEEEEE
  -3e-28  E=11111111111111==1111=11232222=======================================2222232222221==EEEEEEEEEEEEEEEE
  -3e-31  E=11111111111111==1111=11233222=======================================22222222211=1EEEEEEEEEEEEEEEEEE
  -3e-34  E=11111111111111==1111=11233222=======================================222222221=1EEEEEEEEEEEEEEEEEEEE
  -3e-37  E=11111111111111==1111=11232222=======================================22222211==EEEEEEEEEEEEEEEEEEEEE
  3e-37   E=11111111111111==1111=11222222=======================================222221121=1=1==1=111=111111111E
  3e-34   E=11111111111111==1111=11222222=======================================22222112111=1==1=111=111111111E
  3e-31   E=11111111111111==1111=11222222=======================================2222211211221==1=111=111111111E
  3e-28   E=11111111111111==1111=11222222=======================================2222211211221211=111=111111111E
  3e-25   E=11111111111111==1111=11222222=======================================22222112112212111111=111111111E
  3e-22   E=11111111111111==1111=11222222=======================================22222112112212112211=111111111E
  3e-19   E=11111111111111==1111=11222222=======================================222221121122121122111111111111E
  3e-16   E=11111111111111==1111=11112111=======================================111111121122121122111111111111E
  3e-13   E=11111111111111==1111=11112111=======================================111111121122121122111111111111E
  3e-10   E=11111111111111==1111=11112111111111111111111111111111111111111111111111111121122121122111111111111E
  4e-7    E=11111111111111==1111111212222111111111111111111111111111111111111111222112121122121122111111111111E
  4e-4    E=11111111111111==1111111233222111111111111111111111111111111111111111222232221122121122111111111111E
  4e-1    E=11111111111111==1111111222211111111111111111111111111111111111111111112212323122121122111111111111E
  4e2     E=11111111111111111111111111111111111111111111111111111111111111111111111111123222121122111111111111E
  4e5     E=11111111111111111111111111111111111111111111111111111111111111111111111111111122221122111111111111E
  4e8     E=11111111111111111111111111111111111111111111111111111111111111111111111111111111222222111111111111E
  4e11    E=11111111111111111111111111111111111111111111111111111111111111111111111111111111112222111111111111E
  4e14    E=11111122111111111111111111111111111111111111111111111111111111111111111111111111111222211121111111E
  4e17    E111111121111111111111111111111111111111111111111111111111111111111111111111111111111111111121111111E
  4e20    E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111211111111E
  5e23    E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111211121111E
  5e26    E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111221111E
  5e29    E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111E
  5e32    E111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121E
  5e35    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
          -inf  -3e29 -2e20 -2e11 -1e2  -1e-7 -1e-1 -8e-2 -6e-3 2e-33 3e-24 3e-15 4e-6  5e3   7e12  9e21  1e31

ULP-difference
z
jax:acos(z)
mpmath:acos(z)
numpy:acos(z)
fa:acos(z)

4294967296
(-5.9508673e-38-infj)
(nan-infj)
(1.5707964+infj)
(1.5707964+infj)
(1.5707964+infj)

2220341386
(1.0422835e+37-2.9496383e-22j)
(-0-85.93021j)
85.93021j
85.93021j
85.93021j

2219427504
(3.191202e+35-2.9496383e-22j)
(-0-82.44402j)
82.44402j
82.44402j
82.44402j

2218513509
(9.766463e+33-2.9496383e-22j)
(-0-78.957405j)
78.95741j
78.957405j
78.957405j

2217599398
(2.987631e+32-2.9211337e-25j)
(-0-75.47035j)
75.47035j
75.47035j
75.47035j

2216685164
(9.1351325e+30-2.9211337e-25j)
(-0-71.98283j)
71.98283j
71.98283j
71.98283j

2215770804
(2.7918495e+29-2.9211337e-25j)
(-0-68.49482j)
68.49482j
68.49482j
68.49482j

2214856310
(8.5280313e+27-2.9211337e-25j)
(-0-65.0063j)
65.0063j
65.0063j
65.0063j

2213290841
(2.6036039e+26-2.8923452e-28j)
(-0-61.517254j)
61.517258j
61.517254j
61.517254j

2211461284
(7.9443693e+24-2.8923452e-28j)
(-0-58.027653j)
58.027653j
58.027653j
58.027653j

2209631420
(2.4226489e+23-2.8923452e-28j)
(-0-54.537464j)
54.537464j
54.537464j
54.537464j

2207801236
(7.3833825e+21-2.8923452e-28j)
(-0-51.046665j)
51.046665j
51.046665j
51.046665j

2205970714
(2.2487458e+20-2.8633016e-31j)
(-0-47.55522j)
47.55522j
47.55522j
47.55522j

2204139836
(6.8443274e+18-2.8633016e-31j)
(-0-44.0631j)
44.0631j
44.0631j
44.0631j

2202308584
(2.0816638e+17-2.8633016e-31j)
(-0-40.570263j)
40.570263j
40.57026j
40.570263j

2200476934
(6326484700000000-2.8633016e-31j)
(-0-37.076668j)
37.076668j
37.076668j
37.076668j

2198644866
(192117830000000-2.8340303e-34j)
(-0-33.582275j)
33.582275j
33.582275j
33.582275j

2195809414
(5829156700000-2.8340303e-34j)
(-0-30.08704j)
30.08704j
30.087042j
30.08704j

2192143454
(176707220000-9.5066774e-35j)
(-0-26.590908j)
26.590908j
26.590908j
26.590908j

2188476492
(5351665000-2.985617e-36j)
(-0-23.09382j)
23.09382j
23.09382j
23.09382j

...
...
...
...
...
...

With https://github.com/jax-ml/jax/pull/23830, all complex64 acos tests pass both on CPU and CUDA.

After https://github.com/jax-ml/jax/pull/23830 has landed, acos tests pass on CPU:
../functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cpu-complex64] maximal ULP difference: 3
PASSED
../functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cpu-complex128] maximal ULP difference: 3
PASSED

but on CUDA, there exists errors when the imaginary part of the input is close to smallest normal or the real part is large for small imaginary parts:
../functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cuda-complex64]
  -inf    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -4e35   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -4e32   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -5e29   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -5e26   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -6e23   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -6e20   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -7e17   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  -8e14   11111112122111111111111111111111111111111111111111111111111111111111111111111111111111111221211111111
  -9e11   11111111111111==11111111111111111111111111111111111=========================111=111111=11111111111111
  -9e8    11111111111111====111111111111111111111111111111111111111111111111111111111111112111===11111111111111
  -1e6    11111111111111======1111111111111111111111111111111=====================11111122211====11111111111111
  -1e3    11111111111111======1111112222111111111111111111111111111111111111111112221122211======1111111111111E
  -1      11111111111111======11111222222111111111111111111111111111111111111111222232221========11111111111EEE
  -1e-3   11111111111111======11111232122111111111111111111111111111111111111111221222221========111111111EEEEE
  -2e-6   11111111111111======1111111111111111111111111111111===================111112221========1111111EEEEEE!
  -2e-9   11111111111111======1111111111111111111111111111111===================111112221========11111EEEEEE!31
  -2e-12  11111111111111======1111111111111111111111111111111===================111112221========1111EEEEE!!111
  -2e-15  11111111111111======1111111111111111111111111111111===================111112221========11EEEEE!!11111
  -2e-18  11111111111111======1111111111111111111111111111111===================111112221========EEEEE!!1111111
  -2e-21  11111111111111======1111112111111111111111111111111===================111112221======EEEEE!!111111111
  -3e-24  11111111111111======1111111111111111111111111111111===================111112221====EEEEE!!11111111111
  -3e-27  11111111111111======1111112111111111111111111111111===================111112221==EEEEEE!1111111111111
  -3e-30  11111111111111======1111111111111111111111111111111===================111112221EEEEEE!=11111111111111
  -4e-33  11111111111111======1111112111111111111111111111111===================1111122EEEEEE!===11111111111111
  -4e-36  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
  0       11111111111111======11111EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!=====11111111111111
  4e-36   11111111111111======1111112111111111111111111111111===================1111122EEEEEE!===11111111111111
  4e-33   11111111111111======1111111111111111111111111111111===================111112221EEEEEE!=11111111111111
  3e-30   11111111111111======1111112111111111111111111111111===================111112221==EEEEE!!1111111111111
  3e-27   11111111111111======1111111111111111111111111111111===================111112221====EEEEE!!11111111111
  3e-24   11111111111111======1111111111111111111111111111111===================111112221======EEEEE!!111111111
  3e-21   11111111111111======1111112111111111111111111111111===================111112221========EEEEE!!1111111
  2e-18   11111111111111======1111111111111111111111111111111===================111112221========11EEEEE!!11111
  2e-15   11111111111111======1111111111111111111111111111111===================111112221========111EEEEEE!3111
  2e-12   11111111111111======1111111111111111111111111111111===================111112221========11111EEEEEE!31
  2e-9    11111111111111======1111111111111111111111111111111===================111112221========1111111EEEEEE!
  2e-6    11111111111111======11111222222111111111111111111111111111111111111111222222221========111111111EEEEE
  2e-3    11111111111111======111112222221111111111111111111111111111111111111112223323311=======11111111111EEE
  2       11111111111111======111112111111111111111111111111111111111111111111111111212211=======1111111111111E
  1e3     11111111111111=====11111111111111111111111111111111=====================11111122211====11111111111111
  1e6     11111111111111====111111111111111111111111111111111=======================1111112111===11111111111111
  1e9     11111111111111==11111111111111111111111111111111111=========================1111111111=11111111111111
  1e12    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  1e15    11111112122111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  9e17    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  8e20    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  8e23    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  7e26    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  6e29    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  6e32    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  5e35    111111111111111111111111111111111111111111111111111===========================================11=1111
          -inf  -3e29 -2e20 -1e11 -1e2  -8e-8 -6e-1 -4e-2 -3e-3 1e-33 1e-24 2e-15 3e-6  4e3   5e12  8e21  1e31

| ULP-difference |                                z |            jax:acos(z) |         mpmath:acos(z) |          numpy:acos(z) |             fa:acos(z) |
| -------------- | -------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
|     4294967296 |            (-inf-1.1551101e-38j) |       (3.1415927-infj) |       (3.1415927+infj) |       (3.1415927+infj) |       (3.1415927+infj) |
|     4294967296 |             (inf-1.1551101e-38j) |                  -infj |                   infj |                   infj |                   infj |
|     2237116610 | (-1.03440016e+37-1.1551101e-38j) | (3.1415927-85.922615j) | (3.1415927+85.922615j) | (3.1415927+85.922615j) | (3.1415927+85.922615j) |
|     2237115934 |   (1.0317341e+37-1.1551101e-38j) |             -85.92004j |              85.92004j |              85.92004j |              85.92004j |
|     2236200639 |  (-3.1419312e+35-1.1551101e-38j) |  (3.1415927-82.42846j) |  (3.1415927+82.42847j) |  (3.1415927+82.42846j) |  (3.1415927+82.42846j) |
|     2236199245 |   (3.1252682e+35-1.1551101e-38j) |             -82.42314j |              82.42315j |              82.42314j |              82.42314j |
|     2235284450 |   (-9.535506e+33-1.1551101e-38j) |  (3.1415927-78.93348j) |  (3.1415927+78.93348j) |  (3.1415927+78.93348j) |  (3.1415927+78.93348j) |
|     2235282294 |   (9.4573977e+33-1.1551101e-38j) |            -78.925255j |             78.925255j |             78.925255j |             78.925255j |
|     2234368029 |  (-2.8913991e+32-1.1551101e-38j) |  (3.1415927-75.43761j) | (3.1415927+75.437614j) |  (3.1415927+75.43761j) |  (3.1415927+75.43761j) |
|     2234365062 |   (2.8588539e+32-1.1551101e-38j) |             -75.42629j |              75.42629j |              75.42629j |              75.42629j |
|     2233451363 |  (-8.7592267e+30-1.1551101e-38j) |   (3.1415927-71.9408j) |  (3.1415927+71.94081j) |   (3.1415927+71.9408j) |   (3.1415927+71.9408j) |
|     2233447530 |   (8.6320967e+30-1.1551101e-38j) |            -71.926186j |             71.926186j |             71.926186j |             71.926186j |
|     2232534436 |  (-2.6508847e+29-1.1551101e-38j) |  (3.1415927-68.44301j) |  (3.1415927+68.44301j) |  (3.1415927+68.44301j) |  (3.1415927+68.44301j) |
|     2232529678 |    (2.603211e+29-1.1551101e-38j) |             -68.42486j |              68.42486j |              68.42486j |              68.42486j |
|     2231617230 |  (-8.0140974e+27-1.1551101e-38j) | (3.1415927-64.944145j) | (3.1415927+64.944145j) | (3.1415927+64.944145j) | (3.1415927+64.944145j) |
|     2231611482 |   (7.8402865e+27-1.1551101e-38j) |             -64.92222j |              64.92222j |              64.92222j |              64.92222j |
|     2230029726 |  (-2.4200562e+26-1.1551101e-38j) |  (3.1415927-61.44415j) |  (3.1415927+61.44415j) |  (3.1415927+61.44415j) |  (3.1415927+61.44415j) |
|     2230016103 |   (2.3579809e+26-1.1551101e-38j) |            -61.418163j |             61.418167j |             61.418163j |             61.418163j |
|     2228194083 |  (-7.2990844e+24-1.1551101e-38j) | (3.1415927-57.942936j) |  (3.1415927+57.94294j) | (3.1415927+57.942936j) | (3.1415927+57.942936j) |
|     2228178168 |   (7.0808513e+24-1.1551101e-38j) |            -57.912582j |             57.912582j |             57.912582j |             57.912582j |
|            ... |                              ... |                    ... |                    ... |                    ... |                    ... |

Data point 1
>>> import jax.numpy as jnp; from jax import jit
>>> jnp.array([1, 2]).device
CpuDevice(id=0)
>>> f=jit(jnp.asin)
>>> c=f.lower(jnp.complex64(0)).compile()
>>> print(c.as_text())

HloModule jit_asin, is_scheduled=true, entry_computation_layout={(c64[])->c64[]}, allow_spmd_sharding_propagation_to_parameters={true}, allow_spmd_sharding_propagation_to_output={true}

%fused_computation (param_0.1: pred[], param_1.3: f32[], param_2.8: f32[], param_3.11: f32[], param_4.14: f32[], param_5.14: f32[], param_6.17: f32[], param_7.18: f32[], param_8.15: c64[]) -> c64[] {
  %param_8.15 = c64[] parameter(8)
  %real.0 = f32[] real(c64[] %param_8.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.3 = f32[] abs(f32[] %real.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.0 = f32[] imag(c64[] %param_8.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.2 = f32[] abs(f32[] %imag.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %maximum.0 = f32[] maximum(f32[] %abs.3, f32[] %abs.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.27 = f32[] constant(2.30584287e+18)
  %compare.12 = pred[] compare(f32[] %maximum.0, f32[] %constant.27), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.26 = f32[] constant(1)
  %compare.11 = pred[] compare(f32[] %abs.3, f32[] %constant.26), direction=LE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_5.14 = f32[] parameter(5)
  %add.15 = f32[] add(f32[] %abs.3, f32[] %constant.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.1 = f32[] abs(f32[] %add.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.1 = f32[] minimum(f32[] %abs.1, f32[] %abs.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.10 = pred[] compare(f32[] %param_5.14, f32[] %minimum.1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.25 = f32[] constant(1.41421354)
  %multiply.19 = f32[] multiply(f32[] %param_5.14, f32[] %constant.25), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_6.17 = f32[] parameter(6)
  %compare.9 = pred[] compare(f32[] %param_6.17, f32[] %constant.26), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_7.18 = f32[] parameter(7)
  %multiply.18 = f32[] multiply(f32[] %param_7.18, f32[] %param_7.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.24 = f32[] constant(0)
  %compare.8 = pred[] compare(f32[] %multiply.18, f32[] %constant.24), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.2 = pred[] and(pred[] %compare.9, pred[] %compare.8), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.17 = f32[] multiply(f32[] %param_5.14, f32[] %multiply.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.23 = f32[] constant(0.5)
  %multiply.16 = f32[] multiply(f32[] %multiply.17, f32[] %constant.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.14 = f32[] add(f32[] %param_5.14, f32[] %multiply.16), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.15 = f32[] multiply(f32[] %param_5.14, f32[] %param_6.17), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.12 = f32[] select(pred[] %and.2, f32[] %add.14, f32[] %multiply.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.11 = f32[] select(pred[] %compare.10, f32[] %multiply.19, f32[] %select.12), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_2.8 = f32[] parameter(2)
  %constant.22 = f32[] constant(-1)
  %add.13 = f32[] add(f32[] %abs.3, f32[] %constant.22), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.0 = f32[] abs(f32[] %add.13), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.0 = f32[] minimum(f32[] %abs.0, f32[] %abs.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.7 = pred[] compare(f32[] %param_2.8, f32[] %minimum.0), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.14 = f32[] multiply(f32[] %param_2.8, f32[] %constant.25), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_3.11 = f32[] parameter(3)
  %compare.6 = pred[] compare(f32[] %param_3.11, f32[] %constant.26), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_4.14 = f32[] parameter(4)
  %multiply.13 = f32[] multiply(f32[] %param_4.14, f32[] %param_4.14), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.5 = pred[] compare(f32[] %multiply.13, f32[] %constant.24), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.1 = pred[] and(pred[] %compare.6, pred[] %compare.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.12 = f32[] multiply(f32[] %param_2.8, f32[] %multiply.13), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.11 = f32[] multiply(f32[] %multiply.12, f32[] %constant.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.12 = f32[] add(f32[] %param_2.8, f32[] %multiply.11), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.10 = f32[] multiply(f32[] %param_2.8, f32[] %param_3.11), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.10 = f32[] select(pred[] %and.1, f32[] %add.12, f32[] %multiply.10), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.9 = f32[] select(pred[] %compare.7, f32[] %multiply.14, f32[] %select.10), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.11 = f32[] add(f32[] %select.11, f32[] %select.9), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.9 = f32[] multiply(f32[] %add.11, f32[] %constant.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.10 = f32[] add(f32[] %multiply.9, f32[] %abs.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.8 = f32[] multiply(f32[] %add.10, f32[] %constant.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.7 = f32[] multiply(f32[] %imag.0, f32[] %imag.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.9 = f32[] add(f32[] %select.11, f32[] %add.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.4 = f32[] divide(f32[] %multiply.7, f32[] %add.9), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %subtract.0 = f32[] subtract(f32[] %select.9, f32[] %add.13), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.8 = f32[] add(f32[] %divide.4, f32[] %subtract.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.6 = f32[] multiply(f32[] %multiply.8, f32[] %add.8), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.2 = f32[] sqrt(f32[] %multiply.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.3 = f32[] divide(f32[] %multiply.8, f32[] %add.9), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.7 = f32[] add(f32[] %select.9, f32[] %add.13), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.2 = f32[] divide(f32[] %multiply.8, f32[] %add.7), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.6 = f32[] add(f32[] %divide.3, f32[] %divide.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.1 = f32[] sqrt(f32[] %add.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.5 = f32[] multiply(f32[] %abs.2, f32[] %sqrt.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.8 = f32[] select(pred[] %compare.11, f32[] %sqrt.2, f32[] %multiply.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.7 = f32[] select(pred[] %compare.12, f32[] %abs.2, f32[] %select.8), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %atan2.0 = f32[] atan2(f32[] %real.0, f32[] %select.7), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.4 = pred[] compare(f32[] %imag.0, f32[] %constant.24), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.21 = f32[] constant(2.30584285e+30)
  %compare.3 = pred[] compare(f32[] %abs.3, f32[] %constant.21), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.20 = f32[] constant(2.30584274e+12)
  %constant.19 = f32[] constant(2.30584283e+20)
  %select.6 = f32[] select(pred[] %compare.3, f32[] %constant.20, f32[] %constant.19), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.2 = pred[] compare(f32[] %abs.2, f32[] %select.6), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.5 = f32[] select(pred[] %compare.2, f32[] %abs.2, f32[] %abs.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.4 = f32[] select(pred[] %compare.2, f32[] %select.6, f32[] %constant.27), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.1 = pred[] compare(f32[] %select.5, f32[] %select.4), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log.0 = f32[] log(f32[] %select.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.18 = f32[] constant(0.693147182)
  %add.5 = f32[] add(f32[] %log.0, f32[] %constant.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.17 = f32[] constant(inf)
  %compare.0 = pred[] compare(f32[] %abs.2, f32[] %constant.17), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %not.0 = pred[] not(pred[] %compare.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.0 = pred[] and(pred[] %compare.2, pred[] %not.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.1 = f32[] divide(f32[] %abs.3, f32[] %abs.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.3 = f32[] select(pred[] %and.0, f32[] %divide.1, f32[] %constant.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.4 = f32[] multiply(f32[] %select.3, f32[] %select.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log-plus-one.1 = f32[] log-plus-one(f32[] %multiply.4), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.3 = f32[] multiply(f32[] %log-plus-one.1, f32[] %constant.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.4 = f32[] add(f32[] %add.5, f32[] %multiply.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_0.1 = pred[] parameter(0)
  %param_1.3 = f32[] parameter(1)
  %add.3 = f32[] add(f32[] %multiply.9, f32[] %constant.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.2 = f32[] multiply(f32[] %param_1.3, f32[] %add.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.0 = f32[] sqrt(f32[] %multiply.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.0 = f32[] divide(f32[] %abs.2, f32[] %sqrt.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.2 = f32[] add(f32[] %param_1.3, f32[] %sqrt.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log-plus-one.0 = f32[] log-plus-one(f32[] %add.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.2 = f32[] select(pred[] %param_0.1, f32[] %divide.0, f32[] %log-plus-one.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.1 = f32[] select(pred[] %compare.1, f32[] %add.4, f32[] %select.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %negate.2 = f32[] negate(f32[] %select.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.0 = f32[] select(pred[] %compare.4, f32[] %negate.2, f32[] %select.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %complex.0 = c64[] complex(f32[] %atan2.0, f32[] %select.0), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.1 (param_0.2: pred[], param_1.7: f32[], param_2.16: f32[], param_3.21: f32[], param_4.28: f32[], param_5.30: f32[], param_6.35: f32[], param_7.38: f32[], param_8.38: c64[]) -> f32[] {
  %param_0.2 = pred[] parameter(0)
  %param_8.38 = c64[] parameter(8)
  %real.1 = f32[] real(c64[] %param_8.38), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.7 = f32[] abs(f32[] %real.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.33 = f32[] constant(1)
  %add.26 = f32[] add(f32[] %abs.7, f32[] %constant.33), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.29 = f32[] constant(-1)
  %add.24 = f32[] add(f32[] %abs.7, f32[] %constant.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.22 = f32[] multiply(f32[] %add.26, f32[] %add.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_5.30 = f32[] parameter(5)
  %abs.5 = f32[] abs(f32[] %add.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.1 = f32[] imag(c64[] %param_8.38), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.6 = f32[] abs(f32[] %imag.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.3 = f32[] minimum(f32[] %abs.5, f32[] %abs.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.20 = pred[] compare(f32[] %param_5.30, f32[] %minimum.3), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.32 = f32[] constant(1.41421354)
  %multiply.37 = f32[] multiply(f32[] %param_5.30, f32[] %constant.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_6.35 = f32[] parameter(6)
  %compare.19 = pred[] compare(f32[] %param_6.35, f32[] %constant.33), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_7.38 = f32[] parameter(7)
  %multiply.35 = f32[] multiply(f32[] %param_7.38, f32[] %param_7.38), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.31 = f32[] constant(0)
  %compare.18 = pred[] compare(f32[] %multiply.35, f32[] %constant.31), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.4 = pred[] and(pred[] %compare.19, pred[] %compare.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.34 = f32[] multiply(f32[] %param_5.30, f32[] %multiply.35), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.30 = f32[] constant(0.5)
  %multiply.33 = f32[] multiply(f32[] %multiply.34, f32[] %constant.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.25 = f32[] add(f32[] %param_5.30, f32[] %multiply.33), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.32 = f32[] multiply(f32[] %param_5.30, f32[] %param_6.35), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.19 = f32[] select(pred[] %and.4, f32[] %add.25, f32[] %multiply.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.18 = f32[] select(pred[] %compare.20, f32[] %multiply.37, f32[] %select.19), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_2.16 = f32[] parameter(2)
  %abs.4 = f32[] abs(f32[] %add.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.2 = f32[] minimum(f32[] %abs.4, f32[] %abs.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.17 = pred[] compare(f32[] %param_2.16, f32[] %minimum.2), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.31 = f32[] multiply(f32[] %param_2.16, f32[] %constant.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_3.21 = f32[] parameter(3)
  %compare.16 = pred[] compare(f32[] %param_3.21, f32[] %constant.33), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_4.28 = f32[] parameter(4)
  %multiply.29 = f32[] multiply(f32[] %param_4.28, f32[] %param_4.28), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.15 = pred[] compare(f32[] %multiply.29, f32[] %constant.31), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.3 = pred[] and(pred[] %compare.16, pred[] %compare.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.27 = f32[] multiply(f32[] %param_2.16, f32[] %multiply.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.26 = f32[] multiply(f32[] %multiply.27, f32[] %constant.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.22 = f32[] add(f32[] %param_2.16, f32[] %multiply.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.25 = f32[] multiply(f32[] %param_2.16, f32[] %param_3.21), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.17 = f32[] select(pred[] %and.3, f32[] %add.22, f32[] %multiply.25), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.16 = f32[] select(pred[] %compare.17, f32[] %multiply.31, f32[] %select.17), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.21 = f32[] add(f32[] %select.18, f32[] %select.16), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.24 = f32[] multiply(f32[] %add.21, f32[] %constant.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.19 = f32[] add(f32[] %multiply.24, f32[] %constant.33), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.6 = f32[] divide(f32[] %multiply.22, f32[] %add.19), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %negate.3 = f32[] negate(f32[] %divide.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.14 = pred[] compare(f32[] %abs.7, f32[] %constant.33), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_1.7 = f32[] parameter(1)
  %add.20 = f32[] add(f32[] %select.16, f32[] %add.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.20 = f32[] multiply(f32[] %add.20, f32[] %constant.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.18 = f32[] add(f32[] %param_1.7, f32[] %multiply.20), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.28 = f32[] constant(1.5)
  %compare.13 = pred[] compare(f32[] %multiply.24, f32[] %constant.28), direction=LE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.23 = f32[] multiply(f32[] %imag.1, f32[] %imag.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.21 = f32[] multiply(f32[] %multiply.23, f32[] %constant.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %subtract.1 = f32[] subtract(f32[] %select.16, f32[] %add.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.5 = f32[] divide(f32[] %multiply.21, f32[] %subtract.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.17 = f32[] add(f32[] %param_1.7, f32[] %divide.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.16 = f32[] add(f32[] %multiply.24, f32[] %constant.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.15 = f32[] select(pred[] %compare.13, f32[] %add.17, f32[] %add.16), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.14 = f32[] select(pred[] %compare.14, f32[] %add.18, f32[] %select.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %select.13 = f32[] select(pred[] %param_0.2, f32[] %negate.3, f32[] %select.14), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.2 (param_0.9: f32[], param_1.15: f32[], param_2.24: f32[], param_3.31: c64[]) -> f32[] {
  %param_3.31 = c64[] parameter(3)
  %imag.2 = f32[] imag(c64[] %param_3.31), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.40 = f32[] multiply(f32[] %imag.2, f32[] %imag.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.34 = f32[] constant(0.5)
  %multiply.38 = f32[] multiply(f32[] %multiply.40, f32[] %constant.34), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_0.9 = f32[] parameter(0)
  %real.2 = f32[] real(c64[] %param_3.31), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.10 = f32[] abs(f32[] %real.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.37 = f32[] constant(1)
  %add.29 = f32[] add(f32[] %abs.10, f32[] %constant.37), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.8 = f32[] abs(f32[] %add.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.9 = f32[] abs(f32[] %imag.2), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.4 = f32[] minimum(f32[] %abs.8, f32[] %abs.9), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.25 = pred[] compare(f32[] %param_0.9, f32[] %minimum.4), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.36 = f32[] constant(1.41421354)
  %multiply.45 = f32[] multiply(f32[] %param_0.9, f32[] %constant.36), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_1.15 = f32[] parameter(1)
  %compare.24 = pred[] compare(f32[] %param_1.15, f32[] %constant.37), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_2.24 = f32[] parameter(2)
  %multiply.44 = f32[] multiply(f32[] %param_2.24, f32[] %param_2.24), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.35 = f32[] constant(0)
  %compare.23 = pred[] compare(f32[] %multiply.44, f32[] %constant.35), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.5 = pred[] and(pred[] %compare.24, pred[] %compare.23), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.43 = f32[] multiply(f32[] %param_0.9, f32[] %multiply.44), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.42 = f32[] multiply(f32[] %multiply.43, f32[] %constant.34), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.28 = f32[] add(f32[] %param_0.9, f32[] %multiply.42), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.41 = f32[] multiply(f32[] %param_0.9, f32[] %param_1.15), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.21 = f32[] select(pred[] %and.5, f32[] %add.28, f32[] %multiply.41), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.20 = f32[] select(pred[] %compare.25, f32[] %multiply.45, f32[] %select.21), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.27 = f32[] add(f32[] %select.20, f32[] %add.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %divide.7 = f32[] divide(f32[] %multiply.38, f32[] %add.27), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.3 (param_0.12: c64[]) -> pred[] {
  %param_0.12 = c64[] parameter(0)
  %imag.3 = f32[] imag(c64[] %param_0.12), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.11 = f32[] abs(f32[] %imag.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.38 = f32[] constant(4.33680869e-19)
  %compare.28 = pred[] compare(f32[] %abs.11, f32[] %constant.38), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %real.3 = f32[] real(c64[] %param_0.12), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.12 = f32[] abs(f32[] %real.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.39 = f32[] constant(1)
  %compare.26 = pred[] compare(f32[] %abs.12, f32[] %constant.39), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %and.6 = pred[] and(pred[] %compare.28, pred[] %compare.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.4 (param_0.16: f32[]) -> f32[] {
  %param_0.16 = f32[] parameter(0)
  %multiply.46 = f32[] multiply(f32[] %param_0.16, f32[] %param_0.16), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.40 = f32[] constant(1)
  %add.30 = f32[] add(f32[] %multiply.46, f32[] %constant.40), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %sqrt.3 = f32[] sqrt(f32[] %add.30), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.5 (param_0.18: f32[], param_1.29: c64[]) -> f32[] {
  %param_1.29 = c64[] parameter(1)
  %real.4 = f32[] real(c64[] %param_1.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.15 = f32[] abs(f32[] %real.4), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.41 = f32[] constant(-1)
  %add.32 = f32[] add(f32[] %abs.15, f32[] %constant.41), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.13 = f32[] abs(f32[] %add.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.4 = f32[] imag(c64[] %param_1.29), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.14 = f32[] abs(f32[] %imag.4), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.5 = f32[] minimum(f32[] %abs.13, f32[] %abs.14), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_0.18 = f32[] parameter(0)
  ROOT %divide.8 = f32[] divide(f32[] %minimum.5, f32[] %param_0.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.6 (param_0.22: c64[]) -> f32[] {
  %param_0.22 = c64[] parameter(0)
  %real.5 = f32[] real(c64[] %param_0.22), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.20 = f32[] abs(f32[] %real.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.42 = f32[] constant(-1)
  %add.33 = f32[] add(f32[] %abs.20, f32[] %constant.42), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.16 = f32[] abs(f32[] %add.33), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.5 = f32[] imag(c64[] %param_0.22), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.18 = f32[] abs(f32[] %imag.5), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %maximum.1 = f32[] maximum(f32[] %abs.16, f32[] %abs.18), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.7 (param_0.26: f32[]) -> f32[] {
  %param_0.26 = f32[] parameter(0)
  %multiply.48 = f32[] multiply(f32[] %param_0.26, f32[] %param_0.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.43 = f32[] constant(1)
  %add.34 = f32[] add(f32[] %multiply.48, f32[] %constant.43), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %sqrt.4 = f32[] sqrt(f32[] %add.34), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.8 (param_0.28: f32[], param_1.42: c64[]) -> f32[] {
  %param_1.42 = c64[] parameter(1)
  %real.6 = f32[] real(c64[] %param_1.42), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.23 = f32[] abs(f32[] %real.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.44 = f32[] constant(1)
  %add.35 = f32[] add(f32[] %abs.23, f32[] %constant.44), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.21 = f32[] abs(f32[] %add.35), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.6 = f32[] imag(c64[] %param_1.42), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.22 = f32[] abs(f32[] %imag.6), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.6 = f32[] minimum(f32[] %abs.21, f32[] %abs.22), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %param_0.28 = f32[] parameter(0)
  ROOT %divide.9 = f32[] divide(f32[] %minimum.6, f32[] %param_0.28), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

%fused_computation.9 (param_0.32: c64[]) -> f32[] {
  %param_0.32 = c64[] parameter(0)
  %real.7 = f32[] real(c64[] %param_0.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.27 = f32[] abs(f32[] %real.7), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant.45 = f32[] constant(1)
  %add.36 = f32[] add(f32[] %abs.27, f32[] %constant.45), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.25 = f32[] abs(f32[] %add.36), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.7 = f32[] imag(c64[] %param_0.32), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.26 = f32[] abs(f32[] %imag.7), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %maximum.2 = f32[] maximum(f32[] %abs.25, f32[] %abs.26), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

ENTRY %main.129 (Arg_0.1: c64[]) -> c64[] {
  %Arg_0.1 = c64[] parameter(0), metadata={op_name="x"}
  %abs_maximum_fusion.1 = f32[] fusion(c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.9, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum_divide_fusion.1 = f32[] fusion(f32[] %abs_maximum_fusion.1, c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.8, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add_sqrt_fusion.1 = f32[] fusion(f32[] %minimum_divide_fusion.1), kind=kLoop, calls=%fused_computation.7, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply_divide_fusion = f32[] fusion(f32[] %abs_maximum_fusion.1, f32[] %add_sqrt_fusion.1, f32[] %minimum_divide_fusion.1, c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.2, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs_maximum_fusion = f32[] fusion(c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.6, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum_divide_fusion = f32[] fusion(f32[] %abs_maximum_fusion, c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.5, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add_sqrt_fusion = f32[] fusion(f32[] %minimum_divide_fusion), kind=kLoop, calls=%fused_computation.4, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare_and_fusion = pred[] fusion(c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.3, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select_select_fusion = f32[] fusion(pred[] %compare_and_fusion, f32[] %multiply_divide_fusion, f32[] %abs_maximum_fusion, f32[] %add_sqrt_fusion, f32[] %minimum_divide_fusion, /*index=5*/f32[] %abs_maximum_fusion.1, f32[] %add_sqrt_fusion.1, f32[] %minimum_divide_fusion.1, c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation.1, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %select_complex_fusion = c64[] fusion(pred[] %compare_and_fusion, f32[] %select_select_fusion, f32[] %abs_maximum_fusion, f32[] %add_sqrt_fusion, f32[] %minimum_divide_fusion, /*index=5*/f32[] %abs_maximum_fusion.1, f32[] %add_sqrt_fusion.1, f32[] %minimum_divide_fusion.1, c64[] %Arg_0.1), kind=kLoop, calls=%fused_computation, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

Data point 2
>>> import jax.numpy as jnp; from jax import jit
>>> jnp.array([1, 2]).device
CudaDevice(id=0)
>>> f=jit(jnp.asin)
>>> c=f.lower(jnp.complex64(0)).compile()
>>> print(c.as_text())

HloModule jit_asin, is_scheduled=true, entry_computation_layout={(c64[])->c64[]}, allow_spmd_sharding_propagation_to_parameters={true}, allow_spmd_sharding_propagation_to_output={true}, frontend_attributes={fingerprint_before_lhs="9d6cb0a0fcb21ff1949b69eda0bac884"}

%fused_complex (param_0.3: c64[]) -> c64[] {
  %param_0.3 = c64[] parameter(0)
  %real.2.1 = f32[] real(c64[] %param_0.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.8.1 = f32[] abs(f32[] %real.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %imag.2.1 = f32[] imag(c64[] %param_0.3), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.9.1 = f32[] abs(f32[] %imag.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %maximum.6.1 = f32[] maximum(f32[] %abs.8.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_7_1 = f32[] constant(2.30584287e+18)
  %compare.39.1 = pred[] compare(f32[] %maximum.6.1, f32[] %constant_7_1), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_14_1 = f32[] constant(1)
  %compare.40.1 = pred[] compare(f32[] %abs.8.1, f32[] %constant_14_1), direction=LE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.43.1 = f32[] add(f32[] %abs.8.1, f32[] %constant_14_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.10.1 = f32[] abs(f32[] %add.43.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %maximum.7.1 = f32[] maximum(f32[] %abs.10.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.4.1 = f32[] minimum(f32[] %abs.10.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.41.1 = pred[] compare(f32[] %maximum.7.1, f32[] %minimum.4.1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_12_1 = f32[] constant(1.41421354)
  %multiply.50.1 = f32[] multiply(f32[] %maximum.7.1, f32[] %constant_12_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.20.1 = f32[] divide(f32[] %minimum.4.1, f32[] %maximum.7.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.51.1 = f32[] multiply(f32[] %divide.20.1, f32[] %divide.20.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.44.1 = f32[] add(f32[] %multiply.51.1, f32[] %constant_14_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.10.1 = f32[] sqrt(f32[] %add.44.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.42.1 = pred[] compare(f32[] %sqrt.10.1, f32[] %constant_14_1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_11_1 = f32[] constant(0)
  %compare.43.1 = pred[] compare(f32[] %multiply.51.1, f32[] %constant_11_1), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.8.1 = pred[] and(pred[] %compare.42.1, pred[] %compare.43.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.52.1 = f32[] multiply(f32[] %maximum.7.1, f32[] %multiply.51.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_13_1 = f32[] constant(0.5)
  %multiply.53.1 = f32[] multiply(f32[] %multiply.52.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.45.1 = f32[] add(f32[] %maximum.7.1, f32[] %multiply.53.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.54.1 = f32[] multiply(f32[] %maximum.7.1, f32[] %sqrt.10.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.32.1 = f32[] select(pred[] %and.8.1, f32[] %add.45.1, f32[] %multiply.54.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.33.1 = f32[] select(pred[] %compare.41.1, f32[] %multiply.50.1, f32[] %select.32.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_15_1 = f32[] constant(-1)
  %add.46.1 = f32[] add(f32[] %abs.8.1, f32[] %constant_15_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %abs.11.1 = f32[] abs(f32[] %add.46.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %maximum.8.1 = f32[] maximum(f32[] %abs.11.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %minimum.5.1 = f32[] minimum(f32[] %abs.11.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.44.1 = pred[] compare(f32[] %maximum.8.1, f32[] %minimum.5.1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.56.1 = f32[] multiply(f32[] %maximum.8.1, f32[] %constant_12_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.21.1 = f32[] divide(f32[] %minimum.5.1, f32[] %maximum.8.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.57.1 = f32[] multiply(f32[] %divide.21.1, f32[] %divide.21.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.47.1 = f32[] add(f32[] %multiply.57.1, f32[] %constant_14_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.11.1 = f32[] sqrt(f32[] %add.47.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.45.1 = pred[] compare(f32[] %sqrt.11.1, f32[] %constant_14_1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.47.1 = pred[] compare(f32[] %multiply.57.1, f32[] %constant_11_1), direction=GT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.9.1 = pred[] and(pred[] %compare.45.1, pred[] %compare.47.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.59.1 = f32[] multiply(f32[] %maximum.8.1, f32[] %multiply.57.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.60.1 = f32[] multiply(f32[] %multiply.59.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.48.1 = f32[] add(f32[] %maximum.8.1, f32[] %multiply.60.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.61.1 = f32[] multiply(f32[] %maximum.8.1, f32[] %sqrt.11.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.34.1 = f32[] select(pred[] %and.9.1, f32[] %add.48.1, f32[] %multiply.61.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.35.1 = f32[] select(pred[] %compare.44.1, f32[] %multiply.56.1, f32[] %select.34.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.49.1 = f32[] add(f32[] %select.33.1, f32[] %select.35.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.63.1 = f32[] multiply(f32[] %add.49.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.51.1 = f32[] add(f32[] %multiply.63.1, f32[] %abs.8.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.66.1 = f32[] multiply(f32[] %add.51.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.67.1 = f32[] multiply(f32[] %imag.2.1, f32[] %imag.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.52.1 = f32[] add(f32[] %select.33.1, f32[] %add.43.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.22.1 = f32[] divide(f32[] %multiply.67.1, f32[] %add.52.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %subtract.2.1 = f32[] subtract(f32[] %select.35.1, f32[] %add.46.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.53.1 = f32[] add(f32[] %divide.22.1, f32[] %subtract.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.68.1 = f32[] multiply(f32[] %multiply.66.1, f32[] %add.53.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.12.1 = f32[] sqrt(f32[] %multiply.68.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.23.1 = f32[] divide(f32[] %multiply.66.1, f32[] %add.52.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.54.1 = f32[] add(f32[] %select.35.1, f32[] %add.46.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.24.1 = f32[] divide(f32[] %multiply.66.1, f32[] %add.54.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.55.1 = f32[] add(f32[] %divide.23.1, f32[] %divide.24.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.13.1 = f32[] sqrt(f32[] %add.55.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.69.1 = f32[] multiply(f32[] %abs.9.1, f32[] %sqrt.13.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.36.1 = f32[] select(pred[] %compare.40.1, f32[] %sqrt.12.1, f32[] %multiply.69.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.37.1 = f32[] select(pred[] %compare.39.1, f32[] %abs.9.1, f32[] %select.36.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %atan2.2.1 = f32[] atan2(f32[] %real.2.1, f32[] %select.37.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.48.1 = pred[] compare(f32[] %imag.2.1, f32[] %constant_11_1), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_6_1 = f32[] constant(2.30584285e+30)
  %compare.49.1 = pred[] compare(f32[] %abs.8.1, f32[] %constant_6_1), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_5_1 = f32[] constant(2.30584274e+12)
  %constant_4_1 = f32[] constant(2.30584283e+20)
  %select.38.1 = f32[] select(pred[] %compare.49.1, f32[] %constant_5_1, f32[] %constant_4_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.50.1 = pred[] compare(f32[] %abs.9.1, f32[] %select.38.1), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.39.1 = f32[] select(pred[] %compare.50.1, f32[] %abs.9.1, f32[] %abs.8.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.42.1 = f32[] select(pred[] %compare.50.1, f32[] %select.38.1, f32[] %constant_7_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.51.1 = pred[] compare(f32[] %select.39.1, f32[] %select.42.1), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log.2.1 = f32[] log(f32[] %select.39.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_3_1 = f32[] constant(0.693147182)
  %add.56.1 = f32[] add(f32[] %log.2.1, f32[] %constant_3_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_9_1 = f32[] constant(inf)
  %compare.54.1 = pred[] compare(f32[] %abs.9.1, f32[] %constant_9_1), direction=EQ, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %not.2.1 = pred[] not(pred[] %compare.54.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.10.1 = pred[] and(pred[] %compare.50.1, pred[] %not.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.25.1 = f32[] divide(f32[] %abs.8.1, f32[] %abs.9.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.43.1 = f32[] select(pred[] %and.10.1, f32[] %divide.25.1, f32[] %constant_11_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.71.1 = f32[] multiply(f32[] %select.43.1, f32[] %select.43.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log-plus-one.4.1 = f32[] log-plus-one(f32[] %multiply.71.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.72.1 = f32[] multiply(f32[] %log-plus-one.4.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.58.1 = f32[] add(f32[] %add.56.1, f32[] %multiply.72.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_2_1 = f32[] constant(4.33680869e-19)
  %compare.55.1 = pred[] compare(f32[] %abs.9.1, f32[] %constant_2_1), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.56.1 = pred[] compare(f32[] %abs.8.1, f32[] %constant_14_1), direction=LT, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %and.11.1 = pred[] and(pred[] %compare.55.1, pred[] %compare.56.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.73.1 = f32[] multiply(f32[] %add.43.1, f32[] %add.46.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.59.1 = f32[] add(f32[] %multiply.63.1, f32[] %constant_14_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.26.1 = f32[] divide(f32[] %multiply.73.1, f32[] %add.59.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %negate.6.1 = f32[] negate(f32[] %divide.26.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %compare.57.1 = pred[] compare(f32[] %abs.8.1, f32[] %constant_14_1), direction=GE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.74.1 = f32[] multiply(f32[] %multiply.67.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.27.1 = f32[] divide(f32[] %multiply.74.1, f32[] %add.52.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.75.1 = f32[] multiply(f32[] %add.54.1, f32[] %constant_13_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.60.1 = f32[] add(f32[] %divide.27.1, f32[] %multiply.75.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %constant_8_1 = f32[] constant(1.5)
  %compare.58.1 = pred[] compare(f32[] %multiply.63.1, f32[] %constant_8_1), direction=LE, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.28.1 = f32[] divide(f32[] %multiply.74.1, f32[] %subtract.2.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.62.1 = f32[] add(f32[] %divide.27.1, f32[] %divide.28.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.64.1 = f32[] add(f32[] %multiply.63.1, f32[] %constant_15_1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.44.1 = f32[] select(pred[] %compare.58.1, f32[] %add.62.1, f32[] %add.64.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.45.1 = f32[] select(pred[] %compare.57.1, f32[] %add.60.1, f32[] %select.44.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.46.1 = f32[] select(pred[] %and.11.1, f32[] %negate.6.1, f32[] %select.45.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %multiply.76.1 = f32[] multiply(f32[] %select.46.1, f32[] %add.59.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %sqrt.14.1 = f32[] sqrt(f32[] %multiply.76.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %divide.30.1 = f32[] divide(f32[] %abs.9.1, f32[] %sqrt.14.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %add.65.1 = f32[] add(f32[] %select.46.1, f32[] %sqrt.14.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %log-plus-one.5.1 = f32[] log-plus-one(f32[] %add.65.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.47.1 = f32[] select(pred[] %and.11.1, f32[] %divide.30.1, f32[] %log-plus-one.5.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.48.1 = f32[] select(pred[] %compare.51.1, f32[] %add.58.1, f32[] %select.47.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %negate.7.1 = f32[] negate(f32[] %select.48.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  %select.49.1 = f32[] select(pred[] %compare.48.1, f32[] %negate.7.1, f32[] %select.48.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
  ROOT %complex.2.1 = c64[] complex(f32[] %atan2.2.1, f32[] %select.49.1), metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

ENTRY %main.129 (Arg_0.1.0: c64[]) -> c64[] {
  %Arg_0.1.0 = c64[] parameter(0), metadata={op_name="x"}
  ROOT %loop_complex_fusion = c64[] fusion(c64[] %Arg_0.1.0), kind=kLoop, calls=%fused_complex, metadata={op_name="jit(asin)/jit(main)/asin" source_file="<stdin>" source_line=1}
}

Data point 3
From https://github.com/openxla/xla/blob/0c9760db4399ded975e118f310f6976a60fcdc74/xla/mlir_hlo/tests/Dialect/chlo/chlo_legalize_to_mhlo.mlir#L76-L100

// CHECK-LABEL: func.func @asin_complex_f32(
// CHECK-SAME:   %[[TEMP_arg0:.*]]: tensor<complex<f32>>) -> tensor<complex<f32>>
// CHECK: %[[TEMP_0:.*]] = mhlo.real %[[TEMP_arg0:.*]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK: %[[TEMP_1:.*]] = mhlo.real %[[TEMP_arg0:.*]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK: %[[TEMP_2:.*]] = mhlo.abs %[[TEMP_1]] : tensor<f32>
// CHECK: %[[TEMP_3:.*]] = mhlo.imag %[[TEMP_arg0:.*]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK: %[[TEMP_4:.*]] = mhlo.abs %[[TEMP_3]] : tensor<f32>
// CHECK: %[[TEMP_5:.*]] = mhlo.maximum %[[TEMP_2]], %[[TEMP_4]] : tensor<f32>
// CHECK: %[[TEMP_6:.*]] = mhlo.constant dense<3.40282347E+38> : tensor<f32>
// CHECK: %[[TEMP_7:.*]] = mhlo.sqrt %[[TEMP_6]] : tensor<f32>
// CHECK: %[[TEMP_8:.*]] = mhlo.constant dense<8.000000e+00> : tensor<f32>
// CHECK: %[[TEMP_9:.*]] = mhlo.divide %[[TEMP_7]], %[[TEMP_8]] : tensor<f32>
// CHECK: %[[TEMP_10:.*]] = mhlo.compare  GE, %[[TEMP_5]], %[[TEMP_9]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK: %[[TEMP_11:.*]] = mhlo.constant dense<1.000000e+00> : tensor<f32>
// CHECK: %[[TEMP_12:.*]] = mhlo.compare  LE, %[[TEMP_2]], %[[TEMP_11]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK: %[[TEMP_13:.*]] = mhlo.constant dense<5.000000e-01> : tensor<f32>
// CHECK: %[[TEMP_14:.*]] = mhlo.add %[[TEMP_2]], %[[TEMP_11]] : tensor<f32>
// CHECK: %[[TEMP_15:.*]] = mhlo.abs %[[TEMP_14]] : tensor<f32>
// CHECK: %[[TEMP_16:.*]] = mhlo.maximum %[[TEMP_15]], %[[TEMP_4]] : tensor<f32>
// CHECK: %[[TEMP_17:.*]] = mhlo.minimum %[[TEMP_15]], %[[TEMP_4]] : tensor<f32>
// CHECK: %[[TEMP_18:.*]] = mhlo.compare  EQ, %[[TEMP_16]], %[[TEMP_17]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK: %[[TEMP_19:.*]] = mhlo.constant dense<1.41421354> : tensor<f32>
// CHECK: %[[TEMP_20:.*]] = mhlo.multiply %[[TEMP_19]], %[[TEMP_16]] : tensor<f32>
// CHECK: %[[TEMP_21:.*]] = mhlo.divide %[[TEMP_17]], %[[TEMP_16]] : tensor<f32>
// CHECK: %[[TEMP_22:.*]] = mhlo.multiply %[[TEMP_21]], %[[TEMP_21]] : tensor<f32>
// CHECK: %[[TEMP_23:.*]] = mhlo.add %[[TEMP_11]], %[[TEMP_22]] : tensor<f32>
// CHECK: %[[TEMP_24:.*]] = mhlo.sqrt %[[TEMP_23]] : tensor<f32>
// CHECK: %[[TEMP_25:.*]] = mhlo.compare  EQ, %[[TEMP_24]], %[[TEMP_11]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK: %[[TEMP_26:.*]] = mhlo.constant dense<0.000000e+00> : tensor<f32>
// CHECK: %[[TEMP_27:.*]] = mhlo.compare  GT, %[[TEMP_22]], %[[TEMP_26]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK: %[[TEMP_28:.*]] = mhlo.and %[[TEMP_25]], %[[TEMP_27]] : tensor<i1>
// CHECK: %[[TEMP_29:.*]] = mhlo.multiply %[[TEMP_16]], %[[TEMP_22]] : tensor<f32>
// CHECK: %[[TEMP_30:.*]] = mhlo.constant dense<2.000000e+00> : tensor<f32>
// CHECK: %[[TEMP_31:.*]] = mhlo.divide %[[TEMP_29]], %[[TEMP_30]] : tensor<f32>
// CHECK: %[[TEMP_32:.*]] = mhlo.add %[[TEMP_16]], %[[TEMP_31]] : tensor<f32>
// CHECK: %[[TEMP_33:.*]] = mhlo.multiply %[[TEMP_16]], %[[TEMP_24]] : tensor<f32>
// CHECK: %[[TEMP_34:.*]] = mhlo.select %[[TEMP_28]], %[[TEMP_32]], %[[TEMP_33]] : tensor<i1>, tensor<f32>
// CHECK: %[[TEMP_35:.*]] = mhlo.select %[[TEMP_18]], %[[TEMP_20]], %[[TEMP_34]] : tensor<i1>, tensor<f32>
// CHECK: %[[TEMP_36:.*]] = mhlo.subtract %[[TEMP_2]], %[[TEMP_11]] : tensor<f32>
// CHECK: %[[TEMP_37:.*]] = mhlo.abs %[[TEMP_36]] : tensor<f32>
// CHECK: %[[TEMP_38:.*]] = mhlo.maximum %[[TEMP_37]], %[[TEMP_4]] : tensor<f32>
...

Data point 4
From https://github.com/openxla/stablehlo/blob/9e0c9e34d02af255bfe8f896ba7dc910758c6ecf/stablehlo/tests/chlo/chlo_legalize_to_stablehlo.mlir#L79

// CHECK-LABEL:   func.func @asin_complex_f32(
// CHECK-SAME:                                %[[VAL_0:.*]]: tensor<complex<f32>>) -> tensor<complex<f32>> {
// CHECK:           %[[VAL_1:.*]] = stablehlo.real %[[VAL_0]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK:           %[[VAL_2:.*]] = stablehlo.real %[[VAL_0]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK:           %[[VAL_3:.*]] = stablehlo.abs %[[VAL_2]] : tensor<f32>
// CHECK:           %[[VAL_4:.*]] = stablehlo.imag %[[VAL_0]] : (tensor<complex<f32>>) -> tensor<f32>
// CHECK:           %[[VAL_5:.*]] = stablehlo.abs %[[VAL_4]] : tensor<f32>
// CHECK:           %[[VAL_6:.*]] = stablehlo.maximum %[[VAL_3]], %[[VAL_5]] : tensor<f32>
// CHECK:           %[[VAL_7:.*]] = stablehlo.constant dense<3.40282347E+38> : tensor<f32>
// CHECK:           %[[VAL_8:.*]] = stablehlo.sqrt %[[VAL_7]] : tensor<f32>
// CHECK:           %[[VAL_9:.*]] = stablehlo.constant dense<8.000000e+00> : tensor<f32>
// CHECK:           %[[VAL_10:.*]] = stablehlo.divide %[[VAL_8]], %[[VAL_9]] : tensor<f32>
// CHECK:           %[[VAL_11:.*]] = stablehlo.compare  GE, %[[VAL_6]], %[[VAL_10]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK:           %[[VAL_12:.*]] = stablehlo.constant dense<1.000000e+00> : tensor<f32>
// CHECK:           %[[VAL_13:.*]] = stablehlo.compare  LE, %[[VAL_3]], %[[VAL_12]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK:           %[[VAL_14:.*]] = stablehlo.constant dense<5.000000e-01> : tensor<f32>
// CHECK:           %[[VAL_15:.*]] = stablehlo.add %[[VAL_3]], %[[VAL_12]] : tensor<f32>
// CHECK:           %[[VAL_16:.*]] = stablehlo.abs %[[VAL_15]] : tensor<f32>
// CHECK:           %[[VAL_17:.*]] = stablehlo.maximum %[[VAL_16]], %[[VAL_5]] : tensor<f32>
// CHECK:           %[[VAL_18:.*]] = stablehlo.minimum %[[VAL_16]], %[[VAL_5]] : tensor<f32>
// CHECK:           %[[VAL_19:.*]] = stablehlo.compare  EQ, %[[VAL_17]], %[[VAL_18]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK:           %[[VAL_20:.*]] = stablehlo.constant dense<1.41421354> : tensor<f32>
// CHECK:           %[[VAL_21:.*]] = stablehlo.multiply %[[VAL_20]], %[[VAL_17]] : tensor<f32>
// CHECK:           %[[VAL_22:.*]] = stablehlo.divide %[[VAL_18]], %[[VAL_17]] : tensor<f32>
// CHECK:           %[[VAL_23:.*]] = stablehlo.multiply %[[VAL_22]], %[[VAL_22]] : tensor<f32>
// CHECK:           %[[VAL_24:.*]] = stablehlo.add %[[VAL_12]], %[[VAL_23]] : tensor<f32>
// CHECK:           %[[VAL_25:.*]] = stablehlo.sqrt %[[VAL_24]] : tensor<f32>
// CHECK:           %[[VAL_26:.*]] = stablehlo.compare  EQ, %[[VAL_25]], %[[VAL_12]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK:           %[[VAL_27:.*]] = stablehlo.constant dense<0.000000e+00> : tensor<f32>
// CHECK:           %[[VAL_28:.*]] = stablehlo.compare  GT, %[[VAL_23]], %[[VAL_27]] : (tensor<f32>, tensor<f32>) -> tensor<i1>
// CHECK:           %[[VAL_29:.*]] = stablehlo.and %[[VAL_26]], %[[VAL_28]] : tensor<i1>
// CHECK:           %[[VAL_30:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_23]] : tensor<f32>
// CHECK:           %[[VAL_31:.*]] = stablehlo.constant dense<2.000000e+00> : tensor<f32>
// CHECK:           %[[VAL_32:.*]] = stablehlo.divide %[[VAL_30]], %[[VAL_31]] : tensor<f32>
// CHECK:           %[[VAL_33:.*]] = stablehlo.add %[[VAL_17]], %[[VAL_32]] : tensor<f32>
// CHECK:           %[[VAL_34:.*]] = stablehlo.multiply %[[VAL_17]], %[[VAL_25]] : tensor<f32>
// CHECK:           %[[VAL_35:.*]] = stablehlo.select %[[VAL_29]], %[[VAL_33]], %[[VAL_34]] : tensor<i1>, tensor<f32>
// CHECK:           %[[VAL_36:.*]] = stablehlo.select %[[VAL_19]], %[[VAL_21]], %[[VAL_35]] : tensor<i1>, tensor<f32>
// CHECK:           %[[VAL_37:.*]] = stablehlo.subtract %[[VAL_3]], %[[VAL_12]] : tensor<f32>
// CHECK:           %[[VAL_38:.*]] = stablehlo.abs %[[VAL_37]] : tensor<f32>
...

When disabling subnormals in tests:
./functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cuda-complex64]
  -inf    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121
  -4e35   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112221
  -5e32   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222211
  -5e29   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112211111
  -6e26   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222211111
  -6e23   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112121112211
  -8e20   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111122112122211121
  -9e17   1=111111221111111111111111111111111111111111111111111111111111111111111111111111111113322111211211211
  -1e15   1=111111111111111111111111111111111111111111111111111111111111111111111111111111111222321111122111111
  -1e12   1=111111111111111111111111111111111111111111111111111111111111111111111111111111112222232111111212211
  -1e9    1=1111111111111111111111111===============================================111112232311231112112211111
  -1e6    1=11111111111111111111111111============================================11111122321212222111121111111
  -2e3    1=11111111111111==11111111211111111111111111111111111111111111111111111111112222331212221111112111211
  -2      1=11111111111111==11111112222222222222222222222222222222222222222222222222222322321312322112122211121
  -2e-3   1=11111111111111==11111112222221111111111111111111111111111111111111112222232222221312331111111111211
  -2e-6   1=11111111111111==1111=11122111=======================================1112122222331312331112122111111
  -3e-9   1=11111111111111==1111=11111111=======================================1111222222321311321111111111111
  -3e-12  1=11111111111111==1111=111111111111111111111111111111111111111111111111111223222331312221111111111111
  -3e-15  1=11111111111111==1111=11111111=======================================1112222222321211222111111111111
  -4e-18  1=11111111111111==1111=11122222=======================================22222222222313122211=1111111111
  -4e-21  1=11111111111111==1111=11232222=======================================22222222223212122111=1111111111
  -5e-24  1=11111111111111==1111=11222222=======================================2222222212231311=111=1111111111
  -5e-27  1=11111111111111==1111=11222222=======================================22222232223211=1=111=1111111111
  -6e-30  1=11111111111111==1111=11233222=======================================2222223222311==1=111=1111111111
  -7e-33  1=11111111111111==1111=11232222=======================================22222232111=1==1=111=1111111111
  -8e-36  1=11111111111111==1111=11222222=======================================22222222==1=1==1=111=1111111111
  0       1=11111111111111==1111=11232222=======================================22222321==1=1==1=111=1111111111
  8e-36   1=11111111111111==1111=11232222=======================================22222222211=1==1=111=1111111111
  7e-33   1=11111111111111==1111=11233222=======================================2222232222211==1=111=1111111111
  6e-30   1=11111111111111==1111=11232222=======================================2222222222321==1=111=1111111111
  6e-27   1=11111111111111==1111=11222222=======================================2222222222321311=111=1111111111
  5e-24   1=11111111111111==1111=11233222=======================================22222222223313122111=1111111111
  5e-21   1=11111111111111==1111=1123222211111111111111111111111111111111111111122222232223213122211=1111111111
  4e-18   1=11111111111111==1111=111121111111111111111111111111111111111111111111112122222231312232111111111111
  3e-15   1=11111111111111==1111=111121111111111111111111111111111111111111111111111132222321312322111111111111
  3e-12   1=11111111111111==1111=111121111111111111111111111111111111111111111111112122222331312331111111111111
  3e-9    1=11111111111111==1111=111121111111111111111111111111111111111111111111112122222221311222111112211111
  3e-6    1=11111111111111==11111112222121111111111111111111111111111111111111112222222222321312221111122211111
  2e-3    1=11111111111111==11111113222211111111111111111111111111111111111111111222322222221311221111111112211
  2       1=11111111111111==11111111121111111111111111111111111111111111111111111111123222321212222111122211111
  2e3     1=111111111111111111111111111111111111111111111111111111111111111111111111111122331312221111112211111
  2e6     1=111111111111111111111111111111111111111111111111111111111111111111111111111111232312231111112211111
  2e9     1=111111111111111111111111111111111111111111111111111111111111111111111111111111112222222111122211111
  1e12    1=111111222111111111111111111111111111111111111111111111111111111111111111111111111222331211211112111
  1e15    1=111111111111111111111111111111111111111111111111111111111111111111111111111111111112222111112211111
  1e18    11111111211111111111111111111111111111111111111111111111111111111111111111111111111111122211212111111
  1e21    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111211111211211
  9e23    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222211121
  8e26    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122211211
  7e29    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121211
  6e32    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112211
  6e35    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122
          -inf  -3e29 -2e20 -2e11 -1e2  -1e-7 -1e-1 -8e-2 -6e-3 2e-33 3e-24 3e-15 4e-6  5e3   7e12  9e21  1e31

When enabling subnormal samples [CPU]:
./functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cpu-complex64]
  -inf    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -4e35   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -4e32   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -5e29   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -5e26   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -6e23   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -6e20   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  -7e17   11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  -8e14   11111112122111111111111111111111111111111111111111111111111111111111111111111111111111111221211111111
  -9e11   11111111111111==11111111111111111111111111111111111=========================111=111111=11111111111111
  -9e8    11111111111111====111111111111111111111111111111111111111111111111111111111111112111===11111111111111
  -1e6    11111111111111======1111111111111111111111111111111=====================11111122211====11111111111111
  -1e3    11111111111111======1111112222111111111111111111111111111111111111111112221122211======1111111111111E
  -1      11111111111111======11111222222111111111111111111111111111111111111111222232221========11111111111EEE
  -1e-3   11111111111111======11111232122111111111111111111111111111111111111111221222221========111111111EEEEE
  -2e-6   11111111111111======1111111111111111111111111111111===================111112221========1111111EEEEEE!
  -2e-9   11111111111111======1111111111111111111111111111111===================111112221========11111EEEEEE!31
  -2e-12  11111111111111======1111111111111111111111111111111===================111112221========1111EEEEE!!111
  -2e-15  11111111111111======1111111111111111111111111111111===================111112221========11EEEEE!!11111
  -2e-18  11111111111111======1111111111111111111111111111111===================111112221========EEEEE!!1111111
  -2e-21  11111111111111======1111112111111111111111111111111===================111112221======EEEEE!!111111111
  -3e-24  11111111111111======1111111111111111111111111111111===================111112221====EEEEE!!11111111111
  -3e-27  11111111111111======1111112111111111111111111111111===================111112221==EEEEEE!1111111111111
  -3e-30  11111111111111======1111111111111111111111111111111===================111112221EEEEEE!=11111111111111
  -4e-33  11111111111111======1111112111111111111111111111111===================1111122EEEEEE!===11111111111111
  -4e-36  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
  0       11111111111111======11111EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!=====11111111111111
  4e-36   11111111111111======1111112111111111111111111111111===================1111122EEEEEE!===11111111111111
  4e-33   11111111111111======1111111111111111111111111111111===================111112221EEEEEE!=11111111111111
  3e-30   11111111111111======1111112111111111111111111111111===================111112221==EEEEE!!1111111111111
  3e-27   11111111111111======1111111111111111111111111111111===================111112221====EEEEE!!11111111111
  3e-24   11111111111111======1111111111111111111111111111111===================111112221======EEEEE!!111111111
  3e-21   11111111111111======1111112111111111111111111111111===================111112221========EEEEE!!1111111
  2e-18   11111111111111======1111111111111111111111111111111===================111112221========11EEEEE!!11111
  2e-15   11111111111111======1111111111111111111111111111111===================111112221========111EEEEEE!3111
  2e-12   11111111111111======1111111111111111111111111111111===================111112221========11111EEEEEE!31
  2e-9    11111111111111======1111111111111111111111111111111===================111112221========1111111EEEEEE!
  2e-6    11111111111111======11111222222111111111111111111111111111111111111111222222221========111111111EEEEE
  2e-3    11111111111111======111112222221111111111111111111111111111111111111112223323311=======11111111111EEE
  2       11111111111111======111112111111111111111111111111111111111111111111111111212211=======1111111111111E
  1e3     11111111111111=====11111111111111111111111111111111=====================11111122211====11111111111111
  1e6     11111111111111====111111111111111111111111111111111=======================1111112111===11111111111111
  1e9     11111111111111==11111111111111111111111111111111111=========================1111111111=11111111111111
  1e12    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  1e15    11111112122111111111111111111111111111111111111111111111111111111111111111111111111111111121211111111
  9e17    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  8e20    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  8e23    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  7e26    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  6e29    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  6e32    11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  5e35    111111111111111111111111111111111111111111111111111===========================================11=1111
          -inf  -3e29 -2e20 -1e11 -1e2  -8e-8 -6e-1 -4e-2 -3e-3 1e-33 1e-24 2e-15 3e-6  4e3   5e12  8e21  1e31

| ULP-difference |                                z |            jax:acos(z) |         mpmath:acos(z) |          numpy:acos(z) |             fa:acos(z) |
| -------------- | -------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
|     4294967296 |            (-inf-1.1551101e-38j) |       (3.1415927-infj) |       (3.1415927+infj) |       (3.1415927+infj) |       (3.1415927+infj) |
|     4294967296 |             (inf-1.1551101e-38j) |                  -infj |                   infj |                   infj |                   infj |
|     2237116610 | (-1.03440016e+37-1.1551101e-38j) | (3.1415927-85.922615j) | (3.1415927+85.922615j) | (3.1415927+85.922615j) | (3.1415927+85.922615j) |
|     2237115934 |   (1.0317341e+37-1.1551101e-38j) |             -85.92004j |              85.92004j |              85.92004j |              85.92004j |
|     2236200639 |  (-3.1419312e+35-1.1551101e-38j) |  (3.1415927-82.42846j) |  (3.1415927+82.42847j) |  (3.1415927+82.42846j) |  (3.1415927+82.42846j) |
|     2236199245 |   (3.1252682e+35-1.1551101e-38j) |             -82.42314j |              82.42315j |              82.42314j |              82.42314j |
|     2235284450 |   (-9.535506e+33-1.1551101e-38j) |  (3.1415927-78.93348j) |  (3.1415927+78.93348j) |  (3.1415927+78.93348j) |  (3.1415927+78.93348j) |
|     2235282294 |   (9.4573977e+33-1.1551101e-38j) |            -78.925255j |             78.925255j |             78.925255j |             78.925255j |
|     2234368029 |  (-2.8913991e+32-1.1551101e-38j) |  (3.1415927-75.43761j) | (3.1415927+75.437614j) |  (3.1415927+75.43761j) |  (3.1415927+75.43761j) |
|     2234365062 |   (2.8588539e+32-1.1551101e-38j) |             -75.42629j |              75.42629j |              75.42629j |              75.42629j |
|     2233451363 |  (-8.7592267e+30-1.1551101e-38j) |   (3.1415927-71.9408j) |  (3.1415927+71.94081j) |   (3.1415927+71.9408j) |   (3.1415927+71.9408j) |
|     2233447530 |   (8.6320967e+30-1.1551101e-38j) |            -71.926186j |             71.926186j |             71.926186j |             71.926186j |
|     2232534436 |  (-2.6508847e+29-1.1551101e-38j) |  (3.1415927-68.44301j) |  (3.1415927+68.44301j) |  (3.1415927+68.44301j) |  (3.1415927+68.44301j) |
|     2232529678 |    (2.603211e+29-1.1551101e-38j) |             -68.42486j |              68.42486j |              68.42486j |              68.42486j |
|     2231617230 |  (-8.0140974e+27-1.1551101e-38j) | (3.1415927-64.944145j) | (3.1415927+64.944145j) | (3.1415927+64.944145j) | (3.1415927+64.944145j) |
|     2231611482 |   (7.8402865e+27-1.1551101e-38j) |             -64.92222j |              64.92222j |              64.92222j |              64.92222j |
|     2230029726 |  (-2.4200562e+26-1.1551101e-38j) |  (3.1415927-61.44415j) |  (3.1415927+61.44415j) |  (3.1415927+61.44415j) |  (3.1415927+61.44415j) |
|     2230016103 |   (2.3579809e+26-1.1551101e-38j) |            -61.418163j |             61.418167j |             61.418163j |             61.418163j |
|     2228194083 |  (-7.2990844e+24-1.1551101e-38j) | (3.1415927-57.942936j) |  (3.1415927+57.94294j) | (3.1415927+57.942936j) | (3.1415927+57.942936j) |
|     2228178168 |   (7.0808513e+24-1.1551101e-38j) |            -57.912582j |             57.912582j |             57.912582j |             57.912582j |
|            ... |                              ... |                    ... |                    ... |                    ... |                    ... |

Here is the tail of the table:
../functional_algorithms-4/functional_algorithms/tests/test_accuracy.py::test_unary[acos-jax-cpu-complex64]
<SNIP>
|            284 |        (6.821452e+18-2.71583e-24j) |              44.05975j |        (3.98e-43+44.05975j) |        (3.98e-43+44.05975j) |        (3.98e-43+44.05975j) |
|            263 |  (6125431400000000+2.2580793e-27j) |            -37.044373j |       (3.69e-43-37.044373j) |       (3.69e-43-37.044373j) |       (3.69e-43-37.044373j) |
|            235 |     (7.5473535e+21-2.4872412e-21j) |              51.06863j |         (3.3e-43+51.06863j) |         (3.3e-43+51.06863j) |         (3.3e-43+51.06863j) |
|            215 |      (6.821452e+18+2.0567736e-24j) |             -44.05975j |        (3.01e-43-44.05975j) |        (3.01e-43-44.05975j) |        (3.01e-43-44.05975j) |
|            193 |      (8.304169e+24-2.2461159e-18j) |             58.071945j |        (2.7e-43+58.071945j) |        (2.7e-43+58.071945j) |        (2.7e-43+58.071945j) |
|            174 |     (7.5473535e+21+1.8445043e-21j) |             -51.06863j |        (2.44e-43-51.06863j) |        (2.44e-43-51.06863j) |        (2.44e-43-51.06863j) |
|            156 |      (9.092964e+27-1.9919841e-15j) |              65.07044j |        (2.19e-43+65.07044j) |        (2.19e-43+65.07044j) |        (2.19e-43+65.07044j) |
|            144 |      (8.304169e+24+1.6777925e-18j) |            -58.071945j |       (2.02e-43-58.071945j) |       (2.02e-43-58.071945j) |       (2.02e-43-58.071945j) |
|            128 |      (9.914838e+30-1.7716747e-12j) |              72.06473j |        (1.8e-43+72.064735j) |         (1.8e-43+72.06473j) |         (1.8e-43+72.06473j) |
|            124 |      (9.092964e+27+1.5808891e-15j) |             -65.07044j |        (1.74e-43-65.07044j) |        (1.74e-43-65.07044j) |        (1.74e-43-65.07044j) |
|            106 |     (1.1157256e+34-1.6526939e-09j) |             79.090546j |       (1.49e-43+79.090546j) |       (1.49e-43+79.090546j) |       (1.49e-43+79.090546j) |
|            106 |      (9.914838e+30+1.4783679e-12j) |             -72.06473j |       (1.49e-43-72.064735j) |        (1.49e-43-72.06473j) |        (1.49e-43-72.06473j) |
|             88 |     (1.1157256e+34+1.3700151e-09j) |            -79.090546j |       (1.23e-43-79.090546j) |       (1.23e-43-79.090546j) |       (1.23e-43-79.090546j) |
|             86 |     (1.2690962e+37-1.5269815e-06j) |               86.1271j |          (1.2e-43+86.1271j) |          (1.2e-43+86.1271j) |          (1.2e-43+86.1271j) |
|             71 |     (1.2690962e+37+1.2556098e-06j) |              -86.1271j |            (1e-43-86.1271j) |            (1e-43-86.1271j) |            (1e-43-86.1271j) |
|             16 |       (162390670000-3.580226e-33j) |             26.506418j |        (2.2e-44+26.506418j) |        (2.2e-44+26.506418j) |        (2.2e-44+26.506418j) |
|             14 |         (142606340+2.8001274e-36j) |            -19.468746j |          (2e-44-19.468746j) |          (2e-44-19.468746j) |          (2e-44-19.468746j) |
|             12 |    (183042500000000-3.137204e-30j) |             33.533886j |        (1.7e-44+33.533886j) |        (1.7e-44+33.533886j) |        (1.7e-44+33.533886j) |
|             12 |      (162390670000+2.6293777e-33j) |            -26.506418j |        (1.7e-44-26.506418j) |        (1.7e-44-26.506418j) |        (1.7e-44-26.506418j) |
|             10 |     (2.0459209e+17-2.9323373e-27j) |              40.55294j |         (1.4e-44+40.55294j) |         (1.4e-44+40.55294j) |         (1.4e-44+40.55294j) |
|             10 |   (183042500000000+2.4488192e-30j) |            -33.533886j |        (1.4e-44-33.533886j) |        (1.4e-44-33.533886j) |        (1.4e-44-33.533886j) |
|              9 |       (2.2707063e+20-2.71583e-24j) |             47.564938j |         (1.3e-44+47.56494j) |        (1.3e-44+47.564938j) |        (1.3e-44+47.564938j) |
|              8 |     (2.0459209e+17+2.2580793e-27j) |             -40.55294j |         (1.1e-44-40.55294j) |         (1.1e-44-40.55294j) |         (1.1e-44-40.55294j) |
|              7 |      (2.505103e+23-2.4872412e-21j) |             54.570934j |          (1e-44+54.570934j) |          (1e-44+54.570934j) |          (1e-44+54.570934j) |
|              6 |     (2.7494427e+26-2.2461159e-18j) |              61.57176j |           (8e-45+61.57176j) |           (8e-45+61.57176j) |           (8e-45+61.57176j) |
|              6 |     (2.2707063e+20+2.0567736e-24j) |            -47.564938j |           (8e-45-47.56494j) |          (8e-45-47.564938j) |          (8e-45-47.564938j) |
|              5 |     (3.0040677e+29-1.9919841e-15j) |              68.56808j |          (7e-45+68.568085j) |           (7e-45+68.56808j) |          (7e-45+68.568085j) |
|              5 |      (2.505103e+23+1.8445043e-21j) |            -54.570934j |          (7e-45-54.570934j) |          (7e-45-54.570934j) |          (7e-45-54.570934j) |
|              4 |     (3.2934768e+32-1.7716747e-12j) |              75.56781j |           (6e-45+75.56782j) |           (6e-45+75.56781j) |           (6e-45+75.56781j) |
|              4 |     (2.7494427e+26+1.6777925e-18j) |             -61.57176j |           (6e-45-61.57176j) |           (6e-45-61.57176j) |           (6e-45-61.57176j) |
|              4 |     (3.0040677e+29+1.5808891e-15j) |             -68.56808j |          (6e-45-68.568085j) |           (6e-45-68.56808j) |          (6e-45-68.568085j) |

that illustrates that the errors are due to JAX flushing subnormals in values while the reference values may be subnormals.