diff mbox series

[RFC] target/ppc: Remove xscmpnedp instruction

Message ID 20220106112318.13864-1-victor.colombo@eldorado.org.br (mailing list archive)
State New, archived
Headers show
Series [RFC] target/ppc: Remove xscmpnedp instruction | expand

Commit Message

Víctor Colombo Jan. 6, 2022, 11:23 a.m. UTC
xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
removes this instruction as it was not in the final version of v3.0.

RFC to know if you think this is the correct approach.

Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
---
 target/ppc/fpu_helper.c             | 1 -
 target/ppc/helper.h                 | 1 -
 target/ppc/translate/vsx-impl.c.inc | 1 -
 target/ppc/translate/vsx-ops.c.inc  | 1 -
 4 files changed, 4 deletions(-)

Comments

Cédric Le Goater Jan. 6, 2022, 12:21 p.m. UTC | #1
On 1/6/22 12:23, Víctor Colombo wrote:
> xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
> removes this instruction as it was not in the final version of v3.0.
> 
> RFC to know if you think this is the correct approach.

Usually we deprecate a feature for a minimum of two releases before
removing it. It might be overkill for this case since the P9 processor
implementation is based on v3.0B.

I would simply remove the instruction since it never existed on any
supported HW. I will wait for some more feedback.

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.


> Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
> ---
>   target/ppc/fpu_helper.c             | 1 -
>   target/ppc/helper.h                 | 1 -
>   target/ppc/translate/vsx-impl.c.inc | 1 -
>   target/ppc/translate/vsx-ops.c.inc  | 1 -
>   4 files changed, 4 deletions(-)
> 
> diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
> index e5c29b53b8..f030858cf9 100644
> --- a/target/ppc/fpu_helper.c
> +++ b/target/ppc/fpu_helper.c
> @@ -2270,7 +2270,6 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt,                             \
>   VSX_SCALAR_CMP_DP(xscmpeqdp, eq, 1, 0)
>   VSX_SCALAR_CMP_DP(xscmpgedp, le, 1, 1)
>   VSX_SCALAR_CMP_DP(xscmpgtdp, lt, 1, 1)
> -VSX_SCALAR_CMP_DP(xscmpnedp, eq, 0, 0)
>   
>   void helper_xscmpexpdp(CPUPPCState *env, uint32_t opcode,
>                          ppc_vsr_t *xa, ppc_vsr_t *xb)
> diff --git a/target/ppc/helper.h b/target/ppc/helper.h
> index f9c72dcd50..8f02cabaf5 100644
> --- a/target/ppc/helper.h
> +++ b/target/ppc/helper.h
> @@ -400,7 +400,6 @@ DEF_HELPER_5(xsnmsubdp, void, env, vsr, vsr, vsr, vsr)
>   DEF_HELPER_4(xscmpeqdp, void, env, vsr, vsr, vsr)
>   DEF_HELPER_4(xscmpgtdp, void, env, vsr, vsr, vsr)
>   DEF_HELPER_4(xscmpgedp, void, env, vsr, vsr, vsr)
> -DEF_HELPER_4(xscmpnedp, void, env, vsr, vsr, vsr)
>   DEF_HELPER_4(xscmpexpdp, void, env, i32, vsr, vsr)
>   DEF_HELPER_4(xscmpexpqp, void, env, i32, vsr, vsr)
>   DEF_HELPER_4(xscmpodp, void, env, i32, vsr, vsr)
> diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc
> index c08185e857..fbef496257 100644
> --- a/target/ppc/translate/vsx-impl.c.inc
> +++ b/target/ppc/translate/vsx-impl.c.inc
> @@ -1092,7 +1092,6 @@ GEN_VSX_HELPER_X1(xstsqrtdp, 0x14, 0x06, 0, PPC2_VSX)
>   GEN_VSX_HELPER_X3(xscmpeqdp, 0x0C, 0x00, 0, PPC2_ISA300)
>   GEN_VSX_HELPER_X3(xscmpgtdp, 0x0C, 0x01, 0, PPC2_ISA300)
>   GEN_VSX_HELPER_X3(xscmpgedp, 0x0C, 0x02, 0, PPC2_ISA300)
> -GEN_VSX_HELPER_X3(xscmpnedp, 0x0C, 0x03, 0, PPC2_ISA300)
>   GEN_VSX_HELPER_X2_AB(xscmpexpdp, 0x0C, 0x07, 0, PPC2_ISA300)
>   GEN_VSX_HELPER_R2_AB(xscmpexpqp, 0x04, 0x05, 0, PPC2_ISA300)
>   GEN_VSX_HELPER_X2_AB(xscmpodp, 0x0C, 0x05, 0, PPC2_VSX)
> diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-ops.c.inc
> index c974324c4c..67fa7b2e41 100644
> --- a/target/ppc/translate/vsx-ops.c.inc
> +++ b/target/ppc/translate/vsx-ops.c.inc
> @@ -197,7 +197,6 @@ GEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubmdp", 0x04, 0x17, PPC2_VSX),
>   GEN_XX3FORM(xscmpeqdp, 0x0C, 0x00, PPC2_ISA300),
>   GEN_XX3FORM(xscmpgtdp, 0x0C, 0x01, PPC2_ISA300),
>   GEN_XX3FORM(xscmpgedp, 0x0C, 0x02, PPC2_ISA300),
> -GEN_XX3FORM(xscmpnedp, 0x0C, 0x03, PPC2_ISA300),
>   GEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
>   GEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
>   GEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),
>
Greg Kurz Jan. 6, 2022, 1:02 p.m. UTC | #2
On Thu, 6 Jan 2022 13:21:46 +0100
Cédric Le Goater <clg@kaod.org> wrote:

> On 1/6/22 12:23, Víctor Colombo wrote:
> > xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
> > removes this instruction as it was not in the final version of v3.0.
> > 
> > RFC to know if you think this is the correct approach.
> 
> Usually we deprecate a feature for a minimum of two releases before
> removing it. It might be overkill for this case since the P9 processor
> implementation is based on v3.0B.
> 
> I would simply remove the instruction since it never existed on any
> supported HW. I will wait for some more feedback.
> 

I don't think it makes sense to keep this instruction if it only
existed in pre-GA HW.

Acked-by: Greg Kurz <groug@kaod.org>

> Reviewed-by: Cédric Le Goater <clg@kaod.org>
> 
> Thanks,
> 
> C.
> 
> 
> > Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
> > ---
> >   target/ppc/fpu_helper.c             | 1 -
> >   target/ppc/helper.h                 | 1 -
> >   target/ppc/translate/vsx-impl.c.inc | 1 -
> >   target/ppc/translate/vsx-ops.c.inc  | 1 -
> >   4 files changed, 4 deletions(-)
> > 
> > diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
> > index e5c29b53b8..f030858cf9 100644
> > --- a/target/ppc/fpu_helper.c
> > +++ b/target/ppc/fpu_helper.c
> > @@ -2270,7 +2270,6 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt,                             \
> >   VSX_SCALAR_CMP_DP(xscmpeqdp, eq, 1, 0)
> >   VSX_SCALAR_CMP_DP(xscmpgedp, le, 1, 1)
> >   VSX_SCALAR_CMP_DP(xscmpgtdp, lt, 1, 1)
> > -VSX_SCALAR_CMP_DP(xscmpnedp, eq, 0, 0)
> >   
> >   void helper_xscmpexpdp(CPUPPCState *env, uint32_t opcode,
> >                          ppc_vsr_t *xa, ppc_vsr_t *xb)
> > diff --git a/target/ppc/helper.h b/target/ppc/helper.h
> > index f9c72dcd50..8f02cabaf5 100644
> > --- a/target/ppc/helper.h
> > +++ b/target/ppc/helper.h
> > @@ -400,7 +400,6 @@ DEF_HELPER_5(xsnmsubdp, void, env, vsr, vsr, vsr, vsr)
> >   DEF_HELPER_4(xscmpeqdp, void, env, vsr, vsr, vsr)
> >   DEF_HELPER_4(xscmpgtdp, void, env, vsr, vsr, vsr)
> >   DEF_HELPER_4(xscmpgedp, void, env, vsr, vsr, vsr)
> > -DEF_HELPER_4(xscmpnedp, void, env, vsr, vsr, vsr)
> >   DEF_HELPER_4(xscmpexpdp, void, env, i32, vsr, vsr)
> >   DEF_HELPER_4(xscmpexpqp, void, env, i32, vsr, vsr)
> >   DEF_HELPER_4(xscmpodp, void, env, i32, vsr, vsr)
> > diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc
> > index c08185e857..fbef496257 100644
> > --- a/target/ppc/translate/vsx-impl.c.inc
> > +++ b/target/ppc/translate/vsx-impl.c.inc
> > @@ -1092,7 +1092,6 @@ GEN_VSX_HELPER_X1(xstsqrtdp, 0x14, 0x06, 0, PPC2_VSX)
> >   GEN_VSX_HELPER_X3(xscmpeqdp, 0x0C, 0x00, 0, PPC2_ISA300)
> >   GEN_VSX_HELPER_X3(xscmpgtdp, 0x0C, 0x01, 0, PPC2_ISA300)
> >   GEN_VSX_HELPER_X3(xscmpgedp, 0x0C, 0x02, 0, PPC2_ISA300)
> > -GEN_VSX_HELPER_X3(xscmpnedp, 0x0C, 0x03, 0, PPC2_ISA300)
> >   GEN_VSX_HELPER_X2_AB(xscmpexpdp, 0x0C, 0x07, 0, PPC2_ISA300)
> >   GEN_VSX_HELPER_R2_AB(xscmpexpqp, 0x04, 0x05, 0, PPC2_ISA300)
> >   GEN_VSX_HELPER_X2_AB(xscmpodp, 0x0C, 0x05, 0, PPC2_VSX)
> > diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-ops.c.inc
> > index c974324c4c..67fa7b2e41 100644
> > --- a/target/ppc/translate/vsx-ops.c.inc
> > +++ b/target/ppc/translate/vsx-ops.c.inc
> > @@ -197,7 +197,6 @@ GEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubmdp", 0x04, 0x17, PPC2_VSX),
> >   GEN_XX3FORM(xscmpeqdp, 0x0C, 0x00, PPC2_ISA300),
> >   GEN_XX3FORM(xscmpgtdp, 0x0C, 0x01, PPC2_ISA300),
> >   GEN_XX3FORM(xscmpgedp, 0x0C, 0x02, PPC2_ISA300),
> > -GEN_XX3FORM(xscmpnedp, 0x0C, 0x03, PPC2_ISA300),
> >   GEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
> >   GEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
> >   GEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),
> > 
>
Richard Henderson Jan. 6, 2022, 6:51 p.m. UTC | #3
On 1/6/22 3:23 AM, Víctor Colombo wrote:
> xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
> removes this instruction as it was not in the final version of v3.0.
> 
> RFC to know if you think this is the correct approach.

