let DecoderNamespace = "SUBINSN_S2";
}
def V6_MAP_equb : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_MAP_equb_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_MAP_equb_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equb_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equb_ior : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equb_ior_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equb_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equb_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equh : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_MAP_equh_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_MAP_equh_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equh_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equh_ior : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equh_ior_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equh_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equh_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equw : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_MAP_equw_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_MAP_equw_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equw_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equw_ior : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equw_ior_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_MAP_equw_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_MAP_equw_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_extractw : HInst<
(outs IntRegs:$Rd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rs32),
-"$Rd32 = vextract($Vu32,$Rs32)",
-tc_9777e6bf, TypeLD>, Enc_50e578, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b10010010000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isSolo = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_extractw_128B : HInst<
-(outs IntRegs:$Rd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rs32),
+(ins HvxVR:$Vu32, IntRegs:$Rs32),
"$Rd32 = vextract($Vu32,$Rs32)",
tc_9777e6bf, TypeLD>, Enc_50e578, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let isSolo = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_extractw_alt : HInst<
(outs IntRegs:$Rd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rs32),
-"$Rd32.w = vextract($Vu32,$Rs32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_extractw_alt_128B : HInst<
-(outs IntRegs:$Rd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rs32),
+(ins HvxVR:$Vu32, IntRegs:$Rs32),
"$Rd32.w = vextract($Vu32,$Rs32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_hi : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vss32),
-"$Vd32 = hi($Vss32)",
-CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_hi_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vss32),
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vss32),
"$Vd32 = hi($Vss32)",
CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_ld0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32 = vmem($Rt32)",
-PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ld0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32),
"$Vd32 = vmem($Rt32)",
PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_ldcnp0 : HInst<
-(outs VectorRegs:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
"if (!$Pv4) $Vd32.cur = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldcnp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldcnpnt0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.cur = vmem($Rt32)",
+"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldcnpnt0 : HInst<
-(outs VectorRegs:$Vd32),
+def V6_ldcp0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
+"if ($Pv4) $Vd32.cur = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldcnpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldcpnt0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
+"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldcp0 : HInst<
-(outs VectorRegs:$Vd32),
+def V6_ldnp0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.cur = vmem($Rt32)",
+"if (!$Pv4) $Vd32 = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldcp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldnpnt0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.cur = vmem($Rt32)",
+"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldcpnt0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
+def V6_ldnt0 : HInst<
+(outs HvxVR:$Vd32),
+(ins IntRegs:$Rt32),
+"$Vd32 = vmem($Rt32):nt",
+PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldcpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldp0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
+"if ($Pv4) $Vd32 = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldnp0 : HInst<
-(outs VectorRegs:$Vd32),
+def V6_ldpnt0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32 = vmem($Rt32)",
+"if ($Pv4) $Vd32 = vmem($Rt32):nt",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldnp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldtnp0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32 = vmem($Rt32)",
+"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldnpnt0 : HInst<
-(outs VectorRegs:$Vd32),
+def V6_ldtnpnt0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
+"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldnpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldtp0 : HInst<
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
+"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldnt0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32 = vmem($Rt32):nt",
-PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
+def V6_ldtpnt0 : HInst<
+(outs HvxVR:$Vd32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32),
+"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
+PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+def V6_ldu0 : HInst<
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32),
-"$Vd32 = vmem($Rt32):nt",
+"$Vd32 = vmemu($Rt32)",
PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldp0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32 = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
+def V6_lo : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vss32),
+"$Vd32 = lo($Vss32)",
+CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32 = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
+def V6_lvsplatb : HInst<
+(outs HvxVR:$Vd32),
+(ins IntRegs:$Rt32),
+"$Vd32.b = vsplat($Rt32)",
+tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
+let Inst{13-5} = 0b000000010;
+let Inst{31-21} = 0b00011001110;
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_ldpnt0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32 = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
+def V6_lvsplath : HInst<
+(outs HvxVR:$Vd32),
+(ins IntRegs:$Rt32),
+"$Vd32.h = vsplat($Rt32)",
+tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
+let Inst{13-5} = 0b000000001;
+let Inst{31-21} = 0b00011001110;
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_ldpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32 = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_ldtnp0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ldtnp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_ldtnpnt0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ldtnpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_ldtp0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ldtp0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_ldtpnt0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ldtpnt0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_ldu0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32 = vmemu($Rt32)",
-PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_ldu0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32 = vmemu($Rt32)",
-PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_lo : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vss32),
-"$Vd32 = lo($Vss32)",
-CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_lo_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vss32),
-"$Vd32 = lo($Vss32)",
-CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_lvsplatb : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32.b = vsplat($Rt32)",
-tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
-let Inst{13-5} = 0b000000010;
-let Inst{31-21} = 0b00011001110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_lvsplatb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32.b = vsplat($Rt32)",
-tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
-let Inst{13-5} = 0b000000010;
-let Inst{31-21} = 0b00011001110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_lvsplath : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32.h = vsplat($Rt32)",
-tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
-let Inst{13-5} = 0b000000001;
-let Inst{31-21} = 0b00011001110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_lvsplath_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32.h = vsplat($Rt32)",
-tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
-let Inst{13-5} = 0b000000001;
-let Inst{31-21} = 0b00011001110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_lvsplatw : HInst<
-(outs VectorRegs:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32),
"$Vd32 = vsplat($Rt32)",
tc_6b78cf13, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[HasV60T,UseHVX]> {
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_lvsplatw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins IntRegs:$Rt32),
-"$Vd32 = vsplat($Rt32)",
-tc_6b78cf13, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[HasV60T,UseHVX]> {
-let Inst{13-5} = 0b000000001;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_and : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
-"$Qd4 = and($Qs4,$Qt4)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000000;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_pred_and_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4 = and($Qs4,$Qt4)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_pred_and_n : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4 = and($Qs4,!$Qt4)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000101;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_and_n_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
-"$Qd4 = and($Qs4,!$Qt4)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000101;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_not : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4),
"$Qd4 = not($Qs4)",
tc_71337255, TypeCVI_VA>, Enc_bfbf03, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000010;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_not_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4),
-"$Qd4 = not($Qs4)",
-tc_71337255, TypeCVI_VA>, Enc_bfbf03, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000010;
-let Inst{13-10} = 0b0000;
-let Inst{31-16} = 0b0001111000000011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_or : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
-"$Qd4 = or($Qs4,$Qt4)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000001;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_pred_or_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4 = or($Qs4,$Qt4)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_pred_or_n : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4 = or($Qs4,!$Qt4)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000100;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_or_n_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
-"$Qd4 = or($Qs4,!$Qt4)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000100;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_scalar2 : HInst<
-(outs VecPredRegs:$Qd4),
+(outs HvxQR:$Qd4),
(ins IntRegs:$Rt32),
"$Qd4 = vsetq($Rt32)",
tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV60T,UseHVX]> {
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_scalar2_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins IntRegs:$Rt32),
-"$Qd4 = vsetq($Rt32)",
-tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV60T,UseHVX]> {
-let Inst{13-2} = 0b000000010001;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_scalar2v2 : HInst<
-(outs VecPredRegs:$Qd4),
+(outs HvxQR:$Qd4),
(ins IntRegs:$Rt32),
"$Qd4 = vsetq2($Rt32)",
tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV62T,UseHVX]> {
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_scalar2v2_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins IntRegs:$Rt32),
-"$Qd4 = vsetq2($Rt32)",
-tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV62T,UseHVX]> {
-let Inst{13-2} = 0b000000010011;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_pred_xor : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4 = xor($Qs4,$Qt4)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000011;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_pred_xor_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
-"$Qd4 = xor($Qs4,$Qt4)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000011;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_shuffeqh : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
let Inst{7-2} = 0b000110;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_shuffeqh_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
-"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
-let Inst{7-2} = 0b000110;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_shuffeqw : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
-"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
-let Inst{7-2} = 0b000111;
-let Inst{13-10} = 0b0000;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_shuffeqw_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
+(outs HvxQR:$Qd4),
+(ins HvxQR:$Qs4, HvxQR:$Qt4),
"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
let Inst{7-2} = 0b000111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_st0 : HInst<
(outs),
-(ins IntRegs:$Rt32, VectorRegs:$Vs32),
+(ins IntRegs:$Rt32, HvxVR:$Vs32),
"vmem($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_st0_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_stn0 : HInst<
(outs),
-(ins IntRegs:$Rt32, VectorRegs:$Os8),
+(ins IntRegs:$Rt32, HvxVR:$Os8),
"vmem($Rt32) = $Os8.new",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 1;
}
-def V6_stn0_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs128B:$Os8),
-"vmem($Rt32) = $Os8.new",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 1;
-}
-def V6_stnnt0 : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs:$Os8),
-"vmem($Rt32):nt = $Os8.new",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let opNewValue = 1;
-}
-def V6_stnnt0_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs128B:$Os8),
-"vmem($Rt32):nt = $Os8.new",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 1;
-}
-def V6_stnp0 : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if (!$Pv4) vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stnp0_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_stnpnt0 : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if (!$Pv4) vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stnpnt0_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_stnq0 : HInst<
-(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stnq0_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if (!$Qv4) vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_stnqnt0 : HInst<
-(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stnqnt0_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if (!$Qv4) vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_stnt0 : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs:$Vs32),
-"vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stnt0_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"vmem($Rt32):nt = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_stp0 : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if ($Pv4) vmem($Rt32) = $Vs32",
-PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_stp0_128B : HInst<
+def V6_stnnt0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rt32) = $Vs32",
+(ins IntRegs:$Rt32, HvxVR:$Os8),
+"vmem($Rt32):nt = $Os8.new",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
+let opNewValue = 1;
}
-def V6_stpnt0 : HInst<
+def V6_stnp0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if ($Pv4) vmem($Rt32):nt = $Vs32",
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if (!$Pv4) vmem($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stpnt0_128B : HInst<
+def V6_stnpnt0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rt32):nt = $Vs32",
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if (!$Pv4) vmem($Rt32):nt = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_stq0 : HInst<
+def V6_stnq0 : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rt32) = $Vs32",
+(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if (!$Qv4) vmem($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stq0_128B : HInst<
+def V6_stnqnt0 : HInst<
(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if ($Qv4) vmem($Rt32) = $Vs32",
+(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if (!$Qv4) vmem($Rt32):nt = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_stqnt0 : HInst<
+def V6_stnt0 : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rt32):nt = $Vs32",
+(ins IntRegs:$Rt32, HvxVR:$Vs32),
+"vmem($Rt32):nt = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stqnt0_128B : HInst<
+def V6_stp0 : HInst<
(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if ($Qv4) vmem($Rt32):nt = $Vs32",
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if ($Pv4) vmem($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_stu0 : HInst<
+def V6_stpnt0 : HInst<
(outs),
-(ins IntRegs:$Rt32, VectorRegs:$Vs32),
-"vmemu($Rt32) = $Vs32",
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if ($Pv4) vmem($Rt32):nt = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stu0_128B : HInst<
+def V6_stq0 : HInst<
(outs),
-(ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"vmemu($Rt32) = $Vs32",
+(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if ($Qv4) vmem($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_stunp0 : HInst<
+def V6_stqnt0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if (!$Pv4) vmemu($Rt32) = $Vs32",
+(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if ($Qv4) vmem($Rt32):nt = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stunp0_128B : HInst<
+def V6_stu0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmemu($Rt32) = $Vs32",
+(ins IntRegs:$Rt32, HvxVR:$Vs32),
+"vmemu($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_stup0 : HInst<
+def V6_stunp0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
-"if ($Pv4) vmemu($Rt32) = $Vs32",
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
+"if (!$Pv4) vmemu($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_stup0_128B : HInst<
+def V6_stup0 : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
"if ($Pv4) vmemu($Rt32) = $Vs32",
PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32Ub_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32 = vmemu($Rt32+#$Ii)",
-tc_35e92f8e, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32Ub_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32 = vmemu($Rt32+#$Ii)",
tc_35e92f8e, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32Ub_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32 = vmemu($Rx32++#$Ii)",
-tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32Ub_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32 = vmemu($Rx32++#$Ii)",
tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32Ub_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32 = vmemu($Rx32++$Mu2)",
tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vL32Ub_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32 = vmemu($Rx32++$Mu2)",
-tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000111;
-let Inst{31-21} = 0b00101011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vL32b_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32 = vmem($Rt32+#$Ii)",
-tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32 = vmem($Rt32+#$Ii)",
tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_cur_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32.cur = vmem($Rt32+#$Ii)",
-tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_cur_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32.cur = vmem($Rt32+#$Ii)",
tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_cur_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_cur_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_cur_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_cur_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000101;
-let Inst{31-21} = 0b00101011100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_cur_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32.cur = vmem($Rx32++#$Ii)",
-tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32.cur = vmem($Rx32++#$Ii)",
tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_cur_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32.cur = vmem($Rx32++$Mu2)",
-tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000001;
-let Inst{31-21} = 0b00101011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32.cur = vmem($Rx32++$Mu2)",
tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_cur_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_cur_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_cur_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_cur_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000100;
-let Inst{31-21} = 0b00101011100;
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00101001100;
let isPredicated = 1;
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vL32b_cur_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+def V6_vL32b_cur_pred_ppu : HInst<
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000011;
-let Inst{31-21} = 0b00101011100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32 = vmem($Rt32+#$Ii):nt",
-tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32 = vmem($Rt32+#$Ii):nt",
tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_cur_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32.cur = vmem($Rt32+#$Ii):nt",
-tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_cur_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32.cur = vmem($Rt32+#$Ii):nt",
tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_cur_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_cur_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_cur_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_cur_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000101;
-let Inst{31-21} = 0b00101011110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_cur_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32.cur = vmem($Rx32++#$Ii):nt",
-tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32.cur = vmem($Rx32++#$Ii):nt",
tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_cur_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32.cur = vmem($Rx32++$Mu2):nt",
-tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000001;
-let Inst{31-21} = 0b00101011010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32.cur = vmem($Rx32++$Mu2):nt",
tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_cur_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_cur_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_cur_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_cur_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000100;
-let Inst{31-21} = 0b00101011110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let CVINew = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_cur_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let CVINew = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vL32b_nt_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
+"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
+tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
+let Inst{31-21} = 0b00101000110;
let isPredicated = 1;
let isPredicatedFalse = 1;
let hasNewValue = 1;
let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
+let addrMode = BaseImmOffset;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vL32b_nt_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+def V6_vL32b_nt_npred_pi : HInst<
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000011;
-let Inst{31-21} = 0b00101011110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32 = vmem($Rx32++#$Ii):nt",
-tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32 = vmem($Rx32++#$Ii):nt",
tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32 = vmem($Rx32++$Mu2):nt",
-tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000000;
-let Inst{31-21} = 0b00101011010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32 = vmem($Rx32++$Mu2):nt",
tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000010;
-let Inst{31-21} = 0b00101011110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_tmp_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32.tmp = vmem($Rt32+#$Ii):nt",
-tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_tmp_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32.tmp = vmem($Rt32+#$Ii):nt",
tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_tmp_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
-tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_tmp_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_tmp_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_tmp_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000111;
-let Inst{31-21} = 0b00101011110;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_tmp_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32.tmp = vmem($Rx32++#$Ii):nt",
-tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32.tmp = vmem($Rx32++#$Ii):nt",
tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_tmp_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32.tmp = vmem($Rx32++$Mu2):nt",
-tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000010;
-let Inst{31-21} = 0b00101011010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32.tmp = vmem($Rx32++$Mu2):nt",
tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_nt_tmp_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
-tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{31-21} = 0b00101000110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_nt_tmp_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_nt_tmp_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isNonTemporal = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_nt_tmp_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000110;
-let Inst{31-21} = 0b00101011110;
+let Inst{7-5} = 0b110;
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00101001110;
let isPredicated = 1;
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vL32b_nt_tmp_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+def V6_vL32b_nt_tmp_pred_ppu : HInst<
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isNonTemporal = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32 = vmem($Rx32++#$Ii)",
-tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32 = vmem($Rx32++#$Ii)",
tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32 = vmem($Rx32++$Mu2)",
-tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000000;
-let Inst{31-21} = 0b00101011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let isCVLoadable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32 = vmem($Rx32++$Mu2)",
tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let isCVLoadable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
-tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
-tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000010;
-let Inst{31-21} = 0b00101011100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii),
-"$Vd32.tmp = vmem($Rt32+#$Ii)",
-tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_tmp_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins IntRegs:$Rt32, s4_0Imm:$Ii),
"$Vd32.tmp = vmem($Rt32+#$Ii)",
tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_tmp_npred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
-tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_tmp_npred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_tmp_npred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_npred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_npred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000111;
-let Inst{31-21} = 0b00101011100;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_npred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
-"$Vd32.tmp = vmem($Rx32++#$Ii)",
-tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
"$Vd32.tmp = vmem($Rx32++#$Ii)",
tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2),
-"$Vd32.tmp = vmem($Rx32++$Mu2)",
-tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
-let Inst{12-5} = 0b00000010;
-let Inst{31-21} = 0b00101011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins IntRegs:$Rx32in, ModRegs:$Mu2),
"$Vd32.tmp = vmem($Rx32++$Mu2)",
tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_pred_ai : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
-"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
-tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{31-21} = 0b00101000100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vL32b_tmp_pred_ai_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vL32b_tmp_pred_pi : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
-"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_pred_pi_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vL32b_tmp_pred_ppu : HInst<
-(outs VectorRegs:$Vd32, IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
-"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
-tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
-let Inst{10-5} = 0b000110;
-let Inst{31-21} = 0b00101011100;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isCVLoad = 1;
-let mayLoad = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vL32b_tmp_pred_ppu_128B : HInst<
-(outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
+(outs HvxVR:$Vd32, IntRegs:$Rx32),
(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isCVLoad = 1;
let mayLoad = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32Ub_ai : HInst<
(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"vmemu($Rt32+#$Ii) = $Vs32",
tc_354299ad, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b111;
let Inst{12-11} = 0b00;
let Inst{31-21} = 0b00101000001;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_ai";
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32Ub_ai_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmemu($Rt32+#$Ii) = $Vs32",
-tc_354299ad, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b111;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000001;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ai_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32Ub_npred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
-tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b111;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ai";
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vS32Ub_npred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vS32Ub_npred_pi : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
-tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_pi";
+let BaseOpcode = "V6_vS32Ub_ai";
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_npred_pi_128B : HInst<
+def V6_vS32Ub_npred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_pi_128B";
+let BaseOpcode = "V6_vS32Ub_pi";
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32Ub_npred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-5} = 0b000111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_ppu";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_npred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
-tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-5} = 0b000111;
-let Inst{31-21} = 0b00101011101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32Ub_pi : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"vmemu($Rx32++#$Ii) = $Vs32",
tc_7fa82b08, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b111;
let Inst{13-11} = 0b000;
let Inst{31-21} = 0b00101001001;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_pi";
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmemu($Rx32++#$Ii) = $Vs32",
-tc_7fa82b08, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b111;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001001;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_pi_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32Ub_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"vmemu($Rx32++$Mu2) = $Vs32",
tc_7fa82b08, TypeCVI_VM_STU>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{12-5} = 0b00000111;
let Inst{31-21} = 0b00101011001;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_ppu";
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"vmemu($Rx32++$Mu2) = $Vs32",
-tc_7fa82b08, TypeCVI_VM_STU>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{12-5} = 0b00000111;
-let Inst{31-21} = 0b00101011001;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ppu_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32Ub_pred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b110;
let Inst{31-21} = 0b00101000101;
let isPredicated = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_ai";
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32Ub_pred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
-tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b110;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32Ub_pred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b110;
let Inst{31-21} = 0b00101001101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_pi";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_pred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
-tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_pi_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32Ub_pred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-5} = 0b000110;
let Inst{31-21} = 0b00101011101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32Ub_ppu";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32Ub_pred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
-tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-5} = 0b000110;
-let Inst{31-21} = 0b00101011101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32Ub_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_ai : HInst<
(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"vmem($Rt32+#$Ii) = $Vs32",
tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{12-11} = 0b00;
let Inst{31-21} = 0b00101000001;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ai";
let isNVStorable = 1;
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32b_ai_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmem($Rt32+#$Ii) = $Vs32",
-tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000001;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32b_new_ai : HInst<
(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"vmem($Rt32+#$Ii) = $Os8.new",
tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b00100;
let Inst{12-11} = 0b00;
let Inst{31-21} = 0b00101000001;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 2;
}
-def V6_vS32b_new_ai_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"vmem($Rt32+#$Ii) = $Os8.new",
-tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b00100;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000001;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 2;
-}
def V6_vS32b_new_npred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01101;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 3;
}
-def V6_vS32b_new_npred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
-tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01101;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-}
def V6_vS32b_new_npred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01101;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_new_npred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_new_npred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-3} = 0b00001101;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_new_npred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-3} = 0b00001101;
-let Inst{31-21} = 0b00101011101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_new_pi : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"vmem($Rx32++#$Ii) = $Os8.new",
tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b00100;
let Inst{13-11} = 0b000;
let Inst{31-21} = 0b00101001001;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 3;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_new_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"vmem($Rx32++#$Ii) = $Os8.new",
-tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b00100;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001001;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_new_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
+(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"vmem($Rx32++$Mu2) = $Os8.new",
tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{12-3} = 0b0000000100;
let Inst{31-21} = 0b00101011001;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 3;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_new_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
-"vmem($Rx32++$Mu2) = $Os8.new",
-tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{12-3} = 0b0000000100;
-let Inst{31-21} = 0b00101011001;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_new_pred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01000;
let Inst{31-21} = 0b00101000101;
let isPredicated = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 3;
}
-def V6_vS32b_new_pred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
-tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01000;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-}
def V6_vS32b_new_pred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01000;
let Inst{31-21} = 0b00101001101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_new_pred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_new_pred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-3} = 0b00001000;
let Inst{31-21} = 0b00101011101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ppu";
let DecoderNamespace = "EXT_mmvec";
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_new_pred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
-"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-3} = 0b00001000;
-let Inst{31-21} = 0b00101011101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_npred_ai : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
-tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b001;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
+let opNewValue = 4;
+let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_npred_ai_128B : HInst<
+def V6_vS32b_npred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
+let BaseOpcode = "V6_vS32b_ai";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_npred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_pi";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_npred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_npred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-5} = 0b000001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ppu";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_npred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-5} = 0b000001;
-let Inst{31-21} = 0b00101011101;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nqpred_ai : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
-tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{31-21} = 0b00101000100;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vS32b_nqpred_ai_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let Inst{31-21} = 0b00101000100;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_nqpred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nqpred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00101001100;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_nqpred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
-let Inst{10-5} = 0b000001;
-let Inst{31-21} = 0b00101011100;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nqpred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
let Inst{10-5} = 0b000001;
let Inst{31-21} = 0b00101011100;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_nt_ai : HInst<
(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"vmem($Rt32+#$Ii):nt = $Vs32",
tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{12-11} = 0b00;
let Inst{31-21} = 0b00101000011;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ai";
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32b_nt_ai_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmem($Rt32+#$Ii):nt = $Vs32",
-tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000011;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32b_nt_new_ai : HInst<
(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"vmem($Rt32+#$Ii):nt = $Os8.new",
tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b00100;
let Inst{12-11} = 0b00;
let Inst{31-21} = 0b00101000011;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 2;
}
-def V6_vS32b_nt_new_ai_128B : HInst<
-(outs),
-(ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"vmem($Rt32+#$Ii):nt = $Os8.new",
-tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b00100;
-let Inst{12-11} = 0b00;
-let Inst{31-21} = 0b00101000011;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 2;
-}
def V6_vS32b_nt_new_npred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 3;
}
-def V6_vS32b_nt_new_npred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
-tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01111;
-let Inst{31-21} = 0b00101000111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-}
def V6_vS32b_nt_new_npred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_new_npred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_new_npred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-3} = 0b00001111;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_new_npred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
-"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-3} = 0b00001111;
-let Inst{31-21} = 0b00101011111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_new_pi : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"vmem($Rx32++#$Ii):nt = $Os8.new",
tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b00100;
let Inst{13-11} = 0b000;
let Inst{31-21} = 0b00101001011;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 3;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_new_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"vmem($Rx32++#$Ii):nt = $Os8.new",
-tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b00100;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001011;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_new_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
+(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"vmem($Rx32++$Mu2):nt = $Os8.new",
tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{12-3} = 0b0000000100;
let Inst{31-21} = 0b00101011011;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 3;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_new_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
-"vmem($Rx32++$Mu2):nt = $Os8.new",
-tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{12-3} = 0b0000000100;
-let Inst{31-21} = 0b00101011011;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_new_pred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01010;
let Inst{31-21} = 0b00101000111;
let isPredicated = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let opNewValue = 3;
}
-def V6_vS32b_nt_new_pred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
-"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
-tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01010;
-let Inst{31-21} = 0b00101000111;
-let isPredicated = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 3;
-}
def V6_vS32b_nt_new_pred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-3} = 0b01010;
let Inst{31-21} = 0b00101001111;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
let CVINew = 1;
let isNewValue = 1;
let opNewValue = 4;
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_new_pred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
-"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-3} = 0b01010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001111;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_new_pred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
-"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
-tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-3} = 0b00001010;
-let Inst{31-21} = 0b00101011111;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu";
-let DecoderNamespace = "EXT_mmvec";
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_new_pred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-3} = 0b00001010;
let Inst{31-21} = 0b00101011111;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNVStore = 1;
-let CVINew = 1;
-let isNewValue = 1;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let opNewValue = 4;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_npred_ai : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
-tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b001;
-let Inst{31-21} = 0b00101000111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let CVINew = 1;
+let isNewValue = 1;
let isNonTemporal = 1;
let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai";
-let isNVStorable = 1;
+let BaseOpcode = "V6_vS32b_ppu";
let DecoderNamespace = "EXT_mmvec";
+let opNewValue = 4;
+let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_npred_ai_128B : HInst<
+def V6_vS32b_nt_npred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
+let BaseOpcode = "V6_vS32b_ai";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_nt_npred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_pi";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_npred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_npred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-5} = 0b000001;
let isPredicated = 1;
let isPredicatedFalse = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ppu";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_npred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-5} = 0b000001;
-let Inst{31-21} = 0b00101011111;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_nqpred_ai : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
-tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{31-21} = 0b00101000110;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vS32b_nt_nqpred_ai_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let Inst{31-21} = 0b00101000110;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_nt_nqpred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_nqpred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00101001110;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_nt_nqpred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
-let Inst{10-5} = 0b000001;
-let Inst{31-21} = 0b00101011110;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_nqpred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
let Inst{10-5} = 0b000001;
let Inst{31-21} = 0b00101011110;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_nt_pi : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"vmem($Rx32++#$Ii):nt = $Vs32",
tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{13-11} = 0b000;
let Inst{31-21} = 0b00101001011;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_pi";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmem($Rx32++#$Ii):nt = $Vs32",
-tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001011;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"vmem($Rx32++$Mu2):nt = $Vs32",
tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{12-5} = 0b00000000;
let Inst{31-21} = 0b00101011011;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ppu";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"vmem($Rx32++$Mu2):nt = $Vs32",
-tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{12-5} = 0b00000000;
-let Inst{31-21} = 0b00101011011;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_pred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{31-21} = 0b00101000111;
let isPredicated = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ai";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32b_nt_pred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
-tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{31-21} = 0b00101000111;
-let isPredicated = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32b_nt_pred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{31-21} = 0b00101001111;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_pi";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_pred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001111;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_pred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{10-5} = 0b000000;
let Inst{31-21} = 0b00101011111;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ppu";
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_nt_pred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{10-5} = 0b000000;
-let Inst{31-21} = 0b00101011111;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ppu_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_nt_qpred_ai : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
-tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{31-21} = 0b00101000110;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vS32b_nt_qpred_ai_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let Inst{31-21} = 0b00101000110;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_nt_qpred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001110;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_qpred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00101001110;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_nt_qpred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
-let Inst{10-5} = 0b000000;
-let Inst{31-21} = 0b00101011110;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let isNonTemporal = 1;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_nt_qpred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
let Inst{10-5} = 0b000000;
let Inst{31-21} = 0b00101011110;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let isNonTemporal = 1;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_pi : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
+(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"vmem($Rx32++#$Ii) = $Vs32",
tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{13-11} = 0b000;
let Inst{31-21} = 0b00101001001;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_pi";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"vmem($Rx32++#$Ii) = $Vs32",
-tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{13-11} = 0b000;
-let Inst{31-21} = 0b00101001001;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
def V6_vS32b_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"vmem($Rx32++$Mu2) = $Vs32",
-tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{12-5} = 0b00000000;
-let Inst{31-21} = 0b00101011001;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let isNVStorable = 1;
-let isPredicable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"vmem($Rx32++$Mu2) = $Vs32",
tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{12-5} = 0b00000000;
let Inst{31-21} = 0b00101011001;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let isNVStorable = 1;
let isPredicable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_pred_ai : HInst<
(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
let Inst{7-5} = 0b000;
let Inst{31-21} = 0b00101000101;
let isPredicated = 1;
let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let BaseOpcode = "V6_vS32b_ai";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vS32b_pred_ai_128B : HInst<
-(outs),
-(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
-tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
-let Inst{7-5} = 0b000;
-let Inst{31-21} = 0b00101000101;
-let isPredicated = 1;
-let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_ai_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vS32b_pred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_pred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
-"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001101;
-let isPredicated = 1;
-let addrMode = PostInc;
-let accessSize = Vector128Access;
-let mayStore = 1;
-let BaseOpcode = "V6_vS32b_pi_128B";
-let isNVStorable = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_pred_ppu : HInst<
-(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
-tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]> {
-let Inst{10-5} = 0b000000;
-let Inst{31-21} = 0b00101011101;
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
+"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
+tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]> {
+let Inst{7-5} = 0b000;
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00101001101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector64Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
+let BaseOpcode = "V6_vS32b_pi";
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Rx32 = $Rx32in";
}
-def V6_vS32b_pred_ppu_128B : HInst<
+def V6_vS32b_pred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]> {
let Inst{10-5} = 0b000000;
let Inst{31-21} = 0b00101011101;
let isPredicated = 1;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let isNVStorable = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_qpred_ai : HInst<
(outs),
-(ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
-tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{31-21} = 0b00101000100;
-let addrMode = BaseImmOffset;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vS32b_qpred_ai_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let Inst{31-21} = 0b00101000100;
let addrMode = BaseImmOffset;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vS32b_qpred_pi : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00101001100;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_qpred_pi_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00101001100;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vS32b_qpred_ppu : HInst<
(outs IntRegs:$Rx32),
-(ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
-"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
-tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
-let Inst{10-5} = 0b000000;
-let Inst{31-21} = 0b00101011100;
-let addrMode = PostInc;
-let accessSize = Vector64Access;
-let mayStore = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Rx32 = $Rx32in";
-}
-def V6_vS32b_qpred_ppu_128B : HInst<
-(outs IntRegs:$Rx32),
-(ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
+(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
let Inst{10-5} = 0b000000;
let Inst{31-21} = 0b00101011100;
let addrMode = PostInc;
-let accessSize = Vector128Access;
+let accessSize = HVXVectorAccess;
let mayStore = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Rx32 = $Rx32in";
}
def V6_vabsdiffh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vabsdiffh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vabsdiffh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vabsdiffub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vabsdiffub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vabsdiffuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vabsdiffuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsdiffw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vabsdiffw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsdiffw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vabsdiffw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vabs($Vu32.h)",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vabs($Vu32.h)",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vabsh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vabsh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsh_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vabs($Vu32.h):sat",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsh_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vabs($Vu32.h):sat",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsh_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vabsh($Vu32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsh_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vabsh($Vu32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.w = vabs($Vu32.w)",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.w = vabs($Vu32.w)",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vabsw($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vabsw($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsw_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.w = vabs($Vu32.w):sat",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsw_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.w = vabs($Vu32.w):sat",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vabsw_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vabsw($Vu32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vabsw_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vabsw($Vu32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vadd($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vadd($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddb_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddb_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddb_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddb($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddb_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddb($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddbnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.b += $Vu32.b",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddbnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.b += $Vu32.b",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let Inst{31-24} = 0b00011110;
let hasNewValue = 1;
let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddbnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.b) $Vx32.b += $Vu32.b",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
+let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vaddbnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+def V6_vaddbnq_alt : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4.b) $Vx32.b += $Vu32.b",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddbq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4) $Vx32.b += $Vu32.b",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddbq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.b += $Vu32.b",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddbq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.b) $Vx32.b += $Vu32.b",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vaddbq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
-"if ($Qv4.b) $Vx32.b += $Vu32.b",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
def V6_vaddbsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddbsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddbsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddb($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddbsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddb($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddbsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddbsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddbsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddbsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddcarry : HInst<
-(outs VectorRegs:$Vd32, VecPredRegs:$Qx4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, VecPredRegs:$Qx4in),
-"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
-tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let hasNewValue2 = 1;
-let opNewValue2 = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vaddcarry_128B : HInst<
-(outs VectorRegs128B:$Vd32, VecPredRegs128B:$Qx4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, VecPredRegs128B:$Qx4in),
+(outs HvxVR:$Vd32, HvxQR:$Qx4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue2 = 1;
let opNewValue2 = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vaddclbh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddclbh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddclbw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddclbw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vadd($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vadd($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddh_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddh_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddh_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddh($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddh_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddh($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.h += $Vu32.h",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddhnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.h += $Vu32.h",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddhnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.h) $Vx32.h += $Vu32.h",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddhnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4.h) $Vx32.h += $Vu32.h",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddhq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.h += $Vu32.h",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vaddhq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
-"if ($Qv4) $Vx32.h += $Vu32.h",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
def V6_vaddhq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4.h) $Vx32.h += $Vu32.h",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddhq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.h) $Vx32.h += $Vu32.h",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhw : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhw_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddhw_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vaddhw_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vaddhw_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vaddh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
+let Inst{7-5} = 0b010;
+let Inst{13-13} = 0b1;
+let Inst{31-21} = 0b00011100001;
let hasNewValue = 1;
let opNewValue = 0;
let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vxx32 = $Vxx32in";
}
-def V6_vaddhw_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vaddhw_acc_alt : HInst<
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vaddh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vaddhw_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vaddh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddhw_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vaddh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddubh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vaddubh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vaddubh_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vaddubh_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vaddubh_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vaddub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vaddubh_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vaddub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vaddubh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vaddub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddubh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vaddub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddubsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddubsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddubsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddub($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddubsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddub($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddubsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddubsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddubsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddubsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddububb_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vaddububb_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vadduhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vadduh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduhsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vadduh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduhsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduhsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduhsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduhsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduhw : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vadduhw_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vadduhw_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vadduhw_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vadduhw_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vadduh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vadduhw_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vadduh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vadduhw_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vadduh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduhw_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vadduh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduwsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduwsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduwsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vadduw($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduwsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vadduw($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduwsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduwsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vadduwsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vadduwsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vadd($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vaddw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32.w = vadd($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vaddw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vaddw_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
+PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vaddw_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+def V6_vaddw_dv : HInst<
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddw_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddw($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddw_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddw($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddwnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.w += $Vu32.w",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddwnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.w += $Vu32.w",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddwnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.w) $Vx32.w += $Vu32.w",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddwnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4.w) $Vx32.w += $Vu32.w",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddwq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4) $Vx32.w += $Vu32.w",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddwq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.w += $Vu32.w",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddwq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4.w) $Vx32.w += $Vu32.w",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaddwq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.w) $Vx32.w += $Vu32.w",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaddwsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddwsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddwsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaddw($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddwsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaddw($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddwsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddwsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaddwsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaddwsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_valignb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32 = valign($Vu32,$Vv32,$Rt8)",
-tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_valignb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = valign($Vu32,$Vv32,$Rt8)",
tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_valignbi : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
-"$Vd32 = valign($Vu32,$Vv32,#$Ii)",
-tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011110001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_valignbi_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vd32 = valign($Vu32,$Vv32,#$Ii)",
tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
let Inst{13-13} = 0b1;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vand : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vand($Vu32,$Vv32)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vand_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vand($Vu32,$Vv32)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandnqrt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vd32 = vand(!$Qu4,$Rt32)",
-tc_e231aa4f, TypeCVI_VX>, Enc_7b7ba8, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-10} = 0b0001;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandnqrt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qu4, IntRegs:$Rt32),
"$Vd32 = vand(!$Qu4,$Rt32)",
tc_e231aa4f, TypeCVI_VX>, Enc_7b7ba8, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandnqrt_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vx32 |= vand(!$Qu4,$Rt32)",
-tc_9311da3f, TypeCVI_VX>, Enc_895bd9, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-10} = 0b1001;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vandnqrt_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
"$Vx32 |= vand(!$Qu4,$Rt32)",
tc_9311da3f, TypeCVI_VX>, Enc_895bd9, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vandnqrt_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vandnqrt_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vandnqrt_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandnqrt_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qu4, IntRegs:$Rt32),
"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandqrt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vd32 = vand($Qu4,$Rt32)",
-tc_e231aa4f, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-10} = 0b0000;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandqrt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qu4, IntRegs:$Rt32),
"$Vd32 = vand($Qu4,$Rt32)",
tc_e231aa4f, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandqrt_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vx32 |= vand($Qu4,$Rt32)",
-tc_9311da3f, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-10} = 0b1000;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vandqrt_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
"$Vx32 |= vand($Qu4,$Rt32)",
tc_9311da3f, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vandqrt_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vandqrt_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vandqrt_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qu4, IntRegs:$Rt32),
-"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandqrt_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qu4, IntRegs:$Rt32),
"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandvnqv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vu32),
-"$Vd32 = vand(!$Qv4,$Vu32)",
-tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandvnqv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qv4, HvxVR:$Vu32),
"$Vd32 = vand(!$Qv4,$Vu32)",
tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vandvqv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qv4, HvxVR:$Vu32),
"$Vd32 = vand($Qv4,$Vu32)",
tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vandvqv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vu32),
-"$Vd32 = vand($Qv4,$Vu32)",
-tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000011;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vandvrt : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Qd4 = vand($Vu32,$Rt32)",
-tc_e231aa4f, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandvrt_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Qd4 = vand($Vu32,$Rt32)",
tc_e231aa4f, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vandvrt_acc : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Qx4 |= vand($Vu32,$Rt32)",
-tc_9311da3f, TypeCVI_VX_LATE>, Enc_adf111, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
}
-def V6_vandvrt_acc_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+def V6_vandvrt_acc : HInst<
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Qx4 |= vand($Vu32,$Rt32)",
tc_9311da3f, TypeCVI_VX_LATE>, Enc_adf111, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vandvrt_acc_alt : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vandvrt_acc_alt_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vandvrt_alt : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vandvrt_alt_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vasl($Vu32.h,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vasl($Vu32.h,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vaslh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vaslh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslhv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vasl($Vu32.h,$Vv32.h)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslhv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vasl($Vu32.h,$Vv32.h)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslhv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaslh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslhv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaslh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vasl($Vu32.w,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vasl($Vu32.w,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslw_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vasl($Vu32.w,$Rt32)",
-tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaslw_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vasl($Vu32.w,$Rt32)",
tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaslw_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vaslw($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vaslw_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vaslw($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vaslw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vaslw($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vaslw($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslwv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vasl($Vu32.w,$Vv32.w)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslwv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vasl($Vu32.w,$Vv32.w)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vaslwv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vaslw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vaslwv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vaslw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vasr($Vu32.h,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vasr($Vu32.h,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vasrh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vasrh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhbrndsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhbrndsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhbrndsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrhbsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhbsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhubrndsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhubrndsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhubrndsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):rnd:sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrhubsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhubsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhubsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrhv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vasr($Vu32.h,$Vv32.h)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vasr($Vu32.h,$Vv32.h)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrhv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vasrh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrhv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vasrh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasruwuhrndsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasruwuhrndsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vasr($Vu32.w,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vasr($Vu32.w,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrw_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vasr($Vu32.w,$Rt32)",
-tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vasrw_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vasr($Vu32.w,$Rt32)",
tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vasrw_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vasrw($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vasrw_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vasrw($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vasrw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vasrw($Vu32,$Rt32)",
+def V6_vasrw_acc_alt : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
+"$Vx32 += vasrw($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isAccumulator = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
+let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vasrw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+def V6_vasrw_alt : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vasrw($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8)",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrwhrndsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vasrwhrndsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vasrwhrndsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):rnd:sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrwhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrwuhrndsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwuhrndsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwuhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
-tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwuhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwuhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vasrwuh($Vu32,$Vv32,$Rt8):sat",
tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
}
def V6_vasrwv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vasr($Vu32.w,$Vv32.w)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vasr($Vu32.w,$Vv32.w)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vasrwv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vasrw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vasrwv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vasrw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vassign : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = $Vu32",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{31-16} = 0b0001111000000011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vassign_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = $Vu32",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vassignp : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32),
-"$Vdd32 = $Vuu32",
-CVI_VA, TypeCVI_VA_DV>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vassignp_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32),
"$Vdd32 = $Vuu32",
CVI_VA, TypeCVI_VA_DV>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vavg($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vavg($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavgh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavghrnd : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vavghrnd_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vavghrnd_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavgh($Vu32,$Vv32):rnd",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavghrnd_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgh($Vu32,$Vv32):rnd",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavgub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgubrnd : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgubrnd_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgubrnd_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgub($Vu32,$Vv32):rnd",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vavgubrnd_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vavgub($Vu32,$Vv32):rnd",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vavguh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavguh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavguh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavguh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavguh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavguh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavguhrnd : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavguhrnd_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavguhrnd_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavguh($Vu32,$Vv32):rnd",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavguhrnd_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavguh($Vu32,$Vv32):rnd",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vavg($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vavg($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavgw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgwrnd : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgwrnd_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vavgwrnd_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vavgw($Vu32,$Vv32):rnd",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vavgwrnd_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vavgw($Vu32,$Vv32):rnd",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vccombine : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins PredRegs:$Ps4, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
-tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011010011;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
}
-def V6_vccombine_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins PredRegs:$Ps4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vccombine : HInst<
+(outs HvxWR:$Vdd32),
+(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcl0h : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.uh = vcl0($Vu32.uh)",
-tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcl0h_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.uh = vcl0($Vu32.uh)",
tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcl0h_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vcl0h($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcl0h_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vcl0h($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcl0w : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.uw = vcl0($Vu32.uw)",
-tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcl0w_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.uw = vcl0($Vu32.uw)",
tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcl0w_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vcl0w($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcl0w_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vcl0w($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcmov : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Ps4, VectorRegs:$Vu32),
-"if ($Ps4) $Vd32 = $Vu32",
-tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001101000000000;
-let isPredicated = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcmov_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Ps4, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins PredRegs:$Ps4, HvxVR:$Vu32),
"if ($Ps4) $Vd32 = $Vu32",
tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vcombine : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vcombine($Vu32,$Vv32)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isRegSequence = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vcombine_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vcombine($Vu32,$Vv32)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isRegSequence = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vd0 : HInst<
-(outs VectorRegs:$Vd32),
-(ins),
-"$Vd32 = #0",
-CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vd0_128B : HInst<
-(outs VectorRegs128B:$Vd32),
+(outs HvxVR:$Vd32),
(ins),
"$Vd32 = #0",
CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdeal : HInst<
-(outs VectorRegs:$Vy32, VectorRegs:$Vx32),
-(ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
-"vdeal($Vy32,$Vx32,$Rt32)",
-tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let hasNewValue2 = 1;
-let opNewValue2 = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
-}
-def V6_vdeal_128B : HInst<
-(outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
+(outs HvxVR:$Vy32, HvxVR:$Vx32),
+(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
"vdeal($Vy32,$Vx32,$Rt32)",
tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue2 = 1;
let opNewValue2 = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
}
def V6_vdealb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.b = vdeal($Vu32.b)",
tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let DecoderNamespace = "EXT_mmvec";
}
def V6_vdealb4w : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealb4w_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdealb4w_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vdealb4w($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealb4w_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vdealb4w($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vdealb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
-"$Vd32.b = vdeal($Vu32.b)",
-tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdealb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vdealb($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vdealb($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdealh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vdeal($Vu32.h)",
-tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vdeal($Vu32.h)",
tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdealh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vdealh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vdealh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdealvdd : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
-tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdealvdd_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdelta : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vdelta($Vu32,$Vv32)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdelta_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vdelta($Vu32,$Vv32)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpybus : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpybus_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpybus_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpybus_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpybus_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vdmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpybus_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vdmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpybus_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vdmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpybus_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vdmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpybus_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpybus_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpybus_dv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdmpybus_dv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdmpybus_dv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vdmpybus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdmpybus_dv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vdmpybus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdmpybus_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vdmpybus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpybus_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vdmpybus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vdmpyhb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
}
-def V6_vdmpyhb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+def V6_vdmpyhb : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhb_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhb_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhb_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vdmpyhb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhb_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vdmpyhb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vdmpyhb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vdmpyhb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhb_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhb_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhb_dv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdmpyhb_dv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdmpyhb_dv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdmpyhb_dv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdmpyhb_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhb_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhisat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhisat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhisat_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhisat_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhisat_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhisat_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhisat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhisat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhsat_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vdmpyhsat_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
def V6_vdmpyhsat_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vdmpyh($Vu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhsat_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vdmpyh($Vu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vdmpyh($Vu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vdmpyh($Vu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhsuisat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vdmpyhsuisat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
-"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vdmpyhsuisat_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhsuisat_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhsuisat_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhsuisat_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhsuisat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhsuisat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhsusat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhsusat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhsusat_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhsusat_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhsusat_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vdmpyhsusat_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
def V6_vdmpyhsusat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhsusat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vdmpyhvsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vdmpyhvsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vdmpyhvsat : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdmpyhvsat_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vdmpyhvsat_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vdmpyhvsat_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vdmpyh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vdmpyhvsat_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vx32 += vdmpyh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
def V6_vdmpyhvsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vdmpyh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdmpyhvsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vdmpyh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdsaduh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdsaduh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vdsaduh_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdsaduh_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdsaduh_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vdsaduh($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vdsaduh_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vdsaduh($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vdsaduh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vdsaduh($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vdsaduh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vdsaduh($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_veqb : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_veqb_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_veqb_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqb_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqb_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqb_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqb_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqb_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqh : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_veqh_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_veqh_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqh_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqh_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqh_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqh_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqh_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqw : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_veqw_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_veqw_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000010;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Qx4 = $Qx4in";
}
-def V6_veqw_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Qx4 = $Qx4in";
-}
def V6_veqw_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqw_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_veqw_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_veqw_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtb : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vgtb_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vgtb_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtb_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtb_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtb_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtb_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100100;
+let Inst{7-2} = 0b010100;
let Inst{13-13} = 0b1;
let Inst{31-21} = 0b00011100100;
let hasNewValue = 1;
let opNewValue = 0;
+let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Qx4 = $Qx4in";
}
-def V6_vgtb_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vgtb_xor : HInst<
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgth : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vgth_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vgth_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgth_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgth_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgth_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgth_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgth_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtub : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001000;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vgtub_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vgtub_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtub_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtub_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b011000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtub_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b011000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtub_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b101000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtub_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b101000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuh : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vgtuh_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vgtuh_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuh_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuh_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b011001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuh_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b011001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuh_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b101001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuh_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b101001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuw : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vgtuw_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vgtuw_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b001010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuw_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b001010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuw_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b011010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuw_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b011010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtuw_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b101010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtuw_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b101010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtw : HInst<
-(outs VecPredRegs:$Qd4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vgtw_128B : HInst<
-(outs VecPredRegs128B:$Qd4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qd4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vgtw_and : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b000110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtw_and_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b000110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtw_or : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b010110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtw_or_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b010110;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vgtw_xor : HInst<
-(outs VecPredRegs:$Qx4),
-(ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
-tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
-let Inst{7-2} = 0b100110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vgtw_xor_128B : HInst<
-(outs VecPredRegs128B:$Qx4),
-(ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxQR:$Qx4),
+(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
let Inst{7-2} = 0b100110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vhist : HInst<
let Inst{31-16} = 0b0001111000000000;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vhist_128B : HInst<
-(outs),
-(ins),
-"vhist",
-tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV60T,UseHVX]> {
-let Inst{13-0} = 0b10000010000000;
-let Inst{31-16} = 0b0001111000000000;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vhistq : HInst<
(outs),
-(ins VecPredRegs:$Qv4),
-"vhist($Qv4)",
-tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV60T,UseHVX]> {
-let Inst{13-0} = 0b10000010000000;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vhistq_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4),
-"vhist($Qv4)",
-tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV60T,UseHVX]> {
-let Inst{13-0} = 0b10000010000000;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vinsertwr : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, IntRegs:$Rt32),
-"$Vx32.w = vinsert($Rt32)",
-tc_e231aa4f, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[HasV60T,UseHVX]> {
-let Inst{13-5} = 0b100000001;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
+(ins HvxQR:$Qv4),
+"vhist($Qv4)",
+tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV60T,UseHVX]> {
+let Inst{13-0} = 0b10000010000000;
+let Inst{21-16} = 0b000010;
+let Inst{31-24} = 0b00011110;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vinsertwr_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, IntRegs:$Rt32),
+def V6_vinsertwr : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, IntRegs:$Rt32),
"$Vx32.w = vinsert($Rt32)",
tc_e231aa4f, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[HasV60T,UseHVX]> {
let Inst{13-5} = 0b100000001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vlalignb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
-tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlalignb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlalignbi : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
-"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
-tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011110011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlalignbi_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
let Inst{13-13} = 0b1;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vlsrh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vlsrh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrhv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrhv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrhv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vlsrh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrhv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vlsrh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
-tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vlsrw($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vlsrw($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrwv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrwv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlsrwv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vlsrw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlsrwv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vlsrw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvvb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
-tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlutvvb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvvb_nm : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
-tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlutvvb_nm_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvvb_oracc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
-tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_245865, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vlutvvb_oracc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_245865, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vlutvvb_oracci : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
-"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
-tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_cd4705, Requires<[HasV62T,UseHVX]> {
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vlutvvb_oracci_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_cd4705, Requires<[HasV62T,UseHVX]> {
let Inst{13-13} = 0b1;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vlutvvbi : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
-"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
-tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV62T,UseHVX]> {
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlutvvbi_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV62T,UseHVX]> {
let Inst{13-13} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvwh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
-tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlutvwh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvwh_nm : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
-tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-24} = 0b00011000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vlutvwh_nm_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vlutvwh_oracc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
-"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
-tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_7b523d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vlutvwh_oracc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_7b523d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vlutvwh_oracci : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
-"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
-tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_1178da, Requires<[HasV62T,UseHVX]> {
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vlutvwh_oracci_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_1178da, Requires<[HasV62T,UseHVX]> {
let Inst{13-13} = 0b1;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vlutvwhi : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
tc_4e2a5159, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[HasV62T,UseHVX]> {
let Inst{13-13} = 0b0;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vlutvwhi_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
-"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
-tc_4e2a5159, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[HasV62T,UseHVX]> {
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vmaxb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vmax($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vmax($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmaxb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmaxb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vmax($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vmax($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00011111000;
let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vmaxh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmaxh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
+let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmaxh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vmaxh_alt : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmaxh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmaxub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmaxub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmaxuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmaxuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vmaxuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vmaxw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmax($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmax($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmaxw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmaxw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmaxw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmaxw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vmin($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vmin($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vminb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vminb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vmin($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vmin($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vminh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vminh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vminub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vminub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vminuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vminuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmin($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmin($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vminw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vminw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vminw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vminw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabus : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabus_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabus_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpabus_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpabus_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vmpabus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpabus_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vmpabus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpabus_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vmpabus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabus_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vmpabus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabusv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabusv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabusv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vmpabus($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabusv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vmpabus($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabuuv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabuuv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpabuuv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpabuuv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpahb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpahb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vmpahb_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
+let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00011001001;
let hasNewValue = 1;
let opNewValue = 0;
-let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
}
-def V6_vmpahb_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+def V6_vmpahb_acc : HInst<
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpahb_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vmpahb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpahb_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vmpahb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpahb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vmpahb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmpahb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vmpahb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vmpauhb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpauhb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpauhb_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpauhb_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpauhb_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vmpauhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpauhb_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vmpauhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpauhb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vmpauhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpauhb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vmpauhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybus : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybus_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybus_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybus_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybus_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32 += vmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybus_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32 += vmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybus_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32 = vmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybus_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32 = vmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybusv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybusv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybusv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybusv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybusv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpybus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybusv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpybus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybusv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpybus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybusv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpybus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpybv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpyb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpybv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpybv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpyb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpybv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpyb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyewuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyewuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyewuh_64 : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyewuh_64_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyewuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyewuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyewuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyewuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vmpyh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32 = vmpyh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vdd32 = vmpyh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
-def V6_vmpyhsat_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
+def V6_vmpyh_alt : HInst<
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
+"$Vdd32 = vmpyh($Vu32,$Rt32)",
+PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
-let isAccumulator = 1;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
}
-def V6_vmpyhsat_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+def V6_vmpyhsat_acc : HInst<
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyhsat_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32 += vmpyh($Vu32,$Rt32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyhsat_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32 += vmpyh($Vu32,$Rt32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyhsrs : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhsrs_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhsrs_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhsrs_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhss : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhss_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhss_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhss_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhus : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhus_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhus_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyhus_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyhus_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyhus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vxx32 = $Vxx32in";
}
-def V6_vmpyhus_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vxx32 += vmpyhus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vxx32 = $Vxx32in";
-}
def V6_vmpyhus_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpyhus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhus_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpyhus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyhv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyhv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpyh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyhv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyhv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpyh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpyh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhvsrs : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhvsrs_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyhvsrs_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyhvsrs_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyieoh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyieoh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiewh_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiewh_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiewh_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vmpyiewh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiewh_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vmpyiewh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiewuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiewuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiewuh_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiewuh_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiewuh_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vmpyiewuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiewuh_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vmpyiewuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiewuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyiewuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiewuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyiewuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyih : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyih_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vmpyih_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vmpyih_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vmpyih_acc : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyih_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vmpyih($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyih_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vmpyih($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyih_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyih($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyih_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyih($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyihb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyihb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyihb_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyihb_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyihb_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vmpyihb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyihb_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vmpyihb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyihb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyihb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyihb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyihb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiowh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiowh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiowh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyiowh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiowh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyiowh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiwb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiwb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiwb_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwb_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwb_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vmpyiwb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwb_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vmpyiwb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyiwb($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiwb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyiwb($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiwh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiwh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiwh_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwh_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwh_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vmpyiwh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwh_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vmpyiwh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyiwh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmpyiwh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyiwh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vmpyiwub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiwub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyiwub_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwub_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwub_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vmpyiwub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyiwub_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vmpyiwub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyiwub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vmpyiwub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyiwub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vmpyiwub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyowh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyowh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyowh_64_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyowh_64_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyowh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyowh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vmpyowh_rnd : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
+"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
+PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmpyowh_rnd_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vmpyowh_rnd : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyowh_rnd_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyowh_rnd_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyowh_rnd_sacc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyowh_rnd_sacc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyowh_rnd_sacc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyowh_rnd_sacc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isAccumulator = 1;
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyowh_sacc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyowh_sacc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyowh_sacc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vmpyowh_sacc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isAccumulator = 1;
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vmpyub : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyub_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyub_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyub_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyub_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32 += vmpyub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyub_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32 += vmpyub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyub_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32 = vmpyub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyub_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32 = vmpyub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyubv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyubv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyubv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyubv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyubv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpyub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyubv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyubv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpyub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyubv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpyub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyuh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyuh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyuh_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyuh_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyuh_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vxx32 += vmpyuh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyuh_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vxx32 += vmpyuh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyuh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vdd32 = vmpyuh($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vmpyuh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
-"$Vdd32 = vmpyuh($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vmpyuhv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyuhv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmpyuhv_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyuhv_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyuhv_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vxx32 += vmpyuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vmpyuhv_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vxx32 += vmpyuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vmpyuhv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vmpyuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmpyuhv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vmpyuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vmux : HInst<
-(outs VectorRegs:$Vd32),
-(ins VecPredRegs:$Qt4, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
-tc_a3127e12, TypeCVI_VA>, Enc_31db33, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011110111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vmux_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VecPredRegs128B:$Qt4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
tc_a3127e12, TypeCVI_VA>, Enc_31db33, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnavgh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnavgh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vnavgh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vnavgh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00011100111;
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vnavgh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vnavgh_alt : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vnavgh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnavgub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnavgub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnavgub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vnavgub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vnavgub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vnavgub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vnavgw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnavgw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnavgw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vnavgw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnavgw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vnavgw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnccombine : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins PredRegs:$Ps4, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
-tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011010010;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnccombine_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins PredRegs:$Ps4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vncmov : HInst<
-(outs VectorRegs:$Vd32),
-(ins PredRegs:$Ps4, VectorRegs:$Vu32),
-"if (!$Ps4) $Vd32 = $Vu32",
-tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001101000100000;
-let isPredicated = 1;
-let isPredicatedFalse = 1;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vncmov_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins PredRegs:$Ps4, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins PredRegs:$Ps4, HvxVR:$Vu32),
"if (!$Ps4) $Vd32 = $Vu32",
tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnormamth : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vnormamt($Vu32.h)",
-tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnormamth_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vnormamt($Vu32.h)",
tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnormamth_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vnormamth($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnormamth_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vnormamth($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnormamtw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.w = vnormamt($Vu32.w)",
-tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnormamtw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.w = vnormamt($Vu32.w)",
tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnormamtw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vnormamtw($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnormamtw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vnormamtw($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vnot : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vnot($Vu32)",
-tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vnot_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vnot($Vu32)",
tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vor : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vor($Vu32,$Vv32)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vor_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vor($Vu32,$Vv32)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackeb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackeb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackeb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackeb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackeb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackeb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackeh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackeh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackeh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackeh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackeh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackeh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackhb_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackhb_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackhb_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackhb($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackhb_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackhb($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackhub_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackhub_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackhub_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackhub($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackhub_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackhub($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackob : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackob_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackob_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackob($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackob_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackob($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackoh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackoh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vpackoh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackoh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackoh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vpackoh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vpackwh_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
+}
+def V6_vpackoh_alt : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
+"$Vd32 = vpackoh($Vu32,$Vv32)",
+PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vpackwh_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vpackwh_sat : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackwh_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackwh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackwh_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackwh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackwuh_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackwuh_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpackwuh_sat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vpackwuh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpackwuh_sat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vpackwuh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpopcounth : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vpopcount($Vu32.h)",
-tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpopcounth_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vpopcount($Vu32.h)",
tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vpopcounth_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vpopcounth($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vpopcounth_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vpopcounth($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrdelta : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vrdelta($Vu32,$Vv32)",
-tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrdelta_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrdelta($Vu32,$Vv32)",
tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybus : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybus_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybus_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybus_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybus_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vrmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybus_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vrmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybus_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vrmpybus($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybus_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vrmpybus($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybusi : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
-tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b10;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybusi_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b10;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybusi_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
-tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b10;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrmpybusi_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b10;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrmpybusi_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrmpybusi_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrmpybusi_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybusi_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybusv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybusv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybusv_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybusv_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybusv_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vrmpybus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybusv_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vrmpybus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybusv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vrmpybus($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybusv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrmpybus($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpybv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpybv_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybv_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybv_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vrmpyb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpybv_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vrmpyb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpybv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrmpyb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vrmpybv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vrmpyb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vrmpyub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
-tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vrmpyub_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
-tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b1;
+tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
+let Inst{7-5} = 0b011;
+let Inst{13-13} = 0b0;
let Inst{31-21} = 0b00011001000;
let hasNewValue = 1;
let opNewValue = 0;
-let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vrmpyub_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+def V6_vrmpyub_acc : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpyub_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vx32 += vrmpyub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpyub_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
"$Vx32 += vrmpyub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpyub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vrmpyub($Vu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vrmpyub($Vu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpyubi : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
-tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b11;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyubi_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b11;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpyubi_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
-tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b11;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrmpyubi_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b11;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrmpyubi_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrmpyubi_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrmpyubi_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyubi_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpyubv : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
-tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyubv_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrmpyubv_acc : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
-tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpyubv_acc_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpyubv_acc_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vx32 += vrmpyub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vrmpyubv_acc_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vx32),
+(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vx32 += vrmpyub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vrmpyubv_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vrmpyub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrmpyubv_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrmpyub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vror : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, IntRegs:$Rt32),
-"$Vd32 = vror($Vu32,$Rt32)",
-tc_bf142ae2, TypeCVI_VP>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vror_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, IntRegs:$Rt32),
"$Vd32 = vror($Vu32,$Rt32)",
tc_bf142ae2, TypeCVI_VP>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundhb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundhb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundhb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vroundhb($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundhb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vroundhb($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundhub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundhub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundhub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vroundhub($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundhub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vroundhub($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrounduhub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrounduhub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrounduhub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vrounduhub($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrounduhub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrounduhub($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrounduwuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrounduwuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrounduwuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrounduwuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundwh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundwh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundwh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vroundwh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundwh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vroundwh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundwuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
-tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundwuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vroundwuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vroundwuh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vroundwuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vroundwuh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrsadubi : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
-tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b11;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrsadubi_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b11;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vrsadubi_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
-tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-6} = 0b11;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrsadubi_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
let Inst{7-6} = 0b11;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrsadubi_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vrsadubi_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vrsadubi_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
-"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vrsadubi_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsathub : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
-tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsathub_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsathub_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsathub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsathub_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsathub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsatuwuh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsatuwuh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsatuwuh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsatuwuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsatuwuh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsatuwuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsatwh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vsat($Vu32.w,$Vv32.w)",
-tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsatwh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vsat($Vu32.w,$Vv32.w)",
tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsatwh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsatwh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsatwh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsatwh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.h = vsxt($Vu32.b)",
-tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.h = vsxt($Vu32.b)",
tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vsxtb($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vsxtb($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.w = vsxt($Vu32.h)",
-tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.w = vsxt($Vu32.h)",
tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vsxth($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vsxth($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufeh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufeh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufeh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vshuffeh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufeh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vshuffeh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuff : HInst<
-(outs VectorRegs:$Vy32, VectorRegs:$Vx32),
-(ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
-"vshuff($Vy32,$Vx32,$Rt32)",
-tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001111;
-let hasNewValue = 1;
-let opNewValue = 0;
-let hasNewValue2 = 1;
-let opNewValue2 = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
-}
-def V6_vshuff_128B : HInst<
-(outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
+(outs HvxVR:$Vy32, HvxVR:$Vx32),
+(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
"vshuff($Vy32,$Vx32,$Rt32)",
tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue2 = 1;
let opNewValue2 = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
}
def V6_vshuffb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.b = vshuff($Vu32.b)",
-tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.b = vshuff($Vu32.b)",
tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vshuffb($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vshuffb($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffeb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffeb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffeb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vshuffeb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffeb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vshuffeb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32.h = vshuff($Vu32.h)",
-tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32.h = vshuff($Vu32.h)",
tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32),
-"$Vd32 = vshuffh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32),
"$Vd32 = vshuffh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffob : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffob_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffob_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vshuffob($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshuffob_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vshuffob($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshuffvdd : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vshuffvdd_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
-"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
-tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{31-24} = 0b00011011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vshufoeb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufoeb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vshufoeb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vshuffoeb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
+"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
+tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
+let Inst{7-5} = 0b110;
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00011111010;
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vshufoeb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vshufoeb_alt : HInst<
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vshuffoeb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufoeh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufoeh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufoeh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vshuffoeh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufoeh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vshuffoeh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufoh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufoh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vshufoh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vshuffoh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vshufoh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vshuffoh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubb : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vsub($Vu32.b,$Vv32.b)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubb_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vsub($Vu32.b,$Vv32.b)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubb_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubb($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubb_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubb($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubb_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubb_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubb_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubb($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubb_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubb($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubbnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.b -= $Vu32.b",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubbnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.b -= $Vu32.b",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubbnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.b) $Vx32.b -= $Vu32.b",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubbnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4.b) $Vx32.b -= $Vu32.b",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubbq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4) $Vx32.b -= $Vu32.b",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubbq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.b -= $Vu32.b",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubbq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4.b) $Vx32.b -= $Vu32.b",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubbq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.b) $Vx32.b -= $Vu32.b",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubbsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubbsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubbsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubb($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubbsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubb($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubbsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubbsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubbsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubbsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubcarry : HInst<
-(outs VectorRegs:$Vd32, VecPredRegs:$Qx4),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32, VecPredRegs:$Qx4in),
-"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
-tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
-let Inst{7-7} = 0b1;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let hasNewValue2 = 1;
-let opNewValue2 = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Qx4 = $Qx4in";
-}
-def V6_vsubcarry_128B : HInst<
-(outs VectorRegs128B:$Vd32, VecPredRegs128B:$Qx4),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, VecPredRegs128B:$Qx4in),
+(outs HvxVR:$Vd32, HvxQR:$Qx4),
+(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
let Inst{7-7} = 0b1;
let hasNewValue2 = 1;
let opNewValue2 = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Qx4 = $Qx4in";
}
def V6_vsubh : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.h = vsub($Vu32.h,$Vv32.h)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubh_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vsub($Vu32.h,$Vv32.h)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubh_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubh_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubh_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubh_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubh_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubh($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubh_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubh($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubhnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.h -= $Vu32.h",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubhnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.h -= $Vu32.h",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubhnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubhnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
-"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubhq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4) $Vx32.h -= $Vu32.h",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000001;
-let Inst{31-24} = 0b00011110;
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
+"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
+PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isPseudo = 1;
+let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
let Constraints = "$Vx32 = $Vx32in";
}
-def V6_vsubhq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+def V6_vsubhq : HInst<
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.h -= $Vu32.h",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubhq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4.h) $Vx32.h -= $Vu32.h",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubhq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.h) $Vx32.h -= $Vu32.h",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vsubhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vsubhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubhsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubhsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubhsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubhsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubhsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubhw : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubhw_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubhw_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vsubh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vsubhw_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vdd32 = vsubh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vsububh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsububh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vsubub($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vsubub($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsububsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsububsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubub($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubub($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsububsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsububsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsububsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubububb_sat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubububb_sat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubuh($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubuh($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhw : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
-tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b110;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhw_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b110;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuhw_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vsubuh($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuhw_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vsubuh($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuwsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011111110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuwsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuwsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubuw($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuwsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubuw($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuwsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuwsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubuwsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubuwsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubw : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vsub($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubw_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vsub($Vu32.w,$Vv32.w)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
-def V6_vsubw_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubw($Vu32,$Vv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
+tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
+let Inst{7-5} = 0b111;
+let Inst{13-13} = 0b0;
+let Inst{31-21} = 0b00011100010;
let hasNewValue = 1;
let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vsubw_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+def V6_vsubw_alt : HInst<
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubw($Vu32,$Vv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubw_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b101;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100100;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubw_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b101;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubw_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubw($Vuu32,$Vvv32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubw_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubw($Vuu32,$Vvv32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubwnq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4) $Vx32.w -= $Vu32.w",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubwnq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4) $Vx32.w -= $Vu32.w",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubwnq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if (!$Qv4.w) $Vx32.w -= $Vu32.w",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubwnq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if (!$Qv4.w) $Vx32.w -= $Vu32.w",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubwq : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4) $Vx32.w -= $Vu32.w",
-tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubwq_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4) $Vx32.w -= $Vu32.w",
tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubwq_alt : HInst<
-(outs VectorRegs:$Vx32),
-(ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
-"if ($Qv4.w) $Vx32.w -= $Vu32.w",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vx32 = $Vx32in";
-}
-def V6_vsubwq_alt_128B : HInst<
-(outs VectorRegs128B:$Vx32),
-(ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
+(outs HvxVR:$Vx32),
+(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
"if ($Qv4.w) $Vx32.w -= $Vu32.w",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vx32 = $Vx32in";
}
def V6_vsubwsat : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100011;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubwsat_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubwsat_alt : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vd32 = vsubw($Vu32,$Vv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubwsat_alt_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vsubw($Vu32,$Vv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubwsat_dv : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
-tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubwsat_dv_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vsubwsat_dv_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
-"$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vsubwsat_dv_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
"$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vswap : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecPredRegs:$Qt4, VectorRegs:$Vu32, VectorRegs:$Vv32),
-"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
-tc_316c637c, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[HasV60T,UseHVX]> {
-let Inst{7-7} = 0b0;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011110101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vswap_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecPredRegs128B:$Qt4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
+(outs HvxWR:$Vdd32),
+(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
tc_316c637c, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[HasV60T,UseHVX]> {
let Inst{7-7} = 0b0;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpyb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpyb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpyb_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpyb_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vtmpyb_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vtmpyb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpyb_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vtmpyb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vtmpyb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vtmpyb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpyb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vtmpyb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpybus : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpybus_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpybus_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpybus_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vtmpybus_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vtmpybus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpybus_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32 += vtmpybus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vtmpybus_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vtmpybus($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpybus_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32 = vtmpybus($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpyhb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
-tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b100;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011001101;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpyhb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b100;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vtmpyhb_acc : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
-tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b1;
-let Inst{31-21} = 0b00011001000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpyhb_acc_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vtmpyhb_acc_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpyhb_acc_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
-"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vtmpyhb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vtmpyhb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
-"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
+"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
+let isAccumulator = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
+let Constraints = "$Vxx32 = $Vxx32in";
}
-def V6_vtran2x2_map : HInst<
-(outs VectorRegs:$Vy32, VectorRegs:$Vx32),
-(ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
-"vtrans2x2($Vy32,$Vx32,$Rt32)",
+def V6_vtmpyhb_alt : HInst<
+(outs HvxWR:$Vdd32),
+(ins HvxWR:$Vuu32, IntRegs:$Rt32),
+"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let opNewValue = 0;
-let hasNewValue2 = 1;
-let opNewValue2 = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
}
-def V6_vtran2x2_map_128B : HInst<
-(outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
-(ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
+def V6_vtran2x2_map : HInst<
+(outs HvxVR:$Vy32, HvxVR:$Vx32),
+(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
"vtrans2x2($Vy32,$Vx32,$Rt32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
}
def V6_vunpackb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.h = vunpack($Vu32.b)",
-tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.h = vunpack($Vu32.b)",
tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vunpackb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vunpackb($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vunpackb($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vunpackh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.w = vunpack($Vu32.h)",
tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b011;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vunpackh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
-"$Vdd32.w = vunpack($Vu32.h)",
-tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b011;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vunpackh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vunpackh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vunpackh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vunpackob : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
-"$Vxx32.h |= vunpacko($Vu32.b)",
-tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b1;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vunpackob_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
"$Vxx32.h |= vunpacko($Vu32.b)",
tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vunpackob_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
-"$Vxx32 |= vunpackob($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vunpackob_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
"$Vxx32 |= vunpackob($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isAccumulator = 1;
let isPseudo = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vunpackoh : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
-"$Vxx32.w |= vunpacko($Vu32.h)",
-tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b1;
-let Inst{31-16} = 0b0001111000000000;
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vunpackoh_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
"$Vxx32.w |= vunpacko($Vu32.h)",
tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let opNewValue = 0;
let isAccumulator = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vunpackoh_alt : HInst<
-(outs VecDblRegs:$Vxx32),
-(ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
-"$Vxx32 |= vunpackoh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isAccumulator = 1;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-let Constraints = "$Vxx32 = $Vxx32in";
-}
-def V6_vunpackoh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vxx32),
-(ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
+(outs HvxWR:$Vxx32),
+(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
"$Vxx32 |= vunpackoh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
let Constraints = "$Vxx32 = $Vxx32in";
}
def V6_vunpackub : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.uh = vunpack($Vu32.ub)",
tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b000;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vunpackub_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
-"$Vdd32.uh = vunpack($Vu32.ub)",
-tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b000;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vunpackub_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vunpackub($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackub_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vunpackub($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vunpackuh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.uw = vunpack($Vu32.uh)",
-tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackuh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.uw = vunpack($Vu32.uh)",
tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vunpackuh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vunpackuh($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vunpackuh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vunpackuh($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vwhist128 : HInst<
(outs),
let Inst{31-16} = 0b0001111000000000;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vwhist128_128B : HInst<
-(outs),
-(ins),
-"vwhist128",
-tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10010010000000;
-let Inst{31-16} = 0b0001111000000000;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vwhist128m : HInst<
(outs),
(ins u1_0Imm:$Ii),
let Inst{31-16} = 0b0001111000000000;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vwhist128m_128B : HInst<
-(outs),
-(ins u1_0Imm:$Ii),
-"vwhist128(#$Ii)",
-tc_b77635b4, TypeCVI_HIST>, Enc_efaed8, Requires<[HasV62T,UseHVX]> {
-let Inst{7-0} = 0b10000000;
-let Inst{13-9} = 0b10011;
-let Inst{31-16} = 0b0001111000000000;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vwhist128q : HInst<
(outs),
-(ins VecPredRegs:$Qv4),
-"vwhist128($Qv4)",
-tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10010010000000;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vwhist128q_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4),
+(ins HvxQR:$Qv4),
"vwhist128($Qv4)",
tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
let Inst{13-0} = 0b10010010000000;
let Inst{21-16} = 0b000010;
let Inst{31-24} = 0b00011110;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vwhist128qm : HInst<
(outs),
-(ins VecPredRegs:$Qv4, u1_0Imm:$Ii),
-"vwhist128($Qv4,#$Ii)",
-tc_28978789, TypeCVI_HIST>, Enc_802dc0, Requires<[HasV62T,UseHVX]> {
-let Inst{7-0} = 0b10000000;
-let Inst{13-9} = 0b10011;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vwhist128qm_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4, u1_0Imm:$Ii),
+(ins HvxQR:$Qv4, u1_0Imm:$Ii),
"vwhist128($Qv4,#$Ii)",
tc_28978789, TypeCVI_HIST>, Enc_802dc0, Requires<[HasV62T,UseHVX]> {
let Inst{7-0} = 0b10000000;
let Inst{21-16} = 0b000010;
let Inst{31-24} = 0b00011110;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vwhist256 : HInst<
(outs),
let Inst{31-16} = 0b0001111000000000;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vwhist256_128B : HInst<
-(outs),
-(ins),
-"vwhist256",
-tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10001010000000;
-let Inst{31-16} = 0b0001111000000000;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vwhist256_sat : HInst<
(outs),
(ins),
let Inst{31-16} = 0b0001111000000000;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vwhist256_sat_128B : HInst<
-(outs),
-(ins),
-"vwhist256:sat",
-tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10001110000000;
-let Inst{31-16} = 0b0001111000000000;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vwhist256q : HInst<
(outs),
-(ins VecPredRegs:$Qv4),
-"vwhist256($Qv4)",
-tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10001010000000;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vwhist256q_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4),
+(ins HvxQR:$Qv4),
"vwhist256($Qv4)",
tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
let Inst{13-0} = 0b10001010000000;
let Inst{21-16} = 0b000010;
let Inst{31-24} = 0b00011110;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vwhist256q_sat : HInst<
(outs),
-(ins VecPredRegs:$Qv4),
-"vwhist256($Qv4):sat",
-tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
-let Inst{13-0} = 0b10001110000000;
-let Inst{21-16} = 0b000010;
-let Inst{31-24} = 0b00011110;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vwhist256q_sat_128B : HInst<
-(outs),
-(ins VecPredRegs128B:$Qv4),
+(ins HvxQR:$Qv4),
"vwhist256($Qv4):sat",
tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
let Inst{13-0} = 0b10001110000000;
let Inst{21-16} = 0b000010;
let Inst{31-24} = 0b00011110;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vxor : HInst<
-(outs VectorRegs:$Vd32),
-(ins VectorRegs:$Vu32, VectorRegs:$Vv32),
+(outs HvxVR:$Vd32),
+(ins HvxVR:$Vu32, HvxVR:$Vv32),
"$Vd32 = vxor($Vu32,$Vv32)",
tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b111;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
}
-def V6_vxor_128B : HInst<
-(outs VectorRegs128B:$Vd32),
-(ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
-"$Vd32 = vxor($Vu32,$Vv32)",
-tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b111;
-let Inst{13-13} = 0b0;
-let Inst{31-21} = 0b00011100001;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
-}
def V6_vzb : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.uh = vzxt($Vu32.ub)",
-tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b001;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vzb_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.uh = vzxt($Vu32.ub)",
tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b001;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vzb_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vzxtb($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vzb_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vzxtb($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vzh : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32.uw = vzxt($Vu32.uh)",
-tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
-let Inst{7-5} = 0b010;
-let Inst{13-13} = 0b0;
-let Inst{31-16} = 0b0001111000000010;
-let hasNewValue = 1;
-let opNewValue = 0;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vzh_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32.uw = vzxt($Vu32.uh)",
tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
let Inst{7-5} = 0b010;
let hasNewValue = 1;
let opNewValue = 0;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def V6_vzh_alt : HInst<
-(outs VecDblRegs:$Vdd32),
-(ins VectorRegs:$Vu32),
-"$Vdd32 = vzxth($Vu32)",
-PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
-let hasNewValue = 1;
-let opNewValue = 0;
-let isPseudo = 1;
-let isCodeGenOnly = 1;
-let DecoderNamespace = "EXT_mmvec";
-}
-def V6_vzh_alt_128B : HInst<
-(outs VecDblRegs128B:$Vdd32),
-(ins VectorRegs128B:$Vu32),
+(outs HvxWR:$Vdd32),
+(ins HvxVR:$Vu32),
"$Vdd32 = vzxth($Vu32)",
PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
let hasNewValue = 1;
let isPseudo = 1;
let isCodeGenOnly = 1;
let DecoderNamespace = "EXT_mmvec";
-let isCodeGenOnly = 1;
}
def Y2_barrier : HInst<
(outs),