)]}'
{
  "commit": "3df24bfc7983b026da35ac5a0a1258984158feee",
  "tree": "b40b5e310ee9ed23c6d37450bd579463c355e9f8",
  "parents": [
    "473bc4018791491dfa3eabf0f214eff365accd47"
  ],
  "author": {
    "name": "Ha-Eyz",
    "email": "eyilmez@roofline.ai",
    "time": "Thu Sep 10 13:09:50 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Sep 10 13:09:50 2026 +0200"
  },
  "message": "[VMVX] Added an implementation of fpowi in vm for vmvx backend (#24608)\n\nWe have found some models, which failed to compile to vmvx, due to a\nmissing conversion for math.fpowi.\n\nThis PR includes an implementation for this op, as well as an addition\nof VM_ComplexArithmeticOp class, since fpowi has a float and int input.\nThis case was not covered by the VM_BinaryArithmeticOp class. However,\nsince we only found fpowi in models, which utilize a i64 const for the\nexponent, the op was implemented in such a way that it only accepts i64\nas an exponent. Due to this, it was not necessary to implement a\nComplexArithmeticOpConversion in\n[MathToVM/Patterns.cpp](https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/Patterns.cpp).\n\nI also expanded the tests in arithmetic_ops.mlir, to include a check for\nvm.fpowi.f32.\n\nSigned-off-by: Hakan Eyilmez\n[eyilmez@roofline.ai](mailto:eyilmez@roofline.ai)\n\n---------\n\nSigned-off-by: Hakan Eyilmez \u003ceyilmez@roofline.ai\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "48b8b3a31cace71e8899b8557e322c7f60c5af31",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/Patterns.cpp",
      "new_id": "78ff73d97ec805012dbd9e0fdb8d63677aba9c3c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/Patterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "209debec4ef937cec296ef7edb596a6fdb7e0882",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/test/arithmetic_ops.mlir",
      "new_id": "97ec9bc195702f8e5a41dd0d2a903ba2c34a4f4c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/MathToVM/test/arithmetic_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "740e3175b5b41f881bf7aaf5952f2d54693db7b7",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp",
      "new_id": "13a18498fc2fc32a1add13446d85f65fb7aad9fc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/Conversion/VMToEmitC/ConvertVMToEmitC.cpp"
    },
    {
      "type": "modify",
      "old_id": "0127acc04fb549a17fddc24a3ec4f8e31f75322c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOpcodesF32.td",
      "new_id": "2ce466d331deda4ed0a44cc5d20b10d5b725b288",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOpcodesF32.td"
    },
    {
      "type": "modify",
      "old_id": "c1230bd0d65c33b8c71135dc574894e39aa6ca12",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOpcodesF64.td",
      "new_id": "ab6a1e02903f71c35097ce958152759b6a6a7017",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOpcodesF64.td"
    },
    {
      "type": "modify",
      "old_id": "1082aea97500fed97d0f911f7002df6988d00cde",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOps.td",
      "new_id": "09b1fab8c0e673d51e5f48c814850a909b529c81",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/VM/IR/VMOps.td"
    },
    {
      "type": "modify",
      "old_id": "ef07cce631f846c03d4649c4c5c18bca0e578d45",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/base/internal/math.h",
      "new_id": "7afffedd0d28b8698de41ae246e8289418358e4f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/base/internal/math.h"
    },
    {
      "type": "modify",
      "old_id": "222555da7f47dd4c8f9394f2d1185526c9ef0b0a",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/base/internal/math_test.cc",
      "new_id": "34118dd27e6a38275c1ad92f43da579fdcb44c15",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/base/internal/math_test.cc"
    },
    {
      "type": "modify",
      "old_id": "811211e7827c57c10cc4ae4c26f9ff6e9c6704ed",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/bytecode/disassembler.c",
      "new_id": "29ce3d7cf312a54cac8af9c079b386c6378b9818",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/bytecode/disassembler.c"
    },
    {
      "type": "modify",
      "old_id": "b2e50da1bc8fd4773f59f033a4bde9c0012a8c61",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/bytecode/dispatch.c",
      "new_id": "4d0a53c260e8e7caf8a5b34b533bf50919d63f17",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/bytecode/dispatch.c"
    },
    {
      "type": "modify",
      "old_id": "a10acfbeafb4e11f55277cf4ef70ce6cb7df74ee",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/bytecode/dispatch_util.h",
      "new_id": "7936b660d2dda6c11e5a6c4168f4dc1d12d5aca7",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/bytecode/dispatch_util.h"
    },
    {
      "type": "modify",
      "old_id": "207ae63d174069027ec77be779cc48a0f9bfb016",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/bytecode/isa/isa.json",
      "new_id": "cb56d10830c5a759433ad6a85646093b130d75c8",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/bytecode/isa/isa.json"
    },
    {
      "type": "modify",
      "old_id": "45b61182d310b7792994f07160eb13f9d70e1a41",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/bytecode/verifier.c",
      "new_id": "496ad88901cea7cdab6b123cc9d09fe77d7f5b91",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/bytecode/verifier.c"
    },
    {
      "type": "modify",
      "old_id": "f9c55102752a704084813d8f69349af74eac3dfa",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/ops.h",
      "new_id": "12bc7536114b3a86d623aac0a0edfaf9495cb646",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/ops.h"
    },
    {
      "type": "modify",
      "old_id": "8ec35423af1d4181278c6a23d5e0b4c96a0532f1",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/test/arithmetic_ops_f32.vmasm",
      "new_id": "49003326b79d900043c2c5e4db774cd584c3400c",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/test/arithmetic_ops_f32.vmasm"
    },
    {
      "type": "modify",
      "old_id": "ce1a11c3a1d180dc83c3e3d2b979bbbacf0baa15",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/vm/test/arithmetic_ops_f64.vmasm",
      "new_id": "a1e5d70d96541d589fe1144be90940c2968578ee",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/vm/test/arithmetic_ops_f64.vmasm"
    }
  ]
}