Should be fine.  I assume the -cpu power9 that we intend to emulate is 3.0B?

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
David Gibson Jan. 7, 2022, 1:06 a.m. UTC | #4
On Thu, Jan 06, 2022 at 02:02:01PM +0100, Greg Kurz wrote:
> On Thu, 6 Jan 2022 13:21:46 +0100
> Cédric Le Goater <clg@kaod.org> wrote:
> 
> > On 1/6/22 12:23, Víctor Colombo wrote:
> > > xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
> > > removes this instruction as it was not in the final version of v3.0.
> > > 
> > > RFC to know if you think this is the correct approach.
> > 
> > Usually we deprecate a feature for a minimum of two releases before
> > removing it. It might be overkill for this case since the P9 processor
> > implementation is based on v3.0B.
> > 
> > I would simply remove the instruction since it never existed on any
> > supported HW. I will wait for some more feedback.
> > 
> 
> I don't think it makes sense to keep this instruction if it only
> existed in pre-GA HW.

I agree.  If we have a vistigial POWER9 DD1 in the cpu table we should
probably remove that anyway.

> Acked-by: Greg Kurz <groug@kaod.org>

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

> 
> > Reviewed-by: Cédric Le Goater <clg@kaod.org>
> > 
> > Thanks,
> > 
> > C.
> > 
> > 
> > > Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br>
> > > ---
> > >   target/ppc/fpu_helper.c             | 1 -
> > >   target/ppc/helper.h                 | 1 -
> > >   target/ppc/translate/vsx-impl.c.inc | 1 -
> > >   target/ppc/translate/vsx-ops.c.inc  | 1 -
> > >   4 files changed, 4 deletions(-)
> > > 
> > > diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
> > > index e5c29b53b8..f030858cf9 100644
> > > --- a/target/ppc/fpu_helper.c
> > > +++ b/target/ppc/fpu_helper.c
> > > @@ -2270,7 +2270,6 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt,                             \
> > >   VSX_SCALAR_CMP_DP(xscmpeqdp, eq, 1, 0)
> > >   VSX_SCALAR_CMP_DP(xscmpgedp, le, 1, 1)
> > >   VSX_SCALAR_CMP_DP(xscmpgtdp, lt, 1, 1)
> > > -VSX_SCALAR_CMP_DP(xscmpnedp, eq, 0, 0)
> > >   
> > >   void helper_xscmpexpdp(CPUPPCState *env, uint32_t opcode,
> > >                          ppc_vsr_t *xa, ppc_vsr_t *xb)
> > > diff --git a/target/ppc/helper.h b/target/ppc/helper.h
> > > index f9c72dcd50..8f02cabaf5 100644
> > > --- a/target/ppc/helper.h
> > > +++ b/target/ppc/helper.h
> > > @@ -400,7 +400,6 @@ DEF_HELPER_5(xsnmsubdp, void, env, vsr, vsr, vsr, vsr)
> > >   DEF_HELPER_4(xscmpeqdp, void, env, vsr, vsr, vsr)
> > >   DEF_HELPER_4(xscmpgtdp, void, env, vsr, vsr, vsr)
> > >   DEF_HELPER_4(xscmpgedp, void, env, vsr, vsr, vsr)
> > > -DEF_HELPER_4(xscmpnedp, void, env, vsr, vsr, vsr)
> > >   DEF_HELPER_4(xscmpexpdp, void, env, i32, vsr, vsr)
> > >   DEF_HELPER_4(xscmpexpqp, void, env, i32, vsr, vsr)
> > >   DEF_HELPER_4(xscmpodp, void, env, i32, vsr, vsr)
> > > diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc
> > > index c08185e857..fbef496257 100644
> > > --- a/target/ppc/translate/vsx-impl.c.inc
> > > +++ b/target/ppc/translate/vsx-impl.c.inc
> > > @@ -1092,7 +1092,6 @@ GEN_VSX_HELPER_X1(xstsqrtdp, 0x14, 0x06, 0, PPC2_VSX)
> > >   GEN_VSX_HELPER_X3(xscmpeqdp, 0x0C, 0x00, 0, PPC2_ISA300)
> > >   GEN_VSX_HELPER_X3(xscmpgtdp, 0x0C, 0x01, 0, PPC2_ISA300)
> > >   GEN_VSX_HELPER_X3(xscmpgedp, 0x0C, 0x02, 0, PPC2_ISA300)
> > > -GEN_VSX_HELPER_X3(xscmpnedp, 0x0C, 0x03, 0, PPC2_ISA300)
> > >   GEN_VSX_HELPER_X2_AB(xscmpexpdp, 0x0C, 0x07, 0, PPC2_ISA300)
> > >   GEN_VSX_HELPER_R2_AB(xscmpexpqp, 0x04, 0x05, 0, PPC2_ISA300)
> > >   GEN_VSX_HELPER_X2_AB(xscmpodp, 0x0C, 0x05, 0, PPC2_VSX)
> > > diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-ops.c.inc
> > > index c974324c4c..67fa7b2e41 100644
> > > --- a/target/ppc/translate/vsx-ops.c.inc
> > > +++ b/target/ppc/translate/vsx-ops.c.inc
> > > @@ -197,7 +197,6 @@ GEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubmdp", 0x04, 0x17, PPC2_VSX),
> > >   GEN_XX3FORM(xscmpeqdp, 0x0C, 0x00, PPC2_ISA300),
> > >   GEN_XX3FORM(xscmpgtdp, 0x0C, 0x01, PPC2_ISA300),
> > >   GEN_XX3FORM(xscmpgedp, 0x0C, 0x02, PPC2_ISA300),
> > > -GEN_XX3FORM(xscmpnedp, 0x0C, 0x03, PPC2_ISA300),
> > >   GEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
> > >   GEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
> > >   GEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),
> > > 
> > 
>
Cédric Le Goater Jan. 10, 2022, 3:02 p.m. UTC | #5
On 1/6/22 12:23, Víctor Colombo wrote:
> xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
> removes this instruction as it was not in the final version of v3.0.

