Files
clang-p2996/mlir/test/Target/Cpp/bitwise_operators.mlir
Marius Brehler 7ac03e8a36 [mlir][EmitC] Add bitwise operators (#83387)
This adds operations for bitwise operators. Furthermore, an UnaryOp
class and a helper to print unary operations are introduced.
2024-03-01 13:21:11 +01:00

21 lines
840 B
MLIR

// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s
func.func @bitwise(%arg0: i32, %arg1: i32) -> () {
%0 = emitc.bitwise_and %arg0, %arg1 : (i32, i32) -> i32
%1 = emitc.bitwise_left_shift %arg0, %arg1 : (i32, i32) -> i32
%2 = emitc.bitwise_not %arg0 : (i32) -> i32
%3 = emitc.bitwise_or %arg0, %arg1 : (i32, i32) -> i32
%4 = emitc.bitwise_right_shift %arg0, %arg1 : (i32, i32) -> i32
%5 = emitc.bitwise_xor %arg0, %arg1 : (i32, i32) -> i32
return
}
// CHECK-LABEL: void bitwise
// CHECK-NEXT: int32_t [[V2:[^ ]*]] = [[V0:[^ ]*]] & [[V1:[^ ]*]];
// CHECK-NEXT: int32_t [[V3:[^ ]*]] = [[V0]] << [[V1]];
// CHECK-NEXT: int32_t [[V4:[^ ]*]] = ~[[V0]];
// CHECK-NEXT: int32_t [[V5:[^ ]*]] = [[V0]] | [[V1]];
// CHECK-NEXT: int32_t [[V6:[^ ]*]] = [[V0]] >> [[V1]];
// CHECK-NEXT: int32_t [[V7:[^ ]*]] = [[V0]] ^ [[V1]];