1 // RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s -check-prefix=CPP-DEFAULT
2 // RUN: mlir-translate -mlir-to-cpp -declare-variables-at-top %s | FileCheck %s -check-prefix=CPP-DECLTOP
4 func.func @emitc_variable() {
5 %c0 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> i32
6 %c1 = "emitc.variable"(){value = 42 : i32} : () -> i32
7 %c2 = "emitc.variable"(){value = -1 : i32} : () -> i32
8 %c3 = "emitc.variable"(){value = -1 : si8} : () -> si8
9 %c4 = "emitc.variable"(){value = 255 : ui8} : () -> ui8
10 %c5 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.ptr<i32>
11 %c6 = "emitc.variable"(){value = #emitc.opaque<"NULL">} : () -> !emitc.ptr<i32>
14 // CPP-DEFAULT: void emitc_variable() {
15 // CPP-DEFAULT-NEXT: int32_t [[V0:[^ ]*]];
16 // CPP-DEFAULT-NEXT: int32_t [[V1:[^ ]*]] = 42;
17 // CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = -1;
18 // CPP-DEFAULT-NEXT: int8_t [[V3:[^ ]*]] = -1;
19 // CPP-DEFAULT-NEXT: uint8_t [[V4:[^ ]*]] = 255;
20 // CPP-DEFAULT-NEXT: int32_t* [[V5:[^ ]*]];
21 // CPP-DEFAULT-NEXT: int32_t* [[V6:[^ ]*]] = NULL;
23 // CPP-DECLTOP: void emitc_variable() {
24 // CPP-DECLTOP-NEXT: int32_t [[V0:[^ ]*]];
25 // CPP-DECLTOP-NEXT: int32_t [[V1:[^ ]*]];
26 // CPP-DECLTOP-NEXT: int32_t [[V2:[^ ]*]];
27 // CPP-DECLTOP-NEXT: int8_t [[V3:[^ ]*]];
28 // CPP-DECLTOP-NEXT: uint8_t [[V4:[^ ]*]];
29 // CPP-DECLTOP-NEXT: int32_t* [[V5:[^ ]*]];
30 // CPP-DECLTOP-NEXT: int32_t* [[V6:[^ ]*]];
31 // CPP-DECLTOP-NEXT: ;
32 // CPP-DECLTOP-NEXT: [[V1]] = 42;
33 // CPP-DECLTOP-NEXT: [[V2]] = -1;
34 // CPP-DECLTOP-NEXT: [[V3]] = -1;
35 // CPP-DECLTOP-NEXT: [[V4]] = 255;
36 // CPP-DECLTOP-NEXT: ;
37 // CPP-DECLTOP-NEXT: [[V6]] = NULL;