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
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel