xref: /llvm-project/mlir/test/Target/Cpp/variable.mlir (revision e47b507562624bf291ab2515699d39c2669b6131)
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
3
4func.func @emitc_variable() {
5  %c0 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.lvalue<i32>
6  %c1 = "emitc.variable"(){value = 42 : i32} : () -> !emitc.lvalue<i32>
7  %c2 = "emitc.variable"(){value = -1 : i32} : () -> !emitc.lvalue<i32>
8  %c3 = "emitc.variable"(){value = -1 : si8} : () -> !emitc.lvalue<si8>
9  %c4 = "emitc.variable"(){value = 255 : ui8} : () -> !emitc.lvalue<ui8>
10  %c5 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.lvalue<!emitc.ptr<i32>>
11  %c6 = "emitc.variable"(){value = #emitc.opaque<"NULL">} : () -> !emitc.lvalue<!emitc.ptr<i32>>
12  %c7 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.array<3x7xi32>
13  %c8 = "emitc.variable"(){value = #emitc.opaque<"">} : () -> !emitc.array<5x!emitc.ptr<i8>>
14  return
15}
16// CPP-DEFAULT: void emitc_variable() {
17// CPP-DEFAULT-NEXT: int32_t [[V0:[^ ]*]];
18// CPP-DEFAULT-NEXT: int32_t [[V1:[^ ]*]] = 42;
19// CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = -1;
20// CPP-DEFAULT-NEXT: int8_t [[V3:[^ ]*]] = -1;
21// CPP-DEFAULT-NEXT: uint8_t [[V4:[^ ]*]] = 255;
22// CPP-DEFAULT-NEXT: int32_t* [[V5:[^ ]*]];
23// CPP-DEFAULT-NEXT: int32_t* [[V6:[^ ]*]] = NULL;
24// CPP-DEFAULT-NEXT: int32_t [[V7:[^ ]*]][3][7];
25// CPP-DEFAULT-NEXT: int8_t* [[V8:[^ ]*]][5];
26
27// CPP-DECLTOP: void emitc_variable() {
28// CPP-DECLTOP-NEXT: int32_t [[V0:[^ ]*]];
29// CPP-DECLTOP-NEXT: int32_t [[V1:[^ ]*]];
30// CPP-DECLTOP-NEXT: int32_t [[V2:[^ ]*]];
31// CPP-DECLTOP-NEXT: int8_t [[V3:[^ ]*]];
32// CPP-DECLTOP-NEXT: uint8_t [[V4:[^ ]*]];
33// CPP-DECLTOP-NEXT: int32_t* [[V5:[^ ]*]];
34// CPP-DECLTOP-NEXT: int32_t* [[V6:[^ ]*]];
35// CPP-DECLTOP-NEXT: int32_t [[V7:[^ ]*]][3][7];
36// CPP-DECLTOP-NEXT: int8_t* [[V8:[^ ]*]][5];
37// CPP-DECLTOP-NEXT: ;
38// CPP-DECLTOP-NEXT: [[V1]] = 42;
39// CPP-DECLTOP-NEXT: [[V2]] = -1;
40// CPP-DECLTOP-NEXT: [[V3]] = -1;
41// CPP-DECLTOP-NEXT: [[V4]] = 255;
42// CPP-DECLTOP-NEXT: ;
43// CPP-DECLTOP-NEXT: [[V6]] = NULL;
44// CPP-DECLTOP-NEXT: ;
45// CPP-DECLTOP-NEXT: ;
46