Lines Matching refs:complex

1 // RUN: mlir-opt %s -convert-complex-to-libm -canonicalize | FileCheck %s
3 // CHECK-DAG: @cpowf(complex<f32>, complex<f32>) -> complex<f32>
4 // CHECK-DAG: @cpow(complex<f64>, complex<f64>) -> complex<f64>
5 // CHECK-DAG: @csqrtf(complex<f32>) -> complex<f32>
6 // CHECK-DAG: @csqrt(complex<f64>) -> complex<f64>
7 // CHECK-DAG: @ctanhf(complex<f32>) -> complex<f32>
8 // CHECK-DAG: @ctanh(complex<f64>) -> complex<f64>
9 // CHECK-DAG: @ccos(complex<f64>) -> complex<f64>
10 // CHECK-DAG: @csin(complex<f64>) -> complex<f64>
11 // CHECK-DAG: @conj(complex<f64>) -> complex<f64>
12 // CHECK-DAG: @cabs(complex<f64>) -> f64
13 // CHECK-DAG: @carg(complex<f64>) -> f64
14 // CHECK-DAG: @clog(complex<f64>) -> complex<f64>
15 // CHECK-DAG: @ctanf(complex<f32>) -> complex<f32>
16 // CHECK-DAG: @ctan(complex<f64>) -> complex<f64>
19 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
20 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
21 func.func @cpow_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
22 …OAT_RESULT:.*]] = call @cpowf(%[[FLOAT]], %[[FLOAT]]) : (complex<f32>, complex<f32>) -> complex<f3…
23 %float_result = complex.pow %float, %float : complex<f32>
24 …LE_RESULT:.*]] = call @cpow(%[[DOUBLE]], %[[DOUBLE]]) : (complex<f64>, complex<f64>) -> complex<f6…
25 %double_result = complex.pow %double, %double : complex<f64>
27 return %float_result, %double_result : complex<f32>, complex<f64>
31 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
32 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
33 func.func @csqrt_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>…
34 // CHECK-DAG: %[[FLOAT_RESULT:.*]] = call @csqrtf(%[[FLOAT]]) : (complex<f32>) -> complex<f32>
35 %float_result = complex.sqrt %float : complex<f32>
36 // CHECK-DAG: %[[DOUBLE_RESULT:.*]] = call @csqrt(%[[DOUBLE]]) : (complex<f64>) -> complex<f64>
37 %double_result = complex.sqrt %double : complex<f64>
39 return %float_result, %double_result : complex<f32>, complex<f64>
43 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
44 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
45 func.func @ctanh_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>…
46 // CHECK-DAG: %[[FLOAT_RESULT:.*]] = call @ctanhf(%[[FLOAT]]) : (complex<f32>) -> complex<f32>
47 %float_result = complex.tanh %float : complex<f32>
48 // CHECK-DAG: %[[DOUBLE_RESULT:.*]] = call @ctanh(%[[DOUBLE]]) : (complex<f64>) -> complex<f64>
49 %double_result = complex.tanh %double : complex<f64>
51 return %float_result, %double_result : complex<f32>, complex<f64>
55 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
56 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
57 func.func @ccos_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
59 %float_result = complex.cos %float : complex<f32>
61 %double_result = complex.cos %double : complex<f64>
63 return %float_result, %double_result : complex<f32>, complex<f64>
67 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
68 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
69 func.func @csin_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
71 %float_result = complex.sin %float : complex<f32>
73 %double_result = complex.sin %double : complex<f64>
75 return %float_result, %double_result : complex<f32>, complex<f64>
79 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
80 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
81 func.func @conj_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
83 %float_result = complex.conj %float : complex<f32>
85 %double_result = complex.conj %double : complex<f64>
87 return %float_result, %double_result : complex<f32>, complex<f64>
91 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
92 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
93 func.func @cabs_caller(%float: complex<f32>, %double: complex<f64>) -> (f32, f64) {
95 %float_result = complex.abs %float : complex<f32>
97 %double_result = complex.abs %double : complex<f64>
103 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
104 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
105 func.func @carg_caller(%float: complex<f32>, %double: complex<f64>) -> (f32, f64) {
107 %float_result = complex.angle %float : complex<f32>
109 %double_result = complex.angle %double : complex<f64>
115 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
116 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
117 func.func @clog_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
119 %float_result = complex.log %float : complex<f32>
121 %double_result = complex.log %double : complex<f64>
123 return %float_result, %double_result : complex<f32>, complex<f64>
127 // CHECK-SAME: %[[FLOAT:.*]]: complex<f32>
128 // CHECK-SAME: %[[DOUBLE:.*]]: complex<f64>
129 func.func @ctan_caller(%float: complex<f32>, %double: complex<f64>) -> (complex<f32>, complex<f64>)…
131 %float_result = complex.tan %float : complex<f32>
133 %double_result = complex.tan %double : complex<f64>
135 return %float_result, %double_result : complex<f32>, complex<f64>