mirror of
https://github.com/intel/llvm.git
synced 2026-02-07 16:11:27 +08:00
making the IR dumps much nicer.
This is part 2/3 of the path to making dialect types more nice. Part 3/3 will
slightly generalize the set of characters allowed in pretty types and make it
more principled.
--
PiperOrigin-RevId: 242249955
33 lines
1.6 KiB
Plaintext
33 lines
1.6 KiB
Plaintext
# RUN: toyc-ch3 %s -emit=mlir 2>&1 | FileCheck %s
|
|
|
|
# User defined generic function that operates on unknown shaped arguments
|
|
def multiply_transpose(a, b) {
|
|
return a * transpose(b);
|
|
}
|
|
|
|
def main() {
|
|
var a<2, 3> = [[1, 2, 3], [4, 5, 6]];
|
|
var b<2, 3> = [1, 2, 3, 4, 5, 6];
|
|
var c = multiply_transpose(a, b);
|
|
var d = multiply_transpose(b, a);
|
|
print(d);
|
|
}
|
|
|
|
# CHECK-LABEL: func @multiply_transpose(%arg0: !toy.array, %arg1: !toy.array)
|
|
# CHECK-NEXT: attributes {toy.generic: true} {
|
|
# CHECK-NEXT: %0 = "toy.transpose"(%arg1) : (!toy.array) -> !toy.array
|
|
# CHECK-NEXT: %1 = "toy.mul"(%arg0, %0) : (!toy.array, !toy.array) -> !toy.array
|
|
# CHECK-NEXT: "toy.return"(%1) : (!toy.array) -> ()
|
|
# CHECK-NEXT: }
|
|
|
|
# CHECK-LABEL: func @main() {
|
|
# CHECK-NEXT: %0 = "toy.constant"() {value: dense<tensor<2x3xf64>, {{\[\[}}1.000000e+00, 2.000000e+00, 3.000000e+00], [4.000000e+00, 5.000000e+00, 6.000000e+00]]>} : () -> !toy.array<2, 3>
|
|
# CHECK-NEXT: %1 = "toy.reshape"(%0) : (!toy.array<2, 3>) -> !toy.array<2, 3>
|
|
# CHECK-NEXT: %2 = "toy.constant"() {value: dense<tensor<6xf64>, [1.000000e+00, 2.000000e+00, 3.000000e+00, 4.000000e+00, 5.000000e+00, 6.000000e+00]>} : () -> !toy.array<6>
|
|
# CHECK-NEXT: %3 = "toy.reshape"(%2) : (!toy.array<6>) -> !toy.array<2, 3>
|
|
# CHECK-NEXT: %4 = "toy.generic_call"(%1, %3) {callee: "multiply_transpose"} : (!toy.array<2, 3>, !toy.array<2, 3>) -> !toy.array
|
|
# CHECK-NEXT: %5 = "toy.generic_call"(%3, %1) {callee: "multiply_transpose"} : (!toy.array<2, 3>, !toy.array<2, 3>) -> !toy.array
|
|
# CHECK-NEXT: "toy.print"(%5) : (!toy.array) -> ()
|
|
# CHECK-NEXT: "toy.return"() : () -> ()
|
|
|