xref: /llvm-project/mlir/test/Dialect/IRDL/cmath.irdl.mlir (revision 69d3ba3db922fca8cfc47b5f115b6bea6a737aab)
10e0db0a4SMathieu Fehr// RUN: mlir-opt %s | mlir-opt | FileCheck %s
20e0db0a4SMathieu Fehr
30e0db0a4SMathieu Fehrmodule {
40e0db0a4SMathieu Fehr  // CHECK-LABEL: irdl.dialect @cmath {
50e0db0a4SMathieu Fehr  irdl.dialect @cmath {
60e0db0a4SMathieu Fehr
70e0db0a4SMathieu Fehr    // CHECK: irdl.type @complex {
80e0db0a4SMathieu Fehr    // CHECK:   %[[v0:[^ ]*]] = irdl.is f32
942987dfaSMathieu Fehr    // CHECK:   %[[v1:[^ ]*]] = irdl.is f64
1042987dfaSMathieu Fehr    // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
11*69d3ba3dSThéo Degioanni    // CHECK:   irdl.parameters(elem: %[[v2]])
120e0db0a4SMathieu Fehr    // CHECK: }
130e0db0a4SMathieu Fehr    irdl.type @complex {
140e0db0a4SMathieu Fehr      %0 = irdl.is f32
1542987dfaSMathieu Fehr      %1 = irdl.is f64
1642987dfaSMathieu Fehr      %2 = irdl.any_of(%0, %1)
17*69d3ba3dSThéo Degioanni      irdl.parameters(elem: %2)
180e0db0a4SMathieu Fehr    }
190e0db0a4SMathieu Fehr
200e0db0a4SMathieu Fehr    // CHECK: irdl.operation @norm {
210e0db0a4SMathieu Fehr    // CHECK:   %[[v0:[^ ]*]] = irdl.any
22b86a9c5bSThéo Degioanni    // CHECK:   %[[v1:[^ ]*]] = irdl.parametric @cmath::@complex<%[[v0]]>
23*69d3ba3dSThéo Degioanni    // CHECK:   irdl.operands(complex: %[[v1]])
24*69d3ba3dSThéo Degioanni    // CHECK:   irdl.results(norm: %[[v0]])
250e0db0a4SMathieu Fehr    // CHECK: }
260e0db0a4SMathieu Fehr    irdl.operation @norm {
270e0db0a4SMathieu Fehr      %0 = irdl.any
28b86a9c5bSThéo Degioanni      %1 = irdl.parametric @cmath::@complex<%0>
29*69d3ba3dSThéo Degioanni      irdl.operands(complex: %1)
30*69d3ba3dSThéo Degioanni      irdl.results(norm: %0)
310e0db0a4SMathieu Fehr    }
320e0db0a4SMathieu Fehr
330e0db0a4SMathieu Fehr    // CHECK: irdl.operation @mul {
340e0db0a4SMathieu Fehr    // CHECK:   %[[v0:[^ ]*]] = irdl.is f32
3542987dfaSMathieu Fehr    // CHECK:   %[[v1:[^ ]*]] = irdl.is f64
3642987dfaSMathieu Fehr    // CHECK:   %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
37b86a9c5bSThéo Degioanni    // CHECK:   %[[v3:[^ ]*]] = irdl.parametric @cmath::@complex<%[[v2]]>
38*69d3ba3dSThéo Degioanni    // CHECK:   irdl.operands(lhs: %[[v3]], rhs: %[[v3]])
39*69d3ba3dSThéo Degioanni    // CHECK:   irdl.results(res: %[[v3]])
400e0db0a4SMathieu Fehr    // CHECK: }
410e0db0a4SMathieu Fehr    irdl.operation @mul {
420e0db0a4SMathieu Fehr      %0 = irdl.is f32
4342987dfaSMathieu Fehr      %1 = irdl.is f64
4442987dfaSMathieu Fehr      %2 = irdl.any_of(%0, %1)
45b86a9c5bSThéo Degioanni      %3 = irdl.parametric @cmath::@complex<%2>
46*69d3ba3dSThéo Degioanni      irdl.operands(lhs: %3, rhs: %3)
47*69d3ba3dSThéo Degioanni      irdl.results(res: %3)
480e0db0a4SMathieu Fehr    }
490e0db0a4SMathieu Fehr
500e0db0a4SMathieu Fehr  }
510e0db0a4SMathieu Fehr}
52