Could please resend on top of the VSX combo patchset ?

Thanks,

C.
Víctor Colombo Jan. 10, 2022, 5:57 p.m. UTC | #6
On 10/01/2022 12:02, Cédric Le Goater wrote:
> On 1/6/22 12:23, Víctor Colombo wrote:
>> xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
>> removes this instruction as it was not in the final version of v3.0.
> 
> Could please resend on top of the VSX combo patchset ?
> 
Absolutely! I will add it between "Implement xvtlsbb instruction" and 
"Refactor VSX_SCALAR_CMP_DP" instead of on top, to avoid moving it to 
decodetree just to remove it later. We will send it together with the 
patchset v2 later.
> Thanks,
> 
> C.

Thanks for everyone's time! Best regards,

-- Víctor
Cédric Le Goater Jan. 10, 2022, 6:31 p.m. UTC | #7
On 1/10/22 18:57, Victor Colombo wrote:
> 
> 
> On 10/01/2022 12:02, Cédric Le Goater wrote:
>> On 1/6/22 12:23, Víctor Colombo wrote:
>>> xscmpnedp was added in ISA v3.0 but removed in v3.0B. This patch
>>> removes this instruction as it was not in the final version of v3.0.
>>
>> Could please resend on top of the VSX combo patchset ?
>>
> Absolutely! I will add it between "Implement xvtlsbb instruction" and "Refactor VSX_SCALAR_CMP_DP" instead of on top, to avoid moving it to decodetree just to remove it later. We will send it together with the patchset v2 later.

