https://sourceware.org/cgit/valgrind/commit/?id=3c3262fc702e829fc13192d1ca1de1e2de8987b3
commit 3c3262fc702e829fc13192d1ca1de1e2de8987b3
Author: Florian Krohm <fl...@ei...>
Date: Thu Oct 16 14:23:01 2025 +0000
Revert 644d68e9501dd5679194dd5c8e0d3ce24764a1d8
That change broke none/tests/ppc64/test_isa_3_1_VRT. Not good.
Add a comment as to why a vector type is needed.
Diff:
---
VEX/priv/ir_defs.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/VEX/priv/ir_defs.c b/VEX/priv/ir_defs.c
index afb14fcc5d..1889c97187 100644
--- a/VEX/priv/ir_defs.c
+++ b/VEX/priv/ir_defs.c
@@ -3724,10 +3724,13 @@ void typeOfPrimop ( IROp op,
case Iop_PwExtUSMulQAdd8x16:
BINARY(Ity_V128,Ity_V128, Ity_V128);
- case Iop_DivU128: case Iop_DivS128:
+ /* Note: Semantically, operands and result of these IROps are 128-bit
+ integers (c.f. libvex_ir.h). The Ity_V128 type is used here to
+ indicate that those values require a vector register to be stored. */
+ case Iop_DivU128: case Iop_DivS128:
case Iop_DivU128E: case Iop_DivS128E:
case Iop_ModU128: case Iop_ModS128:
- BINARY(Ity_I128,Ity_I128, Ity_I128);
+ BINARY(Ity_V128,Ity_V128, Ity_V128);
case Iop_2xMultU64Add128CarryOut:
case Iop_Perm8x16x2:
|