diff --git a/.pick_status.json b/.pick_status.json index 8a6ad6a3729..cc164fc2659 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1741,7 +1741,7 @@ "description": "nir: fix definition of imadsh_mix16 for vectors", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "c27b3758fa0dcd7fade9e85c5483b8310b8263d7" }, diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index bee7322b642..45ec080cbea 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -1123,9 +1123,9 @@ binop("amul", tint, _2src_commutative + associative, "src0 * src1") # ir3-specific instruction that maps directly to mul-add shift high mix, # (IMADSH_MIX16 i.e. ah * bl << 16 + c). It is used for lowering integer # multiplication (imul) on Freedreno backend.. -opcode("imadsh_mix16", 1, tint32, - [1, 1, 1], [tint32, tint32, tint32], False, "", """ -dst.x = ((((src0.x & 0xffff0000) >> 16) * (src1.x & 0x0000ffff)) << 16) + src2.x; +opcode("imadsh_mix16", 0, tint32, + [0, 0, 0], [tint32, tint32, tint32], False, "", """ +dst = ((((src0 & 0xffff0000) >> 16) * (src1 & 0x0000ffff)) << 16) + src2; """) # ir3-specific instruction that maps directly to ir3 mad.s24.