xref: /llvm-project/mlir/test/python/dialects/arith_llvm.py (revision 8934b10642664c0824f45f115b2a0afcb56a5e5f)
1*8934b106SJacques Pienaar# RUN: %PYTHON %s | FileCheck %s
2*8934b106SJacques Pienaarfrom functools import partialmethod
3*8934b106SJacques Pienaar
4*8934b106SJacques Pienaarfrom mlir.ir import *
5*8934b106SJacques Pienaarimport mlir.dialects.arith as arith
6*8934b106SJacques Pienaarimport mlir.dialects.func as func
7*8934b106SJacques Pienaarimport mlir.dialects.llvm as llvm
8*8934b106SJacques Pienaar
9*8934b106SJacques Pienaar
10*8934b106SJacques Pienaardef run(f):
11*8934b106SJacques Pienaar    print("\nTEST:", f.__name__)
12*8934b106SJacques Pienaar    f()
13*8934b106SJacques Pienaar
14*8934b106SJacques Pienaar
15*8934b106SJacques Pienaar# CHECK-LABEL: TEST: testOverflowFlags
16*8934b106SJacques Pienaar# Test mostly to repro and verify error addressed for Python bindings.
17*8934b106SJacques Pienaar@run
18*8934b106SJacques Pienaardef testOverflowFlags():
19*8934b106SJacques Pienaar    with Context() as ctx, Location.unknown():
20*8934b106SJacques Pienaar        module = Module.create()
21*8934b106SJacques Pienaar        with InsertionPoint(module.body):
22*8934b106SJacques Pienaar            a = arith.ConstantOp(value=42, result=IntegerType.get_signless(32))
23*8934b106SJacques Pienaar            r = arith.AddIOp(a, a, overflowFlags=arith.IntegerOverflowFlags.nsw)
24*8934b106SJacques Pienaar            # CHECK: arith.addi {{.*}}, {{.*}} overflow<nsw> : i32
25*8934b106SJacques Pienaar            print(r)
26