BitwiseOr#

  • Domain: ai.onnx

  • Since version: 18

Returns the tensor resulting from performing the bitwise BitwiseOr operation elementwise on the input tensors A and B (with Numpy-style broadcasting support).

Inputs

  • A (T): First input operand for the bitwise operator.

  • B (T): Second input operand for the bitwise operator.

Outputs

  • C (T): Result tensor.

Type Constraints

  • T: Constrain input to integer tensors. Allowed types: tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).

Examples#

test_bitwise_or_i16_4d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4, 5, 6), dtype=int16
    [[[[ 0, -1,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0, -1],
       [ 0,  0, -1,  1,  0,  0],
       [ 0,  2,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  1,  1]],

      [[ 0, -1,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  1, -1],
       [ 0,  0,  0,  0,  0,  0],
       [-1,  0,  0,  0,  0, -1],
       [ 0,  0,  0,  1,  1,  0]],

      [[ 0,  0,  0,  0,  0,  0],
       [ 0,  1, -1,  0,  0,  0],
       [ 2, -1, -1, -1,  0,  1],
       [ 0,  0, -1,  1,  0,  0],
       [ 0,  2,  0,  1,  0,  0]],

      [[ 0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  1,  0,  0],
       [ 1,  0,  1,  0,  0, -1],
       [ 0,  0,  0,  0,  1,  0],
       [ 1,  1, -1,  0,  1,  0]]],


     [[[ 0, -1,  0,  1, -1, -1],
       [-1,  2,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  1,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 0,  1,  0,  0,  0,  0]],

      [[ 1,  0,  0,  0,  0, -1],
       [-1,  0,  0, -1,  0,  0],
       [ 0,  0,  1,  0,  0,  0],
       [ 0,  2,  0,  2,  0, -1],
       [ 0,  0,  0,  1,  0, -1]],

      [[ 0, -1,  0, -1,  0,  0],
       [ 0,  0,  1, -1,  0,  1],
       [ 0,  0, -1,  0,  0,  1],
       [ 0,  0,  0,  0,  0,  0],
       [ 0,  0,  0, -1,  0,  0]],

      [[ 0,  2,  0,  2,  0,  0],
       [ 1,  0, -1,  1,  0,  0],
       [ 0,  0,  0, -1,  0,  0],
       [ 0,  0, -1,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  1]]],


     [[[ 0, -1, -2,  0,  0,  0],
       [ 0,  0, -2,  0,  0,  0],
       [ 0,  2,  0, -1, -1,  0],
       [ 0,  0,  0,  1,  0,  0],
       [ 0,  0,  0,  0,  0,  1]],

      [[ 0,  0,  0, -1,  0,  1],
       [ 0,  0,  0,  0,  1,  0],
       [ 0,  0,  0,  0,  2,  0],
       [ 0,  0,  0,  0,  1,  0],
       [ 2,  0,  0,  0,  0,  0]],

      [[ 0,  0,  0,  0,  0, -1],
       [ 1,  1, -1,  0,  0, -1],
       [ 0,  0,  0,  0,  1,  0],
       [ 1,  0,  0, -1,  0,  0],
       [ 0, -1,  0,  0,  0,  0]],

      [[ 0, -1,  0,  0,  0,  0],
       [ 1,  0, -1,  1,  0,  0],
       [ 0,  0,  0,  1,  1,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 0, -1,  0, -2,  0,  0]]]]
  y: shape=(3, 4, 5, 6), dtype=int16
    [[[[ 0,  0,  1,  1,  0, -1],
       [ 0,  2,  1,  0,  0,  0],
       [ 0,  1,  1,  0,  0,  0],
       [ 0,  0,  0,  0, -1, -1],
       [ 0,  0,  0,  0, -1,  2]],

      [[ 1,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0, -1,  0],
       [ 0,  0, -1,  0, -1,  0],
       [ 0,  1,  1,  0,  0,  0],
       [ 0,  0,  0,  0,  1,  0]],

      [[ 0, -1,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  1,  0],
       [ 0,  0,  0, -1,  0,  0],
       [ 0,  0,  0,  1,  0,  1],
       [ 0,  0,  0,  0,  0, -2]],

      [[ 0,  0,  0,  0, -1,  0],
       [ 0,  1,  0,  0,  1,  0],
       [ 0,  0,  0,  0,  1,  1],
       [ 1,  0,  0,  0,  0, -1],
       [ 0,  0,  1,  1,  0,  0]]],


     [[[ 0,  0,  0,  0,  0, -1],
       [ 0, -1, -1,  0,  1,  0],
       [ 0,  0,  0,  2,  0,  2],
       [ 0,  0,  0,  0, -1,  0],
       [ 0, -1,  0,  0, -1,  0]],

      [[ 0,  1, -1, -1,  0,  0],
       [-1,  0, -1,  0,  1,  0],
       [-2,  0,  0,  0,  1,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 0,  0, -2,  0, -1,  0]],

      [[ 0,  0,  0,  0,  0,  0],
       [ 0, -1,  0, -1,  1, -1],
       [ 1,  2,  0,  0,  0, -1],
       [ 0,  0, -1,  0,  2,  0],
       [ 0,  0,  1,  0,  0,  0]],

      [[ 1, -1,  0,  0, -1,  0],
       [ 0,  1,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0, -1],
       [ 0, -1,  0,  2,  2,  0],
       [ 1,  1,  1,  0, -1,  0]]],


     [[[-1,  0, -1,  0,  0, -1],
       [-1, -2, -1,  0, -1,  0],
       [ 0,  0, -1,  0,  0,  0],
       [ 0, -1,  0,  0,  0,  1],
       [ 1,  0,  0,  0,  1,  0]],

      [[-1,  0,  0,  0,  0, -2],
       [ 0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0],
       [-1, -1,  0,  0,  0, -1],
       [ 0,  0,  1,  0,  0,  0]],

      [[ 0,  0,  0, -1,  0, -2],
       [ 1,  1,  0,  0,  0,  0],
       [ 1,  0,  0,  0,  0,  1],
       [-2,  0,  0,  0,  0,  0],
       [ 0, -1,  0,  1, -1,  0]],

      [[ 0,  1,  1,  0,  0,  0],
       [ 0,  0, -2,  1, -1,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 2, -1,  0,  0,  0,  0]]]]

