forked from llvm/torch-mlir
-
Notifications
You must be signed in to change notification settings - Fork 0
/
binary_expressions.py
94 lines (68 loc) · 1.8 KB
/
binary_expressions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# RUN: %PYTHON %s | npcomp-opt -split-input-file | FileCheck %s --dump-input=fail
from npcomp.compiler.numpy import test_config
import_global = test_config.create_import_dump_decorator()
# Full checking for add. Others just check validity.
# CHECK-LABEL: func @add
@import_global
def add():
# CHECK: %[[A:.*]] = constant 1 : i64
# CHECK: %[[B:.*]] = constant 2 : i64
a = 1
b = 2
# CHECK: {{.*}} = basicpy.binary_expr %[[A]] "Add" %[[B]] : (i64, i64) -> !basicpy.UnknownType
return a + b
# CHECK-LABEL: func @sub
@import_global
def sub():
# CHECK: basicpy.binary_expr {{.*}} "Sub"
return 4 - 2
# CHECK-LABEL: func @mult
@import_global
def mult():
# CHECK: basicpy.binary_expr {{.*}} "Mult"
return 4 * 2
# CHECK-LABEL: func @div
@import_global
def div():
# CHECK: basicpy.binary_expr {{.*}} "Div"
return 4 / 2
# CHECK-LABEL: func @floor_div
@import_global
def floor_div():
# CHECK: basicpy.binary_expr {{.*}} "FloorDiv"
return 4 // 2
# CHECK-LABEL: func @matmul
@import_global
def matmul():
# CHECK: basicpy.binary_expr {{.*}} "MatMult"
return 4 @ 2
# CHECK-LABEL: func @modulo
@import_global
def modulo():
# CHECK: basicpy.binary_expr {{.*}} "Mod"
return 4 % 2
# CHECK-LABEL: func @left_shift
@import_global
def left_shift():
# CHECK: basicpy.binary_expr {{.*}} "LShift"
return 4 << 2
# CHECK-LABEL: func @right_shift
@import_global
def right_shift():
# CHECK: basicpy.binary_expr {{.*}} "RShift"
return 4 >> 2
# CHECK-LABEL: func @bit_and
@import_global
def bit_and():
# CHECK: basicpy.binary_expr {{.*}} "BitAnd"
return 4 & 2
# CHECK-LABEL: func @bit_xor
@import_global
def bit_xor():
# CHECK: basicpy.binary_expr {{.*}} "BitXor"
return 4 ^ 2
# CHECK-LABEL: func @bit_or
@import_global
def bit_or():
# CHECK: basicpy.binary_expr {{.*}} "BitOr"
return 4 | 2