mirror of
https://github.com/intel/llvm.git
synced 2026-01-28 19:43:38 +08:00
[mlir][emitc] Print signed integers properly
Previously negative integers were printed as large unsigned values. Reviewed By: marbre Differential Revision: https://reviews.llvm.org/D109690
This commit is contained in:
committed by
Marius Brehler
parent
9db20822f7
commit
ec92f788f3
@@ -677,14 +677,16 @@ bool CppEmitter::hasBlockLabel(Block &block) {
|
||||
}
|
||||
|
||||
LogicalResult CppEmitter::emitAttribute(Location loc, Attribute attr) {
|
||||
auto printInt = [&](APInt val, bool isSigned) {
|
||||
auto printInt = [&](APInt val, bool isUnsigned) {
|
||||
if (val.getBitWidth() == 1) {
|
||||
if (val.getBoolValue())
|
||||
os << "true";
|
||||
else
|
||||
os << "false";
|
||||
} else {
|
||||
val.print(os, isSigned);
|
||||
SmallString<128> strValue;
|
||||
val.toString(strValue, 10, !isUnsigned, false);
|
||||
os << strValue;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -5,22 +5,34 @@
|
||||
func @emitc_constant() {
|
||||
%c0 = "emitc.constant"(){value = #emitc.opaque<""> : i32} : () -> i32
|
||||
%c1 = "emitc.constant"(){value = 42 : i32} : () -> i32
|
||||
%c2 = "emitc.constant"(){value = #emitc.opaque<""> : !emitc.opaque<"int32_t*">} : () -> !emitc.opaque<"int32_t*">
|
||||
%c3 = "emitc.constant"(){value = #emitc.opaque<"NULL"> : !emitc.opaque<"int32_t*">} : () -> !emitc.opaque<"int32_t*">
|
||||
%c2 = "emitc.constant"(){value = -1 : i32} : () -> i32
|
||||
%c3 = "emitc.constant"(){value = -1 : si8} : () -> si8
|
||||
%c4 = "emitc.constant"(){value = 255 : ui8} : () -> ui8
|
||||
%c5 = "emitc.constant"(){value = #emitc.opaque<""> : !emitc.opaque<"int32_t*">} : () -> !emitc.opaque<"int32_t*">
|
||||
%c6 = "emitc.constant"(){value = #emitc.opaque<"NULL"> : !emitc.opaque<"int32_t*">} : () -> !emitc.opaque<"int32_t*">
|
||||
return
|
||||
}
|
||||
// CPP-DEFAULT: void emitc_constant() {
|
||||
// CPP-DEFAULT-NEXT: int32_t [[V0:[^ ]*]];
|
||||
// CPP-DEFAULT-NEXT: int32_t [[V1:[^ ]*]] = 42;
|
||||
// CPP-DEFAULT-NEXT: int32_t* [[V2:[^ ]*]];
|
||||
// CPP-DEFAULT-NEXT: int32_t* [[V3:[^ ]*]] = NULL;
|
||||
// CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = -1;
|
||||
// CPP-DEFAULT-NEXT: int8_t [[V3:[^ ]*]] = -1;
|
||||
// CPP-DEFAULT-NEXT: uint8_t [[V4:[^ ]*]] = 255;
|
||||
// CPP-DEFAULT-NEXT: int32_t* [[V5:[^ ]*]];
|
||||
// CPP-DEFAULT-NEXT: int32_t* [[V6:[^ ]*]] = NULL;
|
||||
|
||||
// CPP-DECLTOP: void emitc_constant() {
|
||||
// CPP-DECLTOP-NEXT: int32_t [[V0:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t [[V1:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t* [[V2:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t* [[V3:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t [[V2:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int8_t [[V3:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: uint8_t [[V4:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t* [[V5:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: int32_t* [[V6:[^ ]*]];
|
||||
// CPP-DECLTOP-NEXT: ;
|
||||
// CPP-DECLTOP-NEXT: [[V1]] = 42;
|
||||
// CPP-DECLTOP-NEXT: [[V2]] = -1;
|
||||
// CPP-DECLTOP-NEXT: [[V3]] = -1;
|
||||
// CPP-DECLTOP-NEXT: [[V4]] = 255;
|
||||
// CPP-DECLTOP-NEXT: ;
|
||||
// CPP-DECLTOP-NEXT: [[V3]] = NULL;
|
||||
// CPP-DECLTOP-NEXT: [[V6]] = NULL;
|
||||
|
||||
Reference in New Issue
Block a user