19f3f6d7bSStella Laurenzo# RUN: %PYTHON %s | FileCheck %s 29f3f6d7bSStella Laurenzo# Note that this is separate from ir_attributes.py since it depends on numpy, 39f3f6d7bSStella Laurenzo# and we may want to disable if not available. 49f3f6d7bSStella Laurenzo 59f3f6d7bSStella Laurenzoimport gc 69f3f6d7bSStella Laurenzofrom mlir.ir import * 79f3f6d7bSStella Laurenzoimport numpy as np 89f3f6d7bSStella Laurenzo 99f3f6d7bSStella Laurenzodef run(f): 109f3f6d7bSStella Laurenzo print("\nTEST:", f.__name__) 119f3f6d7bSStella Laurenzo f() 129f3f6d7bSStella Laurenzo gc.collect() 139f3f6d7bSStella Laurenzo assert Context._get_live_count() == 0 145d6d30edSStella Laurenzo return f 159f3f6d7bSStella Laurenzo 169f3f6d7bSStella Laurenzo################################################################################ 179f3f6d7bSStella Laurenzo# Tests of the array/buffer .get() factory method on unsupported dtype. 189f3f6d7bSStella Laurenzo################################################################################ 199f3f6d7bSStella Laurenzo 205d6d30edSStella Laurenzo@run 219f3f6d7bSStella Laurenzodef testGetDenseElementsUnsupported(): 229f3f6d7bSStella Laurenzo with Context(): 239f3f6d7bSStella Laurenzo array = np.array([["hello", "goodbye"]]) 249f3f6d7bSStella Laurenzo try: 259f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 269f3f6d7bSStella Laurenzo except ValueError as e: 279f3f6d7bSStella Laurenzo # CHECK: unimplemented array format conversion from format: 289f3f6d7bSStella Laurenzo print(e) 299f3f6d7bSStella Laurenzo 309f3f6d7bSStella Laurenzo################################################################################ 319f3f6d7bSStella Laurenzo# Splats. 329f3f6d7bSStella Laurenzo################################################################################ 339f3f6d7bSStella Laurenzo 349f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsSplatInt 355d6d30edSStella Laurenzo@run 369f3f6d7bSStella Laurenzodef testGetDenseElementsSplatInt(): 379f3f6d7bSStella Laurenzo with Context(), Location.unknown(): 389f3f6d7bSStella Laurenzo t = IntegerType.get_signless(32) 399f3f6d7bSStella Laurenzo element = IntegerAttr.get(t, 555) 409f3f6d7bSStella Laurenzo shaped_type = RankedTensorType.get((2, 3, 4), t) 419f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get_splat(shaped_type, element) 429f3f6d7bSStella Laurenzo # CHECK: dense<555> : tensor<2x3x4xi32> 439f3f6d7bSStella Laurenzo print(attr) 449f3f6d7bSStella Laurenzo # CHECK: is_splat: True 459f3f6d7bSStella Laurenzo print("is_splat:", attr.is_splat) 469f3f6d7bSStella Laurenzo 479f3f6d7bSStella Laurenzo 489f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsSplatFloat 495d6d30edSStella Laurenzo@run 509f3f6d7bSStella Laurenzodef testGetDenseElementsSplatFloat(): 519f3f6d7bSStella Laurenzo with Context(), Location.unknown(): 529f3f6d7bSStella Laurenzo t = F32Type.get() 539f3f6d7bSStella Laurenzo element = FloatAttr.get(t, 1.2) 549f3f6d7bSStella Laurenzo shaped_type = RankedTensorType.get((2, 3, 4), t) 559f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get_splat(shaped_type, element) 569f3f6d7bSStella Laurenzo # CHECK: dense<1.200000e+00> : tensor<2x3x4xf32> 579f3f6d7bSStella Laurenzo print(attr) 589f3f6d7bSStella Laurenzo 599f3f6d7bSStella Laurenzo 609f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsSplatErrors 615d6d30edSStella Laurenzo@run 629f3f6d7bSStella Laurenzodef testGetDenseElementsSplatErrors(): 639f3f6d7bSStella Laurenzo with Context(), Location.unknown(): 649f3f6d7bSStella Laurenzo t = F32Type.get() 659f3f6d7bSStella Laurenzo other_t = F64Type.get() 669f3f6d7bSStella Laurenzo element = FloatAttr.get(t, 1.2) 679f3f6d7bSStella Laurenzo other_element = FloatAttr.get(other_t, 1.2) 689f3f6d7bSStella Laurenzo shaped_type = RankedTensorType.get((2, 3, 4), t) 699f3f6d7bSStella Laurenzo dynamic_shaped_type = UnrankedTensorType.get(t) 709f3f6d7bSStella Laurenzo non_shaped_type = t 719f3f6d7bSStella Laurenzo 729f3f6d7bSStella Laurenzo try: 739f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get_splat(non_shaped_type, element) 749f3f6d7bSStella Laurenzo except ValueError as e: 759f3f6d7bSStella Laurenzo # CHECK: Expected a static ShapedType for the shaped_type parameter: Type(f32) 769f3f6d7bSStella Laurenzo print(e) 779f3f6d7bSStella Laurenzo 789f3f6d7bSStella Laurenzo try: 799f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get_splat(dynamic_shaped_type, element) 809f3f6d7bSStella Laurenzo except ValueError as e: 819f3f6d7bSStella Laurenzo # CHECK: Expected a static ShapedType for the shaped_type parameter: Type(tensor<*xf32>) 829f3f6d7bSStella Laurenzo print(e) 839f3f6d7bSStella Laurenzo 849f3f6d7bSStella Laurenzo try: 859f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get_splat(shaped_type, other_element) 869f3f6d7bSStella Laurenzo except ValueError as e: 879f3f6d7bSStella Laurenzo # CHECK: Shaped element type and attribute type must be equal: shaped=Type(tensor<2x3x4xf32>), element=Attribute(1.200000e+00 : f64) 889f3f6d7bSStella Laurenzo print(e) 899f3f6d7bSStella Laurenzo 905d6d30edSStella Laurenzo 915d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testRepeatedValuesSplat 925d6d30edSStella Laurenzo@run 935d6d30edSStella Laurenzodef testRepeatedValuesSplat(): 945d6d30edSStella Laurenzo with Context(): 955d6d30edSStella Laurenzo array = np.array([[1.0, 1.0, 1.0], [1.0, 1.0, 1.0]], dtype=np.float32) 965d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array) 975d6d30edSStella Laurenzo # CHECK: dense<1.000000e+00> : tensor<2x3xf32> 985d6d30edSStella Laurenzo print(attr) 995d6d30edSStella Laurenzo # CHECK: is_splat: True 1005d6d30edSStella Laurenzo print("is_splat:", attr.is_splat) 101*c5f445d1SStella Laurenzo # TODO: Re-enable this once a solution is found to raising an exception 102*c5f445d1SStella Laurenzo # from buffer protocol. 103*c5f445d1SStella Laurenzo # Reported as https://github.com/pybind/pybind11/issues/3336 104*c5f445d1SStella Laurenzo # print(np.array(attr)) 1055d6d30edSStella Laurenzo 1065d6d30edSStella Laurenzo 1075d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testNonSplat 1085d6d30edSStella Laurenzo@run 1095d6d30edSStella Laurenzodef testNonSplat(): 1105d6d30edSStella Laurenzo with Context(): 1115d6d30edSStella Laurenzo array = np.array([2.0, 1.0, 1.0], dtype=np.float32) 1125d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array) 1135d6d30edSStella Laurenzo # CHECK: is_splat: False 1145d6d30edSStella Laurenzo print("is_splat:", attr.is_splat) 1159f3f6d7bSStella Laurenzo 1169f3f6d7bSStella Laurenzo 1179f3f6d7bSStella Laurenzo################################################################################ 1189f3f6d7bSStella Laurenzo# Tests of the array/buffer .get() factory method, in all of its permutations. 1199f3f6d7bSStella Laurenzo################################################################################ 1209f3f6d7bSStella Laurenzo 1215d6d30edSStella Laurenzo### explicitly provided types 1225d6d30edSStella Laurenzo 1235d6d30edSStella Laurenzo@run 1245d6d30edSStella Laurenzodef testGetDenseElementsBF16(): 1255d6d30edSStella Laurenzo with Context(): 1265d6d30edSStella Laurenzo array = np.array([[2, 4, 8], [16, 32, 64]], dtype=np.uint16) 1275d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array, type=BF16Type.get()) 1285d6d30edSStella Laurenzo # Note: These values don't mean much since just bit-casting. But they 1295d6d30edSStella Laurenzo # shouldn't change. 1305d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[1.836710e-40, 3.673420e-40, 7.346840e-40], [1.469370e-39, 2.938740e-39, 5.877470e-39]]> : tensor<2x3xbf16> 1315d6d30edSStella Laurenzo print(attr) 1325d6d30edSStella Laurenzo 1335d6d30edSStella Laurenzo@run 1345d6d30edSStella Laurenzodef testGetDenseElementsInteger4(): 1355d6d30edSStella Laurenzo with Context(): 1365d6d30edSStella Laurenzo array = np.array([[2, 4, 7], [-2, -4, -8]], dtype=np.uint8) 1375d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array, type=IntegerType.get_signless(4)) 1385d6d30edSStella Laurenzo # Note: These values don't mean much since just bit-casting. But they 1395d6d30edSStella Laurenzo # shouldn't change. 1405d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[2, 4, 7], [-2, -4, -8]]> : tensor<2x3xi4> 1415d6d30edSStella Laurenzo print(attr) 1425d6d30edSStella Laurenzo 1435d6d30edSStella Laurenzo 1445d6d30edSStella Laurenzo@run 1455d6d30edSStella Laurenzodef testGetDenseElementsBool(): 1465d6d30edSStella Laurenzo with Context(): 1475d6d30edSStella Laurenzo bool_array = np.array([[1, 0, 1], [0, 1, 0]], dtype=np.bool_) 1485d6d30edSStella Laurenzo array = np.packbits(bool_array, axis=None, bitorder="little") 1495d6d30edSStella Laurenzo attr = DenseElementsAttr.get( 1505d6d30edSStella Laurenzo array, type=IntegerType.get_signless(1), shape=bool_array.shape) 1515d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[true, false, true], [false, true, false]]> : tensor<2x3xi1> 1525d6d30edSStella Laurenzo print(attr) 1535d6d30edSStella Laurenzo 1545d6d30edSStella Laurenzo 1555d6d30edSStella Laurenzo@run 1565d6d30edSStella Laurenzodef testGetDenseElementsBoolSplat(): 1575d6d30edSStella Laurenzo with Context(): 1585d6d30edSStella Laurenzo zero = np.array(0, dtype=np.uint8) 1595d6d30edSStella Laurenzo one = np.array(255, dtype=np.uint8) 1605d6d30edSStella Laurenzo print(one) 1615d6d30edSStella Laurenzo # CHECK: dense<false> : tensor<4x2x5xi1> 1625d6d30edSStella Laurenzo print(DenseElementsAttr.get( 1635d6d30edSStella Laurenzo zero, type=IntegerType.get_signless(1), shape=(4, 2, 5))) 1645d6d30edSStella Laurenzo # CHECK: dense<true> : tensor<4x2x5xi1> 1655d6d30edSStella Laurenzo print(DenseElementsAttr.get( 1665d6d30edSStella Laurenzo one, type=IntegerType.get_signless(1), shape=(4, 2, 5))) 1675d6d30edSStella Laurenzo 1685d6d30edSStella Laurenzo 1699f3f6d7bSStella Laurenzo### float and double arrays. 1709f3f6d7bSStella Laurenzo 1715d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsF16 1725d6d30edSStella Laurenzo@run 1735d6d30edSStella Laurenzodef testGetDenseElementsF16(): 1745d6d30edSStella Laurenzo with Context(): 1755d6d30edSStella Laurenzo array = np.array([[2.0, 4.0, 8.0], [16.0, 32.0, 64.0]], dtype=np.float16) 1765d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array) 1775d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[2.000000e+00, 4.000000e+00, 8.000000e+00], [1.600000e+01, 3.200000e+01, 6.400000e+01]]> : tensor<2x3xf16> 1785d6d30edSStella Laurenzo print(attr) 1795d6d30edSStella Laurenzo # CHECK: {{\[}}[ 2. 4. 8.] 1805d6d30edSStella Laurenzo # CHECK: {{\[}}16. 32. 64.]] 1815d6d30edSStella Laurenzo print(np.array(attr)) 1825d6d30edSStella Laurenzo 1835d6d30edSStella Laurenzo 1849f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsF32 1855d6d30edSStella Laurenzo@run 1869f3f6d7bSStella Laurenzodef testGetDenseElementsF32(): 1879f3f6d7bSStella Laurenzo with Context(): 1889f3f6d7bSStella Laurenzo array = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]], dtype=np.float32) 1899f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 1909f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1.100000e+00, 2.200000e+00, 3.300000e+00], [4.400000e+00, 5.500000e+00, 6.600000e+00]]> : tensor<2x3xf32> 1919f3f6d7bSStella Laurenzo print(attr) 1929f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1.1 2.2 3.3] 1939f3f6d7bSStella Laurenzo # CHECK: {{\[}}4.4 5.5 6.6]] 1949f3f6d7bSStella Laurenzo print(np.array(attr)) 1959f3f6d7bSStella Laurenzo 1969f3f6d7bSStella Laurenzo 1979f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsF64 1985d6d30edSStella Laurenzo@run 1999f3f6d7bSStella Laurenzodef testGetDenseElementsF64(): 2009f3f6d7bSStella Laurenzo with Context(): 2019f3f6d7bSStella Laurenzo array = np.array([[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]], dtype=np.float64) 2029f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 2039f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1.100000e+00, 2.200000e+00, 3.300000e+00], [4.400000e+00, 5.500000e+00, 6.600000e+00]]> : tensor<2x3xf64> 2049f3f6d7bSStella Laurenzo print(attr) 2059f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1.1 2.2 3.3] 2069f3f6d7bSStella Laurenzo # CHECK: {{\[}}4.4 5.5 6.6]] 2079f3f6d7bSStella Laurenzo print(np.array(attr)) 2089f3f6d7bSStella Laurenzo 2099f3f6d7bSStella Laurenzo 2105d6d30edSStella Laurenzo### 16 bit integer arrays 2115d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI16Signless 2125d6d30edSStella Laurenzo@run 2135d6d30edSStella Laurenzodef testGetDenseElementsI16Signless(): 2145d6d30edSStella Laurenzo with Context(): 2155d6d30edSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int16) 2165d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array) 2175d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi16> 2185d6d30edSStella Laurenzo print(attr) 2195d6d30edSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2205d6d30edSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2215d6d30edSStella Laurenzo print(np.array(attr)) 2225d6d30edSStella Laurenzo 2235d6d30edSStella Laurenzo 2245d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI16Signless 2255d6d30edSStella Laurenzo@run 2265d6d30edSStella Laurenzodef testGetDenseElementsUI16Signless(): 2275d6d30edSStella Laurenzo with Context(): 2285d6d30edSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint16) 2295d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array) 2305d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi16> 2315d6d30edSStella Laurenzo print(attr) 2325d6d30edSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2335d6d30edSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2345d6d30edSStella Laurenzo print(np.array(attr)) 2355d6d30edSStella Laurenzo 2365d6d30edSStella Laurenzo 2375d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI16 2385d6d30edSStella Laurenzo@run 2395d6d30edSStella Laurenzodef testGetDenseElementsI16(): 2405d6d30edSStella Laurenzo with Context(): 2415d6d30edSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int16) 2425d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 2435d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xsi16> 2445d6d30edSStella Laurenzo print(attr) 2455d6d30edSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2465d6d30edSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2475d6d30edSStella Laurenzo print(np.array(attr)) 2485d6d30edSStella Laurenzo 2495d6d30edSStella Laurenzo 2505d6d30edSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI16 2515d6d30edSStella Laurenzo@run 2525d6d30edSStella Laurenzodef testGetDenseElementsUI16(): 2535d6d30edSStella Laurenzo with Context(): 2545d6d30edSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint16) 2555d6d30edSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 2565d6d30edSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xui16> 2575d6d30edSStella Laurenzo print(attr) 2585d6d30edSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2595d6d30edSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2605d6d30edSStella Laurenzo print(np.array(attr)) 2619f3f6d7bSStella Laurenzo 2629f3f6d7bSStella Laurenzo### 32 bit integer arrays 2639f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI32Signless 2645d6d30edSStella Laurenzo@run 2659f3f6d7bSStella Laurenzodef testGetDenseElementsI32Signless(): 2669f3f6d7bSStella Laurenzo with Context(): 2679f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int32) 2689f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 2699f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi32> 2709f3f6d7bSStella Laurenzo print(attr) 2719f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2729f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2739f3f6d7bSStella Laurenzo print(np.array(attr)) 2749f3f6d7bSStella Laurenzo 2759f3f6d7bSStella Laurenzo 2769f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI32Signless 2775d6d30edSStella Laurenzo@run 2789f3f6d7bSStella Laurenzodef testGetDenseElementsUI32Signless(): 2799f3f6d7bSStella Laurenzo with Context(): 2809f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint32) 2819f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 2829f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi32> 2839f3f6d7bSStella Laurenzo print(attr) 2849f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2859f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2869f3f6d7bSStella Laurenzo print(np.array(attr)) 2879f3f6d7bSStella Laurenzo 2889f3f6d7bSStella Laurenzo 2899f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI32 2905d6d30edSStella Laurenzo@run 2919f3f6d7bSStella Laurenzodef testGetDenseElementsI32(): 2929f3f6d7bSStella Laurenzo with Context(): 2939f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int32) 2949f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 2959f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xsi32> 2969f3f6d7bSStella Laurenzo print(attr) 2979f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 2989f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 2999f3f6d7bSStella Laurenzo print(np.array(attr)) 3009f3f6d7bSStella Laurenzo 3019f3f6d7bSStella Laurenzo 3029f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI32 3035d6d30edSStella Laurenzo@run 3049f3f6d7bSStella Laurenzodef testGetDenseElementsUI32(): 3059f3f6d7bSStella Laurenzo with Context(): 3069f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint32) 3079f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 3089f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xui32> 3099f3f6d7bSStella Laurenzo print(attr) 3109f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 3119f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 3129f3f6d7bSStella Laurenzo print(np.array(attr)) 3139f3f6d7bSStella Laurenzo 3149f3f6d7bSStella Laurenzo 3159f3f6d7bSStella Laurenzo## 64bit integer arrays 3169f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI64Signless 3175d6d30edSStella Laurenzo@run 3189f3f6d7bSStella Laurenzodef testGetDenseElementsI64Signless(): 3199f3f6d7bSStella Laurenzo with Context(): 3209f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int64) 3219f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 3229f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi64> 3239f3f6d7bSStella Laurenzo print(attr) 3249f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 3259f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 3269f3f6d7bSStella Laurenzo print(np.array(attr)) 3279f3f6d7bSStella Laurenzo 3289f3f6d7bSStella Laurenzo 3299f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI64Signless 3305d6d30edSStella Laurenzo@run 3319f3f6d7bSStella Laurenzodef testGetDenseElementsUI64Signless(): 3329f3f6d7bSStella Laurenzo with Context(): 3339f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint64) 3349f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array) 3359f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xi64> 3369f3f6d7bSStella Laurenzo print(attr) 3379f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 3389f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 3399f3f6d7bSStella Laurenzo print(np.array(attr)) 3409f3f6d7bSStella Laurenzo 3419f3f6d7bSStella Laurenzo 3429f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsI64 3435d6d30edSStella Laurenzo@run 3449f3f6d7bSStella Laurenzodef testGetDenseElementsI64(): 3459f3f6d7bSStella Laurenzo with Context(): 3469f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.int64) 3479f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 3489f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xsi64> 3499f3f6d7bSStella Laurenzo print(attr) 3509f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 3519f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 3529f3f6d7bSStella Laurenzo print(np.array(attr)) 3539f3f6d7bSStella Laurenzo 3549f3f6d7bSStella Laurenzo 3559f3f6d7bSStella Laurenzo# CHECK-LABEL: TEST: testGetDenseElementsUI64 3565d6d30edSStella Laurenzo@run 3579f3f6d7bSStella Laurenzodef testGetDenseElementsUI64(): 3589f3f6d7bSStella Laurenzo with Context(): 3599f3f6d7bSStella Laurenzo array = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.uint64) 3609f3f6d7bSStella Laurenzo attr = DenseElementsAttr.get(array, signless=False) 3619f3f6d7bSStella Laurenzo # CHECK: dense<{{\[}}[1, 2, 3], [4, 5, 6]]> : tensor<2x3xui64> 3629f3f6d7bSStella Laurenzo print(attr) 3639f3f6d7bSStella Laurenzo # CHECK: {{\[}}[1 2 3] 3649f3f6d7bSStella Laurenzo # CHECK: {{\[}}4 5 6]] 3659f3f6d7bSStella Laurenzo print(np.array(attr)) 3669f3f6d7bSStella Laurenzo 367