)]}'
{
  "commit": "27dd2aeb8c7c01001b91a65f0f15a8e47d719ab4",
  "tree": "36edf879118cb77e007b9346b0f605394d1abcb5",
  "parents": [
    "6cc7757d2bd09471e25f8623abf9fd27bd69e0fa"
  ],
  "author": {
    "name": "Ray Robinson",
    "email": "rwrobinson@google.com",
    "time": "Sat May 02 00:56:10 2026 +0000"
  },
  "committer": {
    "name": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon May 04 08:27:31 2026 -0700"
  },
  "message": "Implement full ARM/AArch64 multiarch compatibility for SwiftShader Reactor\n\n* Replaced the legacy loose float-to-int conversion logic in LLVMReactor.cpp with the modern llvm.fptosi_sat intrinsic on ARM. This guarantees safe and mathematically sound saturation to INT_MAX/INT_MIN bounds on ARM architectures.\n\n* Updated test bounds and validation logic across both Abs and RoundInt to gracefully validate across platform-specific architectural behaviors.\n\n* Eliminated pointer-to-member flakiness in CallMemberFunction tests by replacing dynamic member pointers with robust static C-style wrappers.\n\n* Introduced GET_INTRINSIC_DECLARATION macro to abstract llvm::Intrinsic::getDeclaration vs getOrInsertDeclaration, ensuring portability across different LLVM versions (e.g. bundled LLVM 10 vs internal Google3 LLVM).\n\nBUG\u003d508292407\n\nChange-Id: I06438d39a7cea766f6875304ee35eeb3739dcd24\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/77268\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@google.com\u003e\nReviewed-by: Geoff Lang \u003cgeofflang@google.com\u003e\nTested-by: Geoff Lang \u003cgeofflang@google.com\u003e\nCommit-Queue: Geoff Lang \u003cgeofflang@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "275b717503a59d8d5701e9e93c8c34bef326064c",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "0ef4a68cb714420acad4808bdfa32317809390b7",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "62b40099e8c72e00a7c1b8140c060c03fb9b95bc",
      "old_mode": 33188,
      "old_path": "src/Reactor/LLVMReactor.cpp",
      "new_id": "a2cd0d7115155ba5f39340617ffd75cb669edecc",
      "new_mode": 33188,
      "new_path": "src/Reactor/LLVMReactor.cpp"
    },
    {
      "type": "modify",
      "old_id": "5bcf15ab77d430872479ab482b36ad8f1d87497b",
      "old_mode": 33188,
      "old_path": "tests/ReactorUnitTests/ReactorUnitTests.cpp",
      "new_id": "0efe65493356250458900cea0f1df6efb4d17b01",
      "new_mode": 33188,
      "new_path": "tests/ReactorUnitTests/ReactorUnitTests.cpp"
    }
  ]
}
