)]}'
{
  "commit": "d74de3ce79d4ab3495650bfcc4682cab09514b89",
  "tree": "46f97583b1b6c0664b7335807cf202b7a4128a2f",
  "parents": [
    "081aa64e610b175e295159c2117f25ecf49953ed"
  ],
  "author": {
    "name": "Jayanth Krishnamurthy jayanth.krishnamurthy@ibm.com",
    "email": "jayanth.krishnamurthy@ibm.com",
    "time": "Mon Sep 15 17:33:42 2025 -0500"
  },
  "committer": {
    "name": "Archana Ravindar",
    "email": "aravinda@redhat.com",
    "time": "Mon Apr 06 01:13:27 2026 -0700"
  },
  "message": "cmd/compile: improve uint8/uint16 logical immediates on PPC64\n\nLogical ops on uint8/uint16 (AND/OR/XOR) with constants sometimes\nmaterialized the mask via MOVD (often as a negative immediate), even\nwhen the value fit in the UI-immediate range. This prevented the backend\nfrom selecting andi. / ori / xori forms.\n\nThis CL makes:\nUI-immediate truncation is performed only at the use-site of\nlogical-immediate ops, and only when the constant does not fit in the\n8- or 16-bit unsigned domain (m !\u003d uint8(m) / m !\u003d uint16(m)).\n\nThis avoids negative-mask materialization and enables correct emission of\nUI-form logical instructions. Arithmetic SI-immediate instructions (addi, subfic, etc.) and other\nuse-patterns are unchanged.\n\nCodegen tests are added to ensure the expected andi./ori/xori\npatterns appear and that MOVD is not emitted for valid 8/16-bit masks.\n\nChange-Id: I9fcdf4498c4e984c7587814fb9019a75865c4a0d\nCq-Include-Trybots: luci.golang.try:gotip-linux-ppc64_power10,gotip-linux-ppc64_power8,gotip-linux-ppc64le_power8,gotip-linux-ppc64le_power9,gotip-linux-ppc64le_power10\nReviewed-on: https://go-review.googlesource.com/c/go/+/704015\nLUCI-TryBot-Result: Go LUCI \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Paul Murphy \u003cpaumurph@redhat.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6d40687264813ff900a10538568c842e332116ab",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/ssa/_gen/PPC64.rules",
      "new_id": "0872648bf7ba2741c312d5c8b4c70efc8fc23bf8",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/ssa/_gen/PPC64.rules"
    },
    {
      "type": "modify",
      "old_id": "15e6f7251977c796f7bb547b7ff238feca0ef9f9",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/ssa/_gen/PPC64latelower.rules",
      "new_id": "cd60e79a9dbf8548a402e3845479dc5e26926d7d",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/ssa/_gen/PPC64latelower.rules"
    },
    {
      "type": "modify",
      "old_id": "6a7df42546df7d2125fdbb59b4aa7daa8a01c130",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/ssa/rewritePPC64.go",
      "new_id": "181494e669df00da6390a1285379087a27816543",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/ssa/rewritePPC64.go"
    },
    {
      "type": "modify",
      "old_id": "18c05280c04bf01af49d255a08d46cc048f2bc0f",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/ssa/rewritePPC64latelower.go",
      "new_id": "011f66c769f5f677125ce23b9fc596116624b9a3",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/ssa/rewritePPC64latelower.go"
    },
    {
      "type": "modify",
      "old_id": "f8a2fc5400a7b56ff61e21a4757bbf3f6616f3f9",
      "old_mode": 33188,
      "old_path": "test/codegen/arithmetic.go",
      "new_id": "a5a317b2d104b1803cfab31cdf1d25cbc5f0c264",
      "new_mode": 33188,
      "new_path": "test/codegen/arithmetic.go"
    }
  ]
}
