xref: /llvm-project/mlir/test/Target/Cpp/bitwise_operators.mlir (revision 7ac03e8a369d8ac74a2c4d97a9e2a41221428abd)
1// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s
2
3func.func @bitwise(%arg0: i32, %arg1: i32) -> () {
4  %0 = emitc.bitwise_and %arg0, %arg1 : (i32, i32) -> i32
5  %1 = emitc.bitwise_left_shift %arg0, %arg1 : (i32, i32) -> i32
6  %2 = emitc.bitwise_not %arg0 : (i32) -> i32
7  %3 = emitc.bitwise_or %arg0, %arg1 : (i32, i32) -> i32
8  %4 = emitc.bitwise_right_shift %arg0, %arg1 : (i32, i32) -> i32
9  %5 = emitc.bitwise_xor %arg0, %arg1 : (i32, i32) -> i32
10
11  return
12}
13
14// CHECK-LABEL: void bitwise
15// CHECK-NEXT:  int32_t [[V2:[^ ]*]] = [[V0:[^ ]*]] & [[V1:[^ ]*]];
16// CHECK-NEXT:  int32_t [[V3:[^ ]*]] = [[V0]] << [[V1]];
17// CHECK-NEXT:  int32_t [[V4:[^ ]*]] = ~[[V0]];
18// CHECK-NEXT:  int32_t [[V5:[^ ]*]] = [[V0]] | [[V1]];
19// CHECK-NEXT:  int32_t [[V6:[^ ]*]] = [[V0]] >> [[V1]];
20// CHECK-NEXT:  int32_t [[V7:[^ ]*]] = [[V0]] ^ [[V1]];
21