Ah. if you resend the whole, perfect. It looks correct from the
tests I did. And fix your name to Víctor !

Thanks,

Cédric.
diff mbox series

Patch

diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c
index e5c29b53b8..f030858cf9 100644
--- a/target/ppc/fpu_helper.c
+++ b/target/ppc/fpu_helper.c
@@ -2270,7 +2270,6 @@  void helper_##op(CPUPPCState *env, ppc_vsr_t *xt,                             \
 VSX_SCALAR_CMP_DP(xscmpeqdp, eq, 1, 0)
 VSX_SCALAR_CMP_DP(xscmpgedp, le, 1, 1)
 VSX_SCALAR_CMP_DP(xscmpgtdp, lt, 1, 1)
-VSX_SCALAR_CMP_DP(xscmpnedp, eq, 0, 0)
 
 void helper_xscmpexpdp(CPUPPCState *env, uint32_t opcode,
                        ppc_vsr_t *xa, ppc_vsr_t *xb)
diff --git a/target/ppc/helper.h b/target/ppc/helper.h
index f9c72dcd50..8f02cabaf5 100644
--- a/target/ppc/helper.h
+++ b/target/ppc/helper.h
@@ -400,7 +400,6 @@  DEF_HELPER_5(xsnmsubdp, void, env, vsr, vsr, vsr, vsr)
 DEF_HELPER_4(xscmpeqdp, void, env, vsr, vsr, vsr)
 DEF_HELPER_4(xscmpgtdp, void, env, vsr, vsr, vsr)
 DEF_HELPER_4(xscmpgedp, void, env, vsr, vsr, vsr)
-DEF_HELPER_4(xscmpnedp, void, env, vsr, vsr, vsr)
 DEF_HELPER_4(xscmpexpdp, void, env, i32, vsr, vsr)
 DEF_HELPER_4(xscmpexpqp, void, env, i32, vsr, vsr)
 DEF_HELPER_4(xscmpodp, void, env, i32, vsr, vsr)
diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx-impl.c.inc
index c08185e857..fbef496257 100644
--- a/target/ppc/translate/vsx-impl.c.inc
+++ b/target/ppc/translate/vsx-impl.c.inc
@@ -1092,7 +1092,6 @@  GEN_VSX_HELPER_X1(xstsqrtdp, 0x14, 0x06, 0, PPC2_VSX)
 GEN_VSX_HELPER_X3(xscmpeqdp, 0x0C, 0x00, 0, PPC2_ISA300)
 GEN_VSX_HELPER_X3(xscmpgtdp, 0x0C, 0x01, 0, PPC2_ISA300)
 GEN_VSX_HELPER_X3(xscmpgedp, 0x0C, 0x02, 0, PPC2_ISA300)
-GEN_VSX_HELPER_X3(xscmpnedp, 0x0C, 0x03, 0, PPC2_ISA300)
 GEN_VSX_HELPER_X2_AB(xscmpexpdp, 0x0C, 0x07, 0, PPC2_ISA300)
 GEN_VSX_HELPER_R2_AB(xscmpexpqp, 0x04, 0x05, 0, PPC2_ISA300)
 GEN_VSX_HELPER_X2_AB(xscmpodp, 0x0C, 0x05, 0, PPC2_VSX)
diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-ops.c.inc
index c974324c4c..67fa7b2e41 100644
--- a/target/ppc/translate/vsx-ops.c.inc
+++ b/target/ppc/translate/vsx-ops.c.inc
@@ -197,7 +197,6 @@  GEN_XX3FORM_NAME(xsnmsubdp, "xsnmsubmdp", 0x04, 0x17, PPC2_VSX),
 GEN_XX3FORM(xscmpeqdp, 0x0C, 0x00, PPC2_ISA300),
 GEN_XX3FORM(xscmpgtdp, 0x0C, 0x01, PPC2_ISA300),
 GEN_XX3FORM(xscmpgedp, 0x0C, 0x02, PPC2_ISA300),
-GEN_XX3FORM(xscmpnedp, 0x0C, 0x03, PPC2_ISA300),
 GEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
 GEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
 GEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),