Outputs:
  z: shape=(3, 4, 5, 6), dtype=int16
    [[[[ 0, -1,  1,  1,  0, -1],
       [ 0,  2,  1,  0,  0, -1],
       [ 0,  1, -1,  1,  0,  0],
       [ 0,  2,  0,  0, -1, -1],
       [ 0,  0,  0,  0, -1,  3]],

      [[ 1, -1,  0,  0,  0,  0],
       [ 0,  0,  0,  0, -1, -1],
       [ 0,  0, -1,  0, -1,  0],
       [-1,  1,  1,  0,  0, -1],
       [ 0,  0,  0,  1,  1,  0]],

      [[ 0, -1,  0,  0,  0,  0],
       [ 0,  1, -1,  0,  1,  0],
       [ 2, -1, -1, -1,  0,  1],
       [ 0,  0, -1,  1,  0,  1],
       [ 0,  2,  0,  1,  0, -2]],

      [[ 0,  0,  0,  0, -1,  0],
       [ 0,  1,  0,  1,  1,  0],
       [ 1,  0,  1,  0,  1, -1],
       [ 1,  0,  0,  0,  1, -1],
       [ 1,  1, -1,  1,  1,  0]]],


     [[[ 0, -1,  0,  1, -1, -1],
       [-1, -1, -1,  0,  1,  0],
       [ 0,  0,  0,  2,  1,  2],
       [ 0,  0,  0,  0, -1,  0],
       [ 0, -1,  0,  0, -1,  0]],

      [[ 1,  1, -1, -1,  0, -1],
       [-1,  0, -1, -1,  1,  0],
       [-2,  0,  1,  0,  1,  0],
       [ 0,  2,  0,  2,  0, -1],
       [ 0,  0, -2,  1, -1, -1]],

      [[ 0, -1,  0, -1,  0,  0],
       [ 0, -1,  1, -1,  1, -1],
       [ 1,  2, -1,  0,  0, -1],
       [ 0,  0, -1,  0,  2,  0],
       [ 0,  0,  1, -1,  0,  0]],

      [[ 1, -1,  0,  2, -1,  0],
       [ 1,  1, -1,  1,  0,  0],
       [ 0,  0,  0, -1,  0, -1],
       [ 0, -1, -1,  2,  2,  0],
       [ 1,  1,  1,  0, -1,  1]]],


     [[[-1, -1, -1,  0,  0, -1],
       [-1, -2, -1,  0, -1,  0],
       [ 0,  2, -1, -1, -1,  0],
       [ 0, -1,  0,  1,  0,  1],
       [ 1,  0,  0,  0,  1,  1]],

      [[-1,  0,  0, -1,  0, -1],
       [ 0,  0,  0,  0,  1,  0],
       [ 0,  0,  0,  0,  2,  0],
       [-1, -1,  0,  0,  1, -1],
       [ 2,  0,  1,  0,  0,  0]],

      [[ 0,  0,  0, -1,  0, -1],
       [ 1,  1, -1,  0,  0, -1],
       [ 1,  0,  0,  0,  1,  1],
       [-1,  0,  0, -1,  0,  0],
       [ 0, -1,  0,  1, -1,  0]],

      [[ 0, -1,  1,  0,  0,  0],
       [ 1,  0, -1,  1, -1,  0],
       [ 0,  0,  0,  1,  1,  0],
       [ 0,  0,  0,  0,  0,  0],
       [ 2, -1,  0, -2,  0,  0]]]]

test_bitwise_or_i32_2d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4), dtype=int32
    [[ 0,  1,  0, -1],
     [ 0,  0,  1,  0],
     [-1,  0, -1,  1]]
  y: shape=(3, 4), dtype=int32
    [[ 0,  0,  0,  3],
     [ 0,  1,  0, -1],
     [ 0,  0,  0,  0]]

Outputs:
  z: shape=(3, 4), dtype=int32
    [[ 0,  1,  0, -1],
     [ 0,  1,  1, -1],
     [-1,  0, -1,  1]]

test_bitwise_or_ui64_bcast_3v1d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4, 5), dtype=uint64
    [[[35862, 38690, 22776, 19804, 56026],
      [40232, 29640, 21983,  7228, 28252],
      [34490, 46290,  3977, 15623,   858],
      [13956, 44990, 30743, 65114, 13394]],

     [[60803, 65127, 46221,  6649, 10981],
      [  207, 43180, 26961, 21135, 44305],
      [25828,  6416, 50646, 17194, 33625],
      [37450, 18822, 41285, 36017, 60312]],

     [[48084, 62934, 46208, 55723, 52162],
      [61899, 12781,  5049, 40946, 62267],
      [44381, 58881, 38238, 33017, 30953],
      [15034, 41615, 56818, 52633, 59091]]]
  y: shape=(5,), dtype=uint64
    [16753, 17885, 46285, 45249,  4339]

Outputs:
  z: shape=(3, 4, 5), dtype=uint64
    [[[52599, 55295, 64765, 64989, 56059],
      [56697, 30685, 62943, 48381, 32511],
      [51195, 62943, 49101, 48583,  5115],
      [30709, 61439, 64735, 65243, 13555]],

     [[60915, 65535, 46285, 47609, 15095],
      [16895, 60925, 64989, 62159, 48627],
      [26101, 24029, 62943, 62443, 37883],
      [54139, 19935, 46541, 48369, 64507]],

     [[64501, 62943, 46285, 63979, 56307],
      [61947, 30205, 47101, 49139, 62459],
      [60797, 59357, 46559, 45305, 30971],
      [31739, 59359, 65023, 64985, 63219]]]

test_bitwise_or_ui8_bcast_4v3d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4, 5, 6), dtype=uint8
    [[[[110, 244, 184, 128, 128,  67],
       [105, 233, 150, 255,  30,  82],
       [174,   6,  74, 137,  22,  47],
       [ 63, 121, 127, 234, 204, 143],
       [ 50, 224, 252,  30,  75, 111]],

      [[ 84, 193,  29, 252, 132, 105],
       [ 41, 189,  73,  87, 230,  97],
       [186, 244, 138, 236,  93,  67],
       [  7, 245,  46,  16, 245, 236],
       [136,  82,  69, 147, 132,  28]],

      [[187, 186, 198, 223,  97, 220],
       [ 23, 240, 201, 101, 163,  51],
       [ 19, 168, 197, 193, 156,  30],
       [248, 185, 191, 239, 155, 145],
       [ 73,  27, 182, 127, 196,  62]],

      [[210,   5,  83, 135, 122, 152],
       [176, 239,  73, 127, 147,  39],
       [ 67,  11,  45, 143, 123,  63],
       [191, 183, 182, 196,  19, 190],
       [ 22,  53,  74, 171, 110, 127]]],


     [[[  6, 139, 250, 155,  34, 211],
       [196, 159, 198, 246, 136, 204],
       [ 80, 136, 104,  69,  41, 219],
       [154, 171,  53, 172,  72, 100],
       [109,  52, 162,  67, 152, 229]],

      [[230,  44, 215, 231, 122,  81],
       [182, 210,  97,  80, 231,  29],
       [ 59,  35, 201,  14, 108,  81],
       [166, 228, 142, 157,  61,  10],
       [102, 225, 237,  87, 157,  72]],

      [[193,  40, 192, 115,   2, 237],
       [ 96, 110, 108, 156, 181,  10],
       [118,  58, 251,   2, 138, 224],
       [194, 232,  15, 214, 164, 185],
       [ 61,  47, 254,  14, 208,  79]],

      [[251,  48,  50,  13,  36, 167],
       [123, 168, 217, 146,  41, 181],
       [199,  24, 179,  99,  16, 118],
       [201,  90,  14, 102, 204, 142],
       [ 35, 100,  67,  47, 135, 224]]],


     [[[221, 107, 252, 168,  62, 254],
       [245, 248,  79,  38, 242,  91],
       [226, 109, 115, 136,  97,  47],
       [ 17, 165, 172, 132, 140, 189],
       [119, 161,  43, 235,  38,  42]],

      [[220, 214, 151, 145, 128,  32],
       [135,   9, 160,  87, 137, 186],
       [122, 100,  43,  16,  94, 139],
       [222,   3, 118,  78, 170,  89],
       [239, 146,  68, 215,  65, 247]],

      [[220, 236,  18, 157, 184, 174],
       [129,  99, 188, 214,  79,  12],
       [ 24, 238,  79,  40,  91,  88],
       [236, 254, 125, 154, 111, 136],
       [185,   3, 153,   0, 156,  42]],

      [[124,  70,  54, 230,  12, 159],
       [ 16,  90,  74, 151, 216,  36],
       [155,  74, 179,  29,  80, 211],
       [ 67,  43, 244, 106,  26, 165],
       [ 21, 211, 222,  16, 221, 146]]]]
  y: shape=(4, 5, 6), dtype=uint8
    [[[ 99, 118, 121, 162,  45, 207],
      [ 85, 225,  23, 142, 137, 122],
      [ 88, 165, 195, 250,  64,  59],
      [132, 105, 247, 225,  94, 119],
      [ 68,  50, 171,  96,  75, 176]],

     [[ 24,  65, 115,  75,  59, 185],
      [ 75,  38, 192, 214, 216, 125],
      [171, 103, 222,   7, 107, 249],
      [ 34,   1, 140,  23, 210,  87],
      [143, 197,   5, 129,  93, 161]],

     [[193,  59, 152, 158, 211,  88],
      [ 20, 208,  27, 249,  26,  51],
      [244,  92, 170, 235, 132,  58],
      [ 43,  54, 243, 211,  96, 229],
      [ 34,  93,  24, 128, 199,   1]],

     [[244, 233,  80,  12,  33, 185],
      [167, 149,  38, 182,   4,  57],
      [ 97, 170, 216, 173,  92,  99],
      [106, 205,  76, 166, 130, 166],
      [138, 250,  22, 197, 217,  22]]]

