void cmplx(double _Complex z) {
  cabs(z);
  cacos(z);
  cacosh(z);
  carg(z);
  casin(z);
  casinh(z);
  catan(z);
  catanh(z);
  ccos(z);
  ccosh(z);
  cexp(z);
  cimag(z);
  clog(z);
  conj(z);
  cpow(z, z);
  cproj(z);
  creal(z);
  csin(z);
  csinh(z);
  csqrt(z);
  ctan(z);
  ctanh(z);
}


x86 assembly (clang, -O0):
<cmplx>:
push   %rbp
mov    %rsp,%rbp
sub    $0x150,%rsp
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x8(%rbp)
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x20(%rbp)
movsd  %xmm0,-0x18(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
call   1060 <cabs@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x30(%rbp)
movsd  %xmm0,-0x28(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
call   1030 <cacos@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x40(%rbp)
movsd  %xmm0,-0x38(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x38(%rbp),%xmm1
call   1130 <cacosh@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x50(%rbp)
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
call   1070 <carg@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x60(%rbp)
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
call   10d0 <casin@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x70(%rbp)
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm1
call   1050 <casinh@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x80(%rbp)
movsd  %xmm0,-0x78(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm1
call   10c0 <catan@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x90(%rbp)
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
call   10a0 <catanh@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0xa0(%rbp)
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm1
ff
call   10b0 <ccos@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0xb0(%rbp)
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm1
ff
call   1090 <ccosh@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0xc0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0xb8(%rbp),%xmm1
ff
call   10f0 <cexp@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0xd0(%rbp)
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm1
ff
call   1120 <clog@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm3
movsd  -0x8(%rbp),%xmm2
movsd  %xmm1,-0xe0(%rbp)
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm1
ff
movsd  %xmm3,-0xf0(%rbp)
ff
movsd  %xmm2,-0xe8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm3
ff
call   1040 <cpow@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x100(%rbp)
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x110(%rbp)
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm1
ff
call   1080 <csin@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x120(%rbp)
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm1
ff
call   1110 <csinh@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x130(%rbp)
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm1
ff
call   1140 <csqrt@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x140(%rbp)
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  -0x138(%rbp),%xmm1
ff
call   10e0 <ctan@plt>
movsd  -0x10(%rbp),%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  %xmm1,-0x150(%rbp)
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
movsd  -0x148(%rbp),%xmm1
ff
call   1100 <ctanh@plt>
add    $0x150,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cmplx>:
sub    $0x18,%rsp
movsd  %xmm1,0x10(%rsp)
movsd  %xmm0,0x8(%rsp)
call   1060 <cabs@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1030 <cacos@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1130 <cacosh@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1070 <carg@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10d0 <casin@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1050 <casinh@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10c0 <catan@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10a0 <catanh@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10b0 <ccos@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1090 <ccosh@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10f0 <cexp@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1120 <clog@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
movaps %xmm0,%xmm2
movaps %xmm1,%xmm3
call   1040 <cpow@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1080 <csin@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1110 <csinh@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   1140 <csqrt@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
call   10e0 <ctan@plt>
movsd  0x8(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
add    $0x18,%rsp
jmp    1100 <ctanh@plt>

LLVM IR (-O0):
define void @cmplx(double %0, double %1) {
%3 = alloca { double, double }
%4 = alloca { double, double }
%5 = alloca { double, double }
%6 = alloca { double, double }
%7 = alloca { double, double }
%8 = alloca { double, double }
%9 = alloca { double, double }
%10 = alloca { double, double }
%11 = alloca { double, double }
%12 = alloca { double, double }
%13 = alloca { double, double }
%14 = alloca { double, double }
%15 = alloca { double, double }
%16 = alloca { double, double }
%17 = alloca { double, double }
%18 = alloca { double, double }
%19 = alloca { double, double }
%20 = alloca { double, double }
%21 = alloca { double, double }
%22 = alloca { double, double }
%23 = alloca { double, double }
%24 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
store double %0, double* %24
%25 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
store double %1, double* %25
%26 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%27 = load double, double* %26
%28 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%29 = load double, double* %28
%30 = getelementptr inbounds { double, double }, { double, double }* %4, i32 0, i32 0
%31 = getelementptr inbounds { double, double }, { double, double }* %4, i32 0, i32 1
store double %27, double* %30
store double %29, double* %31
%32 = getelementptr inbounds { double, double }, { double, double }* %4, i32 0, i32 0
%33 = load double, double* %32
%34 = getelementptr inbounds { double, double }, { double, double }* %4, i32 0, i32 1
%35 = load double, double* %34
%36 = call double @cabs(double %33, double %35)
%37 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%38 = load double, double* %37
%39 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%40 = load double, double* %39
%41 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0
%42 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1
store double %38, double* %41
store double %40, double* %42
%43 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 0
%44 = load double, double* %43
%45 = getelementptr inbounds { double, double }, { double, double }* %5, i32 0, i32 1
%46 = load double, double* %45
%47 = call { double, double } @cacos(double %44, double %46)
%48 = extractvalue { double, double } %47, 0
%49 = extractvalue { double, double } %47, 1
%50 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%51 = load double, double* %50
%52 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%53 = load double, double* %52
%54 = getelementptr inbounds { double, double }, { double, double }* %6, i32 0, i32 0
%55 = getelementptr inbounds { double, double }, { double, double }* %6, i32 0, i32 1
store double %51, double* %54
store double %53, double* %55
%56 = getelementptr inbounds { double, double }, { double, double }* %6, i32 0, i32 0
%57 = load double, double* %56
%58 = getelementptr inbounds { double, double }, { double, double }* %6, i32 0, i32 1
%59 = load double, double* %58
%60 = call { double, double } @cacosh(double %57, double %59)
%61 = extractvalue { double, double } %60, 0
%62 = extractvalue { double, double } %60, 1
%63 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%64 = load double, double* %63
%65 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%66 = load double, double* %65
%67 = getelementptr inbounds { double, double }, { double, double }* %7, i32 0, i32 0
%68 = getelementptr inbounds { double, double }, { double, double }* %7, i32 0, i32 1
store double %64, double* %67
store double %66, double* %68
%69 = getelementptr inbounds { double, double }, { double, double }* %7, i32 0, i32 0
%70 = load double, double* %69
%71 = getelementptr inbounds { double, double }, { double, double }* %7, i32 0, i32 1
%72 = load double, double* %71
%73 = call double @carg(double %70, double %72)
%74 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%75 = load double, double* %74
%76 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%77 = load double, double* %76
%78 = getelementptr inbounds { double, double }, { double, double }* %8, i32 0, i32 0
%79 = getelementptr inbounds { double, double }, { double, double }* %8, i32 0, i32 1
store double %75, double* %78
store double %77, double* %79
%80 = getelementptr inbounds { double, double }, { double, double }* %8, i32 0, i32 0
%81 = load double, double* %80
%82 = getelementptr inbounds { double, double }, { double, double }* %8, i32 0, i32 1
%83 = load double, double* %82
%84 = call { double, double } @casin(double %81, double %83)
%85 = extractvalue { double, double } %84, 0
%86 = extractvalue { double, double } %84, 1
%87 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%88 = load double, double* %87
%89 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%90 = load double, double* %89
%91 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
%92 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
store double %88, double* %91
store double %90, double* %92
%93 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 0
%94 = load double, double* %93
%95 = getelementptr inbounds { double, double }, { double, double }* %9, i32 0, i32 1
%96 = load double, double* %95
%97 = call { double, double } @casinh(double %94, double %96)
%98 = extractvalue { double, double } %97, 0
%99 = extractvalue { double, double } %97, 1
%100 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%101 = load double, double* %100
%102 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%103 = load double, double* %102
%104 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
%105 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
store double %101, double* %104
store double %103, double* %105
%106 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 0
%107 = load double, double* %106
%108 = getelementptr inbounds { double, double }, { double, double }* %10, i32 0, i32 1
%109 = load double, double* %108
%110 = call { double, double } @catan(double %107, double %109)
%111 = extractvalue { double, double } %110, 0
%112 = extractvalue { double, double } %110, 1
%113 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%114 = load double, double* %113
%115 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%116 = load double, double* %115
%117 = getelementptr inbounds { double, double }, { double, double }* %11, i32 0, i32 0
%118 = getelementptr inbounds { double, double }, { double, double }* %11, i32 0, i32 1
store double %114, double* %117
store double %116, double* %118
%119 = getelementptr inbounds { double, double }, { double, double }* %11, i32 0, i32 0
%120 = load double, double* %119
%121 = getelementptr inbounds { double, double }, { double, double }* %11, i32 0, i32 1
%122 = load double, double* %121
%123 = call { double, double } @catanh(double %120, double %122)
%124 = extractvalue { double, double } %123, 0
%125 = extractvalue { double, double } %123, 1
%126 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%127 = load double, double* %126
%128 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%129 = load double, double* %128
%130 = getelementptr inbounds { double, double }, { double, double }* %12, i32 0, i32 0
%131 = getelementptr inbounds { double, double }, { double, double }* %12, i32 0, i32 1
store double %127, double* %130
store double %129, double* %131
%132 = getelementptr inbounds { double, double }, { double, double }* %12, i32 0, i32 0
%133 = load double, double* %132
%134 = getelementptr inbounds { double, double }, { double, double }* %12, i32 0, i32 1
%135 = load double, double* %134
%136 = call { double, double } @ccos(double %133, double %135)
%137 = extractvalue { double, double } %136, 0
%138 = extractvalue { double, double } %136, 1
%139 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%140 = load double, double* %139
%141 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%142 = load double, double* %141
%143 = getelementptr inbounds { double, double }, { double, double }* %13, i32 0, i32 0
%144 = getelementptr inbounds { double, double }, { double, double }* %13, i32 0, i32 1
store double %140, double* %143
store double %142, double* %144
%145 = getelementptr inbounds { double, double }, { double, double }* %13, i32 0, i32 0
%146 = load double, double* %145
%147 = getelementptr inbounds { double, double }, { double, double }* %13, i32 0, i32 1
%148 = load double, double* %147
%149 = call { double, double } @ccosh(double %146, double %148)
%150 = extractvalue { double, double } %149, 0
%151 = extractvalue { double, double } %149, 1
%152 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%153 = load double, double* %152
%154 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%155 = load double, double* %154
%156 = getelementptr inbounds { double, double }, { double, double }* %14, i32 0, i32 0
%157 = getelementptr inbounds { double, double }, { double, double }* %14, i32 0, i32 1
store double %153, double* %156
store double %155, double* %157
%158 = getelementptr inbounds { double, double }, { double, double }* %14, i32 0, i32 0
%159 = load double, double* %158
%160 = getelementptr inbounds { double, double }, { double, double }* %14, i32 0, i32 1
%161 = load double, double* %160
%162 = call { double, double } @cexp(double %159, double %161)
%163 = extractvalue { double, double } %162, 0
%164 = extractvalue { double, double } %162, 1
%165 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%166 = load double, double* %165
%167 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%168 = load double, double* %167
%169 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%170 = load double, double* %169
%171 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%172 = load double, double* %171
%173 = getelementptr inbounds { double, double }, { double, double }* %15, i32 0, i32 0
%174 = getelementptr inbounds { double, double }, { double, double }* %15, i32 0, i32 1
store double %170, double* %173
store double %172, double* %174
%175 = getelementptr inbounds { double, double }, { double, double }* %15, i32 0, i32 0
%176 = load double, double* %175
%177 = getelementptr inbounds { double, double }, { double, double }* %15, i32 0, i32 1
%178 = load double, double* %177
%179 = call { double, double } @clog(double %176, double %178)
%180 = extractvalue { double, double } %179, 0
%181 = extractvalue { double, double } %179, 1
%182 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%183 = load double, double* %182
%184 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%185 = load double, double* %184
%186 = fneg double %185
%187 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%188 = load double, double* %187
%189 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%190 = load double, double* %189
%191 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%192 = load double, double* %191
%193 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%194 = load double, double* %193
%195 = getelementptr inbounds { double, double }, { double, double }* %16, i32 0, i32 0
%196 = getelementptr inbounds { double, double }, { double, double }* %16, i32 0, i32 1
store double %188, double* %195
store double %190, double* %196
%197 = getelementptr inbounds { double, double }, { double, double }* %16, i32 0, i32 0
%198 = load double, double* %197
%199 = getelementptr inbounds { double, double }, { double, double }* %16, i32 0, i32 1
%200 = load double, double* %199
%201 = getelementptr inbounds { double, double }, { double, double }* %17, i32 0, i32 0
%202 = getelementptr inbounds { double, double }, { double, double }* %17, i32 0, i32 1
store double %192, double* %201
store double %194, double* %202
%203 = getelementptr inbounds { double, double }, { double, double }* %17, i32 0, i32 0
%204 = load double, double* %203
%205 = getelementptr inbounds { double, double }, { double, double }* %17, i32 0, i32 1
%206 = load double, double* %205
%207 = call { double, double } @cpow(double %198, double %200, double %204, double %206)
%208 = extractvalue { double, double } %207, 0
%209 = extractvalue { double, double } %207, 1
%210 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%211 = load double, double* %210
%212 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%213 = load double, double* %212
%214 = getelementptr inbounds { double, double }, { double, double }* %18, i32 0, i32 0
%215 = getelementptr inbounds { double, double }, { double, double }* %18, i32 0, i32 1
store double %211, double* %214
store double %213, double* %215
%216 = getelementptr inbounds { double, double }, { double, double }* %18, i32 0, i32 0
%217 = load double, double* %216
%218 = getelementptr inbounds { double, double }, { double, double }* %18, i32 0, i32 1
%219 = load double, double* %218
%220 = call { double, double } @cproj(double %217, double %219)
%221 = extractvalue { double, double } %220, 0
%222 = extractvalue { double, double } %220, 1
%223 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%224 = load double, double* %223
%225 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%226 = load double, double* %225
%227 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%228 = load double, double* %227
%229 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%230 = load double, double* %229
%231 = getelementptr inbounds { double, double }, { double, double }* %19, i32 0, i32 0
%232 = getelementptr inbounds { double, double }, { double, double }* %19, i32 0, i32 1
store double %228, double* %231
store double %230, double* %232
%233 = getelementptr inbounds { double, double }, { double, double }* %19, i32 0, i32 0
%234 = load double, double* %233
%235 = getelementptr inbounds { double, double }, { double, double }* %19, i32 0, i32 1
%236 = load double, double* %235
%237 = call { double, double } @csin(double %234, double %236)
%238 = extractvalue { double, double } %237, 0
%239 = extractvalue { double, double } %237, 1
%240 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%241 = load double, double* %240
%242 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%243 = load double, double* %242
%244 = getelementptr inbounds { double, double }, { double, double }* %20, i32 0, i32 0
%245 = getelementptr inbounds { double, double }, { double, double }* %20, i32 0, i32 1
store double %241, double* %244
store double %243, double* %245
%246 = getelementptr inbounds { double, double }, { double, double }* %20, i32 0, i32 0
%247 = load double, double* %246
%248 = getelementptr inbounds { double, double }, { double, double }* %20, i32 0, i32 1
%249 = load double, double* %248
%250 = call { double, double } @csinh(double %247, double %249)
%251 = extractvalue { double, double } %250, 0
%252 = extractvalue { double, double } %250, 1
%253 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%254 = load double, double* %253
%255 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%256 = load double, double* %255
%257 = getelementptr inbounds { double, double }, { double, double }* %21, i32 0, i32 0
%258 = getelementptr inbounds { double, double }, { double, double }* %21, i32 0, i32 1
store double %254, double* %257
store double %256, double* %258
%259 = getelementptr inbounds { double, double }, { double, double }* %21, i32 0, i32 0
%260 = load double, double* %259
%261 = getelementptr inbounds { double, double }, { double, double }* %21, i32 0, i32 1
%262 = load double, double* %261
%263 = call { double, double } @csqrt(double %260, double %262)
%264 = extractvalue { double, double } %263, 0
%265 = extractvalue { double, double } %263, 1
%266 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%267 = load double, double* %266
%268 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%269 = load double, double* %268
%270 = getelementptr inbounds { double, double }, { double, double }* %22, i32 0, i32 0
%271 = getelementptr inbounds { double, double }, { double, double }* %22, i32 0, i32 1
store double %267, double* %270
store double %269, double* %271
%272 = getelementptr inbounds { double, double }, { double, double }* %22, i32 0, i32 0
%273 = load double, double* %272
%274 = getelementptr inbounds { double, double }, { double, double }* %22, i32 0, i32 1
%275 = load double, double* %274
%276 = call { double, double } @ctan(double %273, double %275)
%277 = extractvalue { double, double } %276, 0
%278 = extractvalue { double, double } %276, 1
%279 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 0
%280 = load double, double* %279
%281 = getelementptr inbounds { double, double }, { double, double }* %3, i32 0, i32 1
%282 = load double, double* %281
%283 = getelementptr inbounds { double, double }, { double, double }* %23, i32 0, i32 0
%284 = getelementptr inbounds { double, double }, { double, double }* %23, i32 0, i32 1
store double %280, double* %283
store double %282, double* %284
%285 = getelementptr inbounds { double, double }, { double, double }* %23, i32 0, i32 0
%286 = load double, double* %285
%287 = getelementptr inbounds { double, double }, { double, double }* %23, i32 0, i32 1
%288 = load double, double* %287
%289 = call { double, double } @ctanh(double %286, double %288)
%290 = extractvalue { double, double } %289, 0
%291 = extractvalue { double, double } %289, 1
ret void
}

LLVM IR (-O2):
define void @cmplx(double %0, double %1) {
%3 = tail call double @cabs(double %0, double %1)
%4 = tail call { double, double } @cacos(double %0, double %1)
%5 = tail call { double, double } @cacosh(double %0, double %1)
%6 = tail call double @carg(double %0, double %1)
%7 = tail call { double, double } @casin(double %0, double %1)
%8 = tail call { double, double } @casinh(double %0, double %1)
%9 = tail call { double, double } @catan(double %0, double %1)
%10 = tail call { double, double } @catanh(double %0, double %1)
%11 = tail call { double, double } @ccos(double %0, double %1)
%12 = tail call { double, double } @ccosh(double %0, double %1)
%13 = tail call { double, double } @cexp(double %0, double %1)
%14 = tail call { double, double } @clog(double %0, double %1)
%15 = tail call { double, double } @cpow(double %0, double %1, double %0, double %1)
%16 = tail call { double, double } @csin(double %0, double %1)
%17 = tail call { double, double } @csinh(double %0, double %1)
%18 = tail call { double, double } @csqrt(double %0, double %1)
%19 = tail call { double, double } @ctan(double %0, double %1)
%20 = tail call { double, double } @ctanh(double %0, double %1)
ret void
}