51 lines
1.4 KiB
MLIR
51 lines
1.4 KiB
MLIR
// RUN: mlir-opt %s | mlir-opt | FileCheck %s
|
|
|
|
module {
|
|
// CHECK-LABEL: irdl.dialect @cmath {
|
|
irdl.dialect @cmath {
|
|
|
|
// CHECK: irdl.type @complex {
|
|
// CHECK: %[[v0:[^ ]*]] = irdl.is f32
|
|
// CHECK: %[[v1:[^ ]*]] = irdl.is f64
|
|
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
|
|
// CHECK: irdl.parameters(%[[v2]])
|
|
// CHECK: }
|
|
irdl.type @complex {
|
|
%0 = irdl.is f32
|
|
%1 = irdl.is f64
|
|
%2 = irdl.any_of(%0, %1)
|
|
irdl.parameters(%2)
|
|
}
|
|
|
|
// CHECK: irdl.operation @norm {
|
|
// CHECK: %[[v0:[^ ]*]] = irdl.any
|
|
// CHECK: %[[v1:[^ ]*]] = irdl.parametric @complex<%[[v0]]>
|
|
// CHECK: irdl.operands(%[[v1]])
|
|
// CHECK: irdl.results(%[[v0]])
|
|
// CHECK: }
|
|
irdl.operation @norm {
|
|
%0 = irdl.any
|
|
%1 = irdl.parametric @complex<%0>
|
|
irdl.operands(%1)
|
|
irdl.results(%0)
|
|
}
|
|
|
|
// CHECK: irdl.operation @mul {
|
|
// CHECK: %[[v0:[^ ]*]] = irdl.is f32
|
|
// CHECK: %[[v1:[^ ]*]] = irdl.is f64
|
|
// CHECK: %[[v2:[^ ]*]] = irdl.any_of(%[[v0]], %[[v1]])
|
|
// CHECK: %[[v3:[^ ]*]] = irdl.parametric @complex<%[[v2]]>
|
|
// CHECK: irdl.operands(%[[v3]], %[[v3]])
|
|
// CHECK: irdl.results(%[[v3]])
|
|
// CHECK: }
|
|
irdl.operation @mul {
|
|
%0 = irdl.is f32
|
|
%1 = irdl.is f64
|
|
%2 = irdl.any_of(%0, %1)
|
|
%3 = irdl.parametric @complex<%2>
|
|
irdl.operands(%3, %3)
|
|
irdl.results(%3)
|
|
}
|
|
|
|
}
|
|
}
|