Track renaming of {reciprocal, reciprocal sqrt}{estimate, step}

primops in vex r2932.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14350
This commit is contained in:
Julian Seward 2014-08-24 14:02:22 +00:00
parent 59990c4f9d
commit 6a859c491c
3 changed files with 47 additions and 55 deletions

View File

@ -3307,8 +3307,8 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
case Iop_CmpUN32Fx4:
case Iop_CmpGT32Fx4:
case Iop_CmpGE32Fx4:
case Iop_Recps32Fx4:
case Iop_Rsqrts32Fx4:
case Iop_RecipStep32Fx4:
case Iop_RSqrtStep32Fx4:
return binary32Fx4(mce, vatom1, vatom2);
case Iop_Sub32Fx2:
@ -3319,8 +3319,8 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
case Iop_CmpGT32Fx2:
case Iop_CmpGE32Fx2:
case Iop_Add32Fx2:
case Iop_Recps32Fx2:
case Iop_Rsqrts32Fx2:
case Iop_RecipStep32Fx2:
case Iop_RSqrtStep32Fx2:
return binary32Fx2(mce, vatom1, vatom2);
case Iop_Sub32F0x4:
@ -4005,16 +4005,15 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
return unary64F0x2(mce, vatom);
case Iop_Sqrt32Fx8:
case Iop_RSqrt32Fx8:
case Iop_Recip32Fx8:
case Iop_RSqrtEst32Fx8:
case Iop_RecipEst32Fx8:
return unary32Fx8(mce, vatom);
case Iop_Sqrt64Fx4:
return unary64Fx4(mce, vatom);
case Iop_Sqrt32Fx4:
case Iop_RSqrt32Fx4:
case Iop_Recip32Fx4:
case Iop_RecipEst32Fx4:
case Iop_I32UtoFx4:
case Iop_I32StoFx4:
case Iop_QFtoI32Ux4_RZ:
@ -4023,24 +4022,24 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
case Iop_RoundF32x4_RP:
case Iop_RoundF32x4_RN:
case Iop_RoundF32x4_RZ:
case Iop_Recip32x4:
case Iop_RecipEst32Ux4:
case Iop_Abs32Fx4:
case Iop_Neg32Fx4:
case Iop_Rsqrte32Fx4:
case Iop_RSqrtEst32Fx4:
return unary32Fx4(mce, vatom);
case Iop_I32UtoFx2:
case Iop_I32StoFx2:
case Iop_Recip32Fx2:
case Iop_Recip32x2:
case Iop_RecipEst32Fx2:
case Iop_RecipEst32Ux2:
case Iop_Abs32Fx2:
case Iop_Neg32Fx2:
case Iop_Rsqrte32Fx2:
case Iop_RSqrtEst32Fx2:
return unary32Fx2(mce, vatom);
case Iop_Sqrt32F0x4:
case Iop_RSqrt32F0x4:
case Iop_Recip32F0x4:
case Iop_RSqrtEst32F0x4:
case Iop_RecipEst32F0x4:
return unary32F0x4(mce, vatom);
case Iop_32UtoV128:
@ -4089,7 +4088,7 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
case Iop_I32UtoF64:
case Iop_NegF64:
case Iop_AbsF64:
case Iop_Est5FRSqrt:
case Iop_RSqrtEst5GoodF64:
case Iop_RoundF64toF64_NEAREST:
case Iop_RoundF64toF64_NegINF:
case Iop_RoundF64toF64_PosINF:

View File