Outputs:
  z: shape=(3, 4, 5, 6), dtype=uint8
    [[[[111, 246, 249, 162, 173, 207],
       [125, 233, 151, 255, 159, 122],
       [254, 167, 203, 251,  86,  63],
       [191, 121, 255, 235, 222, 255],
       [118, 242, 255, 126,  75, 255]],

      [[ 92, 193, 127, 255, 191, 249],
       [107, 191, 201, 215, 254, 125],
       [187, 247, 222, 239, 127, 251],
       [ 39, 245, 174,  23, 247, 255],
       [143, 215,  69, 147, 221, 189]],

      [[251, 187, 222, 223, 243, 220],
       [ 23, 240, 219, 253, 187,  51],
       [247, 252, 239, 235, 156,  62],
       [251, 191, 255, 255, 251, 245],
       [107,  95, 190, 255, 199,  63]],

      [[246, 237,  83, 143, 123, 185],
       [183, 255, 111, 255, 151,  63],
       [ 99, 171, 253, 175, 127, 127],
       [255, 255, 254, 230, 147, 190],
       [158, 255,  94, 239, 255, 127]]],


     [[[103, 255, 251, 187,  47, 223],
       [213, 255, 215, 254, 137, 254],
       [ 88, 173, 235, 255, 105, 251],
       [158, 235, 247, 237,  94, 119],
       [109,  54, 171,  99, 219, 245]],

      [[254, 109, 247, 239, 123, 249],
       [255, 246, 225, 214, 255, 125],
       [187, 103, 223,  15, 111, 249],
       [166, 229, 142, 159, 255,  95],
       [239, 229, 237, 215, 221, 233]],

      [[193,  59, 216, 255, 211, 253],
       [116, 254, 127, 253, 191,  59],
       [246, 126, 251, 235, 142, 250],
       [235, 254, 255, 215, 228, 253],
       [ 63, 127, 254, 142, 215,  79]],

      [[255, 249, 114,  13,  37, 191],
       [255, 189, 255, 182,  45, 189],
       [231, 186, 251, 239,  92, 119],
       [235, 223,  78, 230, 206, 174],
       [171, 254,  87, 239, 223, 246]]],


     [[[255, 127, 253, 170,  63, 255],
       [245, 249,  95, 174, 251, 123],
       [250, 237, 243, 250,  97,  63],
       [149, 237, 255, 229, 222, 255],
       [119, 179, 171, 235, 111, 186]],

      [[220, 215, 247, 219, 187, 185],
       [207,  47, 224, 215, 217, 255],
       [251, 103, 255,  23, 127, 251],
       [254,   3, 254,  95, 250,  95],
       [239, 215,  69, 215,  93, 247]],

      [[221, 255, 154, 159, 251, 254],
       [149, 243, 191, 255,  95,  63],
       [252, 254, 239, 235, 223, 122],
       [239, 254, 255, 219, 111, 237],
       [187,  95, 153, 128, 223,  43]],

      [[252, 239, 118, 238,  45, 191],
       [183, 223, 110, 183, 220,  61],
       [251, 234, 251, 189,  92, 243],
       [107, 239, 252, 238, 154, 167],
       [159, 251, 222, 213, 221, 150]]]]

test_cc_bitwise_or

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(4,), dtype=int32
    [12, 10,  0,  0]
  y: shape=(4,), dtype=int32
    [  3,   6, 255,   0]

Outputs:
  z: shape=(4,), dtype=int32
    [ 15,  14, 255,   0]

test_cc_bitwise_or_i64_2d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4), dtype=int64
    [[ 0,  0,  1,  1],
     [ 0,  0, -1, -1],
     [ 2, -2,  0,  0]]
  y: shape=(3, 4), dtype=int64
    [[0, 0, 1, 0],
     [0, 0, 0, 0],
     [0, 0, 0, 0]]

Outputs:
  z: shape=(3, 4), dtype=int64
    [[ 0,  0,  1,  1],
     [ 0,  0, -1, -1],
     [ 2, -2,  0,  0]]

test_cc_bitwise_or_i8_2d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4), dtype=int8
    [[ 0,  0,  0, -1],
     [ 0,  0,  1,  0],
     [ 0, -1,  0,  0]]
  y: shape=(3, 4), dtype=int8
    [[ 0,  1,  0,  0],
     [ 0,  0,  0,  2],
     [ 1,  0,  0, -1]]

Outputs:
  z: shape=(3, 4), dtype=int8
    [[ 0,  1,  0, -1],
     [ 0,  0,  1,  2],
     [ 1, -1,  0, -1]]

test_cc_bitwise_or_ui32_2d

Node:
  BitwiseOr(x, y) -> (z)
Inputs:
  x: shape=(3, 4), dtype=uint32
    [[ 9783, 11528, 53234, 53224],
     [18130, 43718, 53495, 29468],
     [30223, 62567, 54187,  2473]]
  y: shape=(3, 4), dtype=uint32
    [[23053, 34991, 16426, 35280],
     [ 4138, 25882, 43387, 50090],
     [60957,  9191, 35767, 54868]]

Outputs:
  z: shape=(3, 4), dtype=uint32
    [[32319, 44463, 53242, 53240],
     [22266, 61406, 63999, 62398],
     [65055, 63463, 56255, 57341]]