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