42 lines · plain
1// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s --match-full-lines2// RUN: mlir-translate -mlir-to-cpp -declare-variables-at-top %s | FileCheck %s --match-full-lines3 4 5emitc.verbatim "#ifdef __cplusplus"6// CHECK: #ifdef __cplusplus7emitc.verbatim "extern \"C\" {"8// CHECK-NEXT: extern "C" {9emitc.verbatim "#endif // __cplusplus"10// CHECK-NEXT: #endif // __cplusplus11emitc.verbatim "#ifdef __cplusplus"12// CHECK-NEXT: #ifdef __cplusplus13emitc.verbatim "} // extern \"C\""14// CHECK-NEXT: } // extern "C"15emitc.verbatim "#endif // __cplusplus"16// CHECK-NEXT: #endif // __cplusplus17 18emitc.verbatim "typedef int32_t i32;"19// CHECK-NEXT: typedef int32_t i32;20emitc.verbatim "typedef float f32;"21// CHECK-NEXT: typedef float f32;22 23emitc.func @func(%arg: f32) {24 // CHECK: void func(float [[V0:[^ ]*]]) {25 %a = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.array<3x7xi32>26 // CHECK: int32_t [[A:[^ ]*]][3][7];27 28 emitc.verbatim "{}" args %arg : f3229 // CHECK: [[V0]]30 31 emitc.verbatim "{} {{a" args %arg : f3232 // CHECK-NEXT: [[V0]] {a33 34 emitc.verbatim "#pragma my var={} property" args %arg : f3235 // CHECK-NEXT: #pragma my var=[[V0]] property36 37 emitc.verbatim "#pragma my2 var={} property" args %a : !emitc.array<3x7xi32>38 // CHECK-NEXT: #pragma my2 var=[[A]] property39 40 emitc.return41}42