Author: mberg Date: 2011-07-01 12:52:19 -0400 (Fri, 01 Jul 2011) New Revision: 3669
Modified: trunk/osprey/be/cg/oputil.cxx trunk/osprey/be/cg/x8664/cgemit_targ.cxx trunk/osprey/be/cg/x8664/expand.cxx Log: 2nd part of checkin containing cvt updates, translation table updates CR by Jian-Xin Modified: trunk/osprey/be/cg/oputil.cxx =================================================================== --- trunk/osprey/be/cg/oputil.cxx 2011-07-01 16:46:18 UTC (rev 3668) +++ trunk/osprey/be/cg/oputil.cxx 2011-07-01 16:52:19 UTC (rev 3669) @@ -1885,12 +1885,6 @@ {TOP_cmpeq128v8, TOP_vcmpeq128v8}, {TOP_cmpeq128v16, TOP_vcmpeq128v16}, {TOP_cmpeq128v32, TOP_vcmpeq128v32}, - {TOP_pcmpeqb, TOP_vcmpeq128v8}, - {TOP_pcmpeqw, TOP_vcmpeq128v16}, - {TOP_pcmpeqd, TOP_vcmpeq128v32}, - {TOP_pcmpgtb, TOP_vcmpgt128v8}, - {TOP_pcmpgtw, TOP_vcmpgt128v16}, - {TOP_pcmpgtd, TOP_vcmpgt128v32}, {TOP_frcp128v32, TOP_vfrcp128v32}, {TOP_fsqrt128v32, TOP_vfsqrt128v32}, {TOP_frsqrt128v32, TOP_vfrsqrt128v32}, @@ -2128,41 +2122,48 @@ {TOP_sqrtsd, TOP_vfsqrtsd}, {TOP_andnps, TOP_vfandn128v32}, {TOP_andnpd, TOP_vfandn128v64}, - {TOP_cmpss, TOP_vfcmpss}, - {TOP_cmpsd, TOP_vfcmpsd}, - {TOP_cmpps, TOP_vfcmp128v32}, - {TOP_cmppd, TOP_vfcmp128v64}, - {TOP_cmpeqps, TOP_vfcmp128v32}, - {TOP_cmpltps, TOP_vfcmp128v32}, - {TOP_cmpleps, TOP_vfcmp128v32}, - {TOP_cmpunordps, TOP_vfcmp128v32}, - {TOP_cmpneqps, TOP_vfcmp128v32}, - {TOP_cmpnltps, TOP_vfcmp128v32}, - {TOP_cmpnleps, TOP_vfcmp128v32}, - {TOP_cmpordps, TOP_vfcmp128v32}, - {TOP_cmpeqss, TOP_vfcmpss}, - {TOP_cmpltss, TOP_vfcmpss}, - {TOP_cmpless, TOP_vfcmpss}, - {TOP_cmpunordss, TOP_vfcmpss}, - {TOP_cmpneqss, TOP_vfcmpss}, - {TOP_cmpnltss, TOP_vfcmpss}, - {TOP_cmpnless, TOP_vfcmpss}, - {TOP_cmpordss, TOP_vfcmpss}, + {TOP_cmpss, TOP_vcmpss}, + {TOP_cmpsd, TOP_vcmpsd}, + {TOP_cmpps, TOP_vcmpps}, + {TOP_cmppd, TOP_vcmppd}, + {TOP_cmpeqps, TOP_vcmpeqps}, + {TOP_cmpltps, TOP_vcmpltps}, + {TOP_cmpleps, TOP_vcmpleps}, + {TOP_cmpunordps, TOP_vcmpunordps}, + {TOP_cmpneqps, TOP_vcmpneqps}, + {TOP_cmpnltps, TOP_vcmpnltps}, + {TOP_cmpnleps, TOP_vcmpnleps}, + {TOP_cmpordps, TOP_vcmpordps}, + {TOP_cmpeqss, TOP_vcmpeqss}, + {TOP_cmpltss, TOP_vcmpltss}, + {TOP_cmpless, TOP_vcmpless}, + {TOP_cmpunordss, TOP_vcmpunordss}, + {TOP_cmpneqss, TOP_vcmpneqss}, + {TOP_cmpnltss, TOP_vcmpnltss }, + {TOP_cmpnless, TOP_vcmpnless}, + {TOP_cmpordss, TOP_vcmpordss}, + {TOP_cmpeqsd, TOP_vcmpeqsd}, + {TOP_cmpltsd, TOP_vcmpltsd}, + {TOP_cmplesd, TOP_vcmplesd}, + {TOP_cmpunordsd, TOP_vcmpunordsd}, + {TOP_cmpneqsd, TOP_vcmpneqsd}, + {TOP_cmpnltsd, TOP_vcmpnltsd }, + {TOP_cmpnlesd, TOP_vcmpnlesd}, + {TOP_cmpordsd, TOP_vcmpordsd}, {TOP_unpckhpd, TOP_vunpckh128v64}, {TOP_unpckhps, TOP_vunpckh128v32}, {TOP_unpcklpd, TOP_vunpckl128v64}, {TOP_unpcklps, TOP_vunpckl128v32}, - {TOP_punpcklbw, TOP_vpunpckl64v8}, - {TOP_punpcklwd, TOP_vpunpckl64v16}, - {TOP_punpckldq, TOP_vpunpckl64v32}, - {TOP_punpckhbw, TOP_vpunpckh64v8}, - {TOP_punpckhwd, TOP_vpunpckh64v16}, - {TOP_punpckhdq, TOP_vpunpckh64v32}, - {TOP_packsswb, TOP_vpacksswb}, - {TOP_packssdw, TOP_vpackssdw}, - {TOP_packuswb, TOP_vpackuswb}, + {TOP_punpcklbw128, TOP_vpunpckl64v8}, + {TOP_punpcklwd128, TOP_vpunpckl64v16}, + {TOP_punpckldq128, TOP_vpunpckl64v32}, + {TOP_punpckhbw128, TOP_vpunpckh64v8}, + {TOP_punpckhwd128, TOP_vpunpckh64v16}, + {TOP_punpckhdq128, TOP_vpunpckh64v32}, + {TOP_packsswb128, TOP_vpacksswb}, + {TOP_packssdw128, TOP_vpackssdw}, + {TOP_packuswb128, TOP_vpackuswb}, {TOP_pshufd, TOP_vpshuf128v32}, - // TOP_vpshufw and vpshufd not consistant in the AVX names {TOP_pshufw, TOP_vpshufw64v16}, {TOP_pshuflw, TOP_vpshuflw}, {TOP_pshufhw, TOP_vpshufhw}, @@ -2187,12 +2188,11 @@ {TOP_xzero128v32, TOP_vxzero128v32}, {TOP_xzero128v64, TOP_vxzero128v64}, {TOP_subus128v16, TOP_vsubus128v16}, - {TOP_pavgb, TOP_vpavgb}, - {TOP_pavgw, TOP_vpavgw}, - {TOP_psadbw, TOP_vpsadbw}, + {TOP_pavgb128, TOP_vpavgb}, + {TOP_pavgw128, TOP_vpavgw}, + {TOP_psadbw128, TOP_vpsadbw}, {TOP_storenti128, TOP_vstorenti128}, {TOP_storelpd, TOP_vstorelpd}, - {TOP_pshufw64v16, TOP_vpshufw64v16}, {TOP_pmovmskb128, TOP_vpmovmskb128}, // SSE 4.1 {TOP_mpsadbw, TOP_vmpsadbw}, Modified: trunk/osprey/be/cg/x8664/cgemit_targ.cxx =================================================================== --- trunk/osprey/be/cg/x8664/cgemit_targ.cxx 2011-07-01 16:46:18 UTC (rev 3668) +++ trunk/osprey/be/cg/x8664/cgemit_targ.cxx 2011-07-01 16:52:19 UTC (rev 3669) @@ -1676,14 +1676,14 @@ OP_Name[TOP_vfcmpx128v32] = "vcmpps"; OP_Name[TOP_vfcmpxx128v32] = "vcmpps"; OP_Name[TOP_vfcmpxxx128v32] = "vcmpps"; - OP_Name[TOP_vfcmpsd] = "vcmpsd"; - OP_Name[TOP_vfcmpxsd] = "vcmpsd"; - OP_Name[TOP_vfcmpxxsd] = "vcmpsd"; - OP_Name[TOP_vfcmpxxxsd] = "vcmpsd"; - OP_Name[TOP_vfcmpss] = "vcmpss"; - OP_Name[TOP_vfcmpxss] = "vcmpss"; - OP_Name[TOP_vfcmpxxss] = "vcmpss"; - OP_Name[TOP_vfcmpxxxss] = "vcmpss"; + OP_Name[TOP_vcmpsd] = "vcmpsd"; + OP_Name[TOP_vcmpxsd] = "vcmpsd"; + OP_Name[TOP_vcmpxxsd] = "vcmpsd"; + OP_Name[TOP_vcmpxxxsd] = "vcmpsd"; + OP_Name[TOP_vcmpss] = "vcmpss"; + OP_Name[TOP_vcmpxss] = "vcmpss"; + OP_Name[TOP_vcmpxxss] = "vcmpss"; + OP_Name[TOP_vcmpxxxss] = "vcmpss"; OP_Name[TOP_vcomisd] = "vcomisd"; OP_Name[TOP_vcomixsd] = "vcomisd"; OP_Name[TOP_vcomixxsd] = "vcomisd"; @@ -2145,14 +2145,14 @@ OP_Name[TOP_vandnx128v64] = "vpandn"; OP_Name[TOP_vandnxx128v64] = "vpandn"; OP_Name[TOP_vandnxxx128v64] = "vpandn"; - OP_Name[TOP_vpavgb] = "pavgb"; - OP_Name[TOP_vpavgbx] = "pavgb"; - OP_Name[TOP_vpavgbxx] = "pavgb"; - OP_Name[TOP_vpavgbxxx] = "pavgb"; - OP_Name[TOP_vpavgw] = "pavgw"; - OP_Name[TOP_vpavgwx] = "pavgw"; - OP_Name[TOP_vpavgwxx] = "pavgw"; - OP_Name[TOP_vpavgwxxx] = "pavgw"; + OP_Name[TOP_vpavgb] = "vpavgb"; + OP_Name[TOP_vpavgbx] = "vpavgb"; + OP_Name[TOP_vpavgbxx] = "vpavgb"; + OP_Name[TOP_vpavgbxxx] = "vpavgb"; + OP_Name[TOP_vpavgw] = "vpavgw"; + OP_Name[TOP_vpavgwx] = "vpavgw"; + OP_Name[TOP_vpavgwxx] = "vpavgw"; + OP_Name[TOP_vpavgwxxx] = "vpavgw"; OP_Name[TOP_vblendv128v8] = "vpblendvb"; OP_Name[TOP_vblendvx128v8] = "vpblendvb"; OP_Name[TOP_vblendvxx128v8] = "vpblendvb"; Modified: trunk/osprey/be/cg/x8664/expand.cxx =================================================================== --- trunk/osprey/be/cg/x8664/expand.cxx 2011-07-01 16:46:18 UTC (rev 3668) +++ trunk/osprey/be/cg/x8664/expand.cxx 2011-07-01 16:52:19 UTC (rev 3669) @@ -8196,7 +8196,13 @@ Build_OP( TOP_movx2g, tmp0, op0, ops ); op0 = tmp0; } - Build_OP( TOP_cvtsi2ss, result, op0, ops ); + if (Is_Target_Orochi() && Is_Target_AVX()) { + TN *xzero = Build_TN_Like(result); + Build_OP( TOP_xzero128v32, xzero, ops ); + Build_OP( TOP_cvtsi2ss, result, xzero, op0, ops ); + } else { + Build_OP( TOP_cvtsi2ss, result, op0, ops ); + } break; case INTRN_CVTSI642SS: if (TN_register_class(op0) != ISA_REGISTER_CLASS_integer) { @@ -8204,7 +8210,13 @@ Build_OP( TOP_movx2g64, tmp0, op0, ops ); op0 = tmp0; } - Build_OP( TOP_cvtsi2ssq, result, op0, ops ); + if (Is_Target_Orochi() && Is_Target_AVX()) { + TN *xzero = Build_TN_Like(result); + Build_OP( TOP_xzero128v32, xzero, ops ); + Build_OP( TOP_cvtsi2ssq, result, xzero, op0, ops ); + } else { + Build_OP( TOP_cvtsi2ssq, result, op0, ops ); + } break; case INTRN_CVTSS2SI: Build_OP( TOP_cvtss2si, result, op0, ops ); @@ -8283,10 +8295,22 @@ Build_OP( TOP_cvtps2pd, result, op0, ops ); break; case INTRN_CVTSD2SS: - Build_OP( TOP_cvtsd2ss, result, op0, ops ); + if (Is_Target_Orochi() && Is_Target_AVX()) { + TN *xzero = Build_TN_Like(result); + Build_OP( TOP_xzero128v32, xzero, ops ); + Build_OP( TOP_cvtsd2ss, result, xzero, op0, ops ); + } else { + Build_OP( TOP_cvtsd2ss, result, op0, ops ); + } break; case INTRN_CVTSS2SD: - Build_OP( TOP_cvtss2sd, result, op0, ops ); + if (Is_Target_Orochi() && Is_Target_AVX()) { + TN *xzero = Build_TN_Like(result); + Build_OP( TOP_xzero128v32, xzero, ops ); + Build_OP( TOP_cvtss2sd, result, xzero, op0, ops ); + } else { + Build_OP( TOP_cvtss2sd, result, op0, ops ); + } break; case INTRN_LOADUPS: Build_OP( TOP_ldups, result, op0, Gen_Literal_TN (0,4), ops ); @@ -8590,10 +8614,10 @@ Build_OP(TOP_vfcmp128v32, result, op0, op1, op2, ops ); break; case INTRN_CMPSD: - Build_OP(TOP_vfcmpsd, result, op0, op1, op2, ops ); + Build_OP(TOP_vcmpsd, result, op0, op1, op2, ops ); break; case INTRN_CMPSS: - Build_OP(TOP_vfcmpss, result, op0, op1, op2, ops ); + Build_OP(TOP_vcmpss, result, op0, op1, op2, ops ); break; case INTRN_CVTDQ2PD256: Build_OP(TOP_vcvtdq2pd, result, op0, ops ); ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel