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

Reply via email to