@ -248,7 +248,7 @@ static irop_t irops[] = {
{ DEFOP(Iop_MSubF64, UNDEF_ALL), .s390x = 1, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 1 },
{ DEFOP(Iop_MAddF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 0 },
{ DEFOP(Iop_MSubF64r32, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 0 },
{ DEFOP(Iop_Est5FRSqrt, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 0 },
{ DEFOP(Iop_RSqrtEst5GoodF64, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 0 },
{ DEFOP(Iop_RoundF64toF64_NEAREST, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 1 },
{ DEFOP(Iop_RoundF64toF64_NegINF, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 1 },
{ DEFOP(Iop_RoundF64toF64_PosINF, UNDEF_ALL), .s390x = 0, .amd64 = 0, .x86 = 0, .arm = 0, .ppc64 = 1, .ppc32 = 1, .mips32 = 0, .mips64 = 1 },
@ -298,10 +298,10 @@ static irop_t irops[] = {
{ DEFOP(Iop_CmpEQ32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpGT32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpGE32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recps32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrte32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrts32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipStep32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtStep32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Neg32Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Abs32Fx2, UNDEF_UNKNOWN), },
/* ------------------ 64-bit SIMD Integer. ------------------ */
@ -474,8 +474,8 @@ static irop_t irops[] = {
{ DEFOP(Iop_Reverse32sIn64_x1, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Perm8x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_GetMSBs8x8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrte32x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32Ux2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32Ux2, UNDEF_UNKNOWN), },
/* ------------------ Decimal Floating Point ------------------ */
{ DEFOP(Iop_AddD64, UNDEF_ALL), .s390x = 1, .ppc64 = 1, .ppc32 = 1 },
{ DEFOP(Iop_SubD64, UNDEF_ALL), .s390x = 1, .ppc64 = 1, .ppc32 = 1 },
@ -569,12 +569,11 @@ static irop_t irops[] = {
{ DEFOP(Iop_PwMin32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Abs32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrt32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Neg32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recps32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrte32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrts32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipStep32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtStep32Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_I32UtoFx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_I32StoFx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_FtoI32Ux4_RZ, UNDEF_UNKNOWN), },
@ -601,9 +600,9 @@ static irop_t irops[] = {
{ DEFOP(Iop_CmpLT32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpLE32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpUN32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrt32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32F0x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Add64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sub64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Mul64Fx2, UNDEF_UNKNOWN), },
@ -616,9 +615,7 @@ static irop_t irops[] = {
{ DEFOP(Iop_CmpUN64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Abs64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrt64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Neg64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip64Fx2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Add64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sub64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Mul64F0x2, UNDEF_UNKNOWN), },
@ -629,9 +626,7 @@ static irop_t irops[] = {
{ DEFOP(Iop_CmpLT64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpLE64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_CmpUN64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrt64F0x2, UNDEF_UNKNOWN), },
{ DEFOP(Iop_V128to64, UNDEF_UNKNOWN), },
{ DEFOP(Iop_V128HIto64, UNDEF_UNKNOWN), },
{ DEFOP(Iop_64HLtoV128, UNDEF_UNKNOWN), },
@ -943,8 +938,8 @@ static irop_t irops[] = {
{ DEFOP(Iop_Perm8x16, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Perm32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_GetMSBs8x16, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Rsqrte32x4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32Ux4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32Ux4, UNDEF_UNKNOWN), },
/* ------------------ 256-bit SIMD Integer. ------------------ */
{ DEFOP(Iop_V256to64_0, UNDEF_UNKNOWN), },
{ DEFOP(Iop_V256to64_1, UNDEF_UNKNOWN), },
@ -1025,8 +1020,8 @@ static irop_t irops[] = {
{ DEFOP(Iop_Div32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Sqrt64Fx4, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrt32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Recip32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RSqrtEst32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_RecipEst32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Max32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Min32Fx8, UNDEF_UNKNOWN), },
{ DEFOP(Iop_Max64Fx4, UNDEF_UNKNOWN), },

View File

@ -309,8 +309,8 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
case Iop_Sal8x8: case Iop_Sal16x4: case Iop_Sal32x2: case Iop_Sal64x1:
case Iop_QShl8x8: case Iop_QShl16x4: case Iop_QShl32x2: case Iop_QShl64x1:
case Iop_QSal8x8: case Iop_QSal16x4: case Iop_QSal32x2: case Iop_QSal64x1:
case Iop_Recps32Fx2:
case Iop_Rsqrts32Fx2:
case Iop_RecipStep32Fx2:
case Iop_RSqrtStep32Fx2:
BINARY(Ity_I64,Ity_I64, Ity_I64);
case Iop_ShlN32x2: case Iop_ShlN16x4: case Iop_ShlN8x8:
@ -354,10 +354,10 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
case Iop_Reverse8sIn16_x4:
case Iop_FtoI32Sx2_RZ: case Iop_FtoI32Ux2_RZ:
case Iop_I32StoFx2: case Iop_I32UtoFx2:
case Iop_Recip32x2: case Iop_Recip32Fx2:
case Iop_RecipEst32Ux2: case Iop_RecipEst32Fx2:
case Iop_Abs32Fx2:
case Iop_Rsqrte32Fx2:
case Iop_Rsqrte32x2:
case Iop_RSqrtEst32Fx2:
case Iop_RSqrtEst32Ux2:
case Iop_Neg32Fx2:
case Iop_Abs8x8: case Iop_Abs16x4: case Iop_Abs32x2:
UNARY(Ity_I64, Ity_I64);
@ -549,7 +549,7 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
case Iop_MAddF64r32: case Iop_MSubF64r32:
QUATERNARY(ity_RMode,Ity_F64,Ity_F64,Ity_F64, Ity_F64);
case Iop_Est5FRSqrt:
case Iop_RSqrtEst5GoodF64:
case Iop_RoundF64toF64_NEAREST: case Iop_RoundF64toF64_NegINF:
case Iop_RoundF64toF64_PosINF: case Iop_RoundF64toF64_ZERO:
UNARY(Ity_F64, Ity_F64);
@ -569,8 +569,8 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
case Iop_RoundF32x4_RN:
case Iop_RoundF32x4_RZ:
case Iop_Abs32Fx4:
case Iop_Rsqrte32Fx4:
case Iop_Rsqrte32x4:
case Iop_RSqrtEst32Fx4:
case Iop_RSqrtEst32Ux4:
UNARY(Ity_V128, Ity_V128);
case Iop_64HLtoV128:
@ -693,8 +693,8 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
case Iop_InterleaveOddLanes16x8: case Iop_InterleaveEvenLanes16x8:
case Iop_InterleaveOddLanes32x4: case Iop_InterleaveEvenLanes32x4:
case Iop_Perm8x16: case Iop_Perm32x4:
case Iop_Recps32Fx4:
case Iop_Rsqrts32Fx4:
case Iop_RecipStep32Fx4:
case Iop_RSqrtStep32Fx4:
BINARY(Ity_V128,Ity_V128, Ity_V128);
case Iop_PolynomialMull8x8:
@ -704,11 +704,9 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
BINARY(Ity_I64, Ity_I64, Ity_V128);
case Iop_NotV128:
case Iop_Recip32Fx4: case Iop_Recip32F0x4:
case Iop_Recip32x4:
case Iop_Recip64Fx2: case Iop_Recip64F0x2:
case Iop_RSqrt32Fx4: case Iop_RSqrt32F0x4:
case Iop_RSqrt64Fx2: case Iop_RSqrt64F0x2:
case Iop_RecipEst32Fx4: case Iop_RecipEst32F0x4:
case Iop_RecipEst32Ux4:
case Iop_RSqrtEst32F0x4:
case Iop_Sqrt32Fx4: case Iop_Sqrt32F0x4:
case Iop_Sqrt64Fx2: case Iop_Sqrt64F0x2:
case Iop_CmpNEZ8x16: case Iop_CmpNEZ16x8:
@ -1032,10 +1030,10 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
BINARY(Ity_V128,Ity_V128, Ity_V256);
case Iop_NotV256:
case Iop_RSqrt32Fx8:
case Iop_RSqrtEst32Fx8:
case Iop_Sqrt32Fx8:
case Iop_Sqrt64Fx4:
case Iop_Recip32Fx8:
case Iop_RecipEst32Fx8:
case Iop_CmpNEZ64x4: case Iop_CmpNEZ32x8:
UNARY(Ity_V256, Ity_V256);