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_constant() {
5  %c0 = "emitc.constant"(){value = #emitc.opaque<""> : i32} : () -> i32
6  %c1 = "emitc.constant"(){value = 42 : i32} : () -> i32
7  %c2 = "emitc.constant"(){value = -1 : i32} : () -> i32
8  %c3 = "emitc.constant"(){value = -1 : si8} : () -> si8
9  %c4 = "emitc.constant"(){value = 255 : ui8} : () -> ui8
10  %c5 = "emitc.constant"(){value = #emitc.opaque<"CHAR_MIN"> : !emitc.opaque<"char">} : () -> !emitc.opaque<"char">
11  return
12}
13// CPP-DEFAULT: void emitc_constant() {
14// CPP-DEFAULT-NEXT: int32_t [[V0:[^ ]*]];
15// CPP-DEFAULT-NEXT: int32_t [[V1:[^ ]*]] = 42;
16// CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = -1;
17// CPP-DEFAULT-NEXT: int8_t [[V3:[^ ]*]] = -1;
18// CPP-DEFAULT-NEXT: uint8_t [[V4:[^ ]*]] = 255;
19// CPP-DEFAULT-NEXT: char [[V5:[^ ]*]] = CHAR_MIN;
20
21// CPP-DECLTOP: void emitc_constant() {
22// CPP-DECLTOP-NEXT: int32_t [[V0:[^ ]*]];
23// CPP-DECLTOP-NEXT: int32_t [[V1:[^ ]*]];
24// CPP-DECLTOP-NEXT: int32_t [[V2:[^ ]*]];
25// CPP-DECLTOP-NEXT: int8_t [[V3:[^ ]*]];
26// CPP-DECLTOP-NEXT: uint8_t [[V4:[^ ]*]];
27// CPP-DECLTOP-NEXT: char [[V5:[^ ]*]];
28// CPP-DECLTOP-NEXT: ;
29// CPP-DECLTOP-NEXT: [[V1]] = 42;
30// CPP-DECLTOP-NEXT: [[V2]] = -1;
31// CPP-DECLTOP-NEXT: [[V3]] = -1;
32// CPP-DECLTOP-NEXT: [[V4]] = 255;
33// CPP-DECLTOP-NEXT: [[V5]] = CHAR_MIN;
34