Patchwork [i386] : Simplify if conditions in i386.md

login
register
mail settings
Submitter Uros Bizjak
Date May 5, 2011, 11:45 a.m.
Message ID <BANLkTimk7P5SDGRzWR99yVVZA17gUyqMsw@mail.gmail.com>
Download mbox | patch
Permalink /patch/94249/
State New
Headers show

Comments

Uros Bizjak - May 5, 2011, 11:45 a.m.
Hello!

No functional change.

2011-05-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
	conditions.
	(*movdf_internal): Ditto.
	(*movdf_internal_nointeger): Ditto.
	(*movsf_internal): Ditto.

Tested on x86_64-pc-linux-gnu {,-m32} AVX target, committed to mainline SVN.

Uros.

Patch

Index: i386.md
===================================================================
--- i386.md	(revision 173395)
+++ i386.md	(working copy)
@@ -1893,15 +1893,15 @@ 
 	{
 	  if (get_attr_mode (insn) == MODE_V4SF)
 	    return "%vmovups\t{%1, %0|%0, %1}";
-	 else
-	   return "%vmovdqu\t{%1, %0|%0, %1}";
+	  else
+	    return "%vmovdqu\t{%1, %0|%0, %1}";
 	}
       else
 	{
 	  if (get_attr_mode (insn) == MODE_V4SF)
 	    return "%vmovaps\t{%1, %0|%0, %1}";
-	 else
-	   return "%vmovdqa\t{%1, %0|%0, %1}";
+	  else
+	    return "%vmovdqa\t{%1, %0|%0, %1}";
 	}
     default:
       gcc_unreachable ();
@@ -1956,15 +1956,15 @@ 
 	{
 	  if (get_attr_mode (insn) == MODE_V4SF)
 	    return "%vmovups\t{%1, %0|%0, %1}";
-	 else
-	   return "%vmovdqu\t{%1, %0|%0, %1}";
+	  else
+	    return "%vmovdqu\t{%1, %0|%0, %1}";
 	}
       else
 	{
 	  if (get_attr_mode (insn) == MODE_V4SF)
 	    return "%vmovaps\t{%1, %0|%0, %1}";
-	 else
-	   return "%vmovdqa\t{%1, %0|%0, %1}";
+	  else
+	    return "%vmovdqa\t{%1, %0|%0, %1}";
 	}
     default:
       gcc_unreachable ();
@@ -2004,13 +2004,15 @@ 
       /* Handle broken assemblers that require movd instead of movq.  */
       if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
 	return "%vmovd\t{%1, %0|%0, %1}";
-      return "%vmovq\t{%1, %0|%0, %1}";
+      else
+	return "%vmovq\t{%1, %0|%0, %1}";
 
     case TYPE_MMXMOV:
       /* Handle broken assemblers that require movd instead of movq.  */
       if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
 	return "movd\t{%1, %0|%0, %1}";
-      return "movq\t{%1, %0|%0, %1}";
+      else
+	return "movq\t{%1, %0|%0, %1}";
 
     case TYPE_SSELOG1:
       return "%vpxor\t%0, %d0";
@@ -3001,15 +3003,10 @@ 
 	case MODE_DI:
 	  return "%vmovq\t{%1, %0|%0, %1}";
 	case MODE_DF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]) && REG_P (operands[1]))
-		return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovsd\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1]))
+	    return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movsd\t{%1, %0|%0, %1}";
+	    return "%vmovsd\t{%1, %0|%0, %1}";
 	case MODE_V1DF:
 	  return "%vmovlpd\t{%1, %d0|%d0, %1}";
 	case MODE_V2SF:
@@ -3164,35 +3161,20 @@ 
 	case MODE_DI:
 	  return "%vmovq\t{%1, %0|%0, %1}";
 	case MODE_DF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]) && REG_P (operands[1]))
-		return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovsd\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1]))
+	    return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movsd\t{%1, %0|%0, %1}";
+	    return "%vmovsd\t{%1, %0|%0, %1}";
 	case MODE_V1DF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]))
-		return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovlpd\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]))
+	    return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movlpd\t{%1, %0|%0, %1}";
+	    return "%vmovlpd\t{%1, %0|%0, %1}";
 	case MODE_V2SF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]))
-		return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovlps\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]))
+	    return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movlps\t{%1, %0|%0, %1}";
+	    return "%vmovlps\t{%1, %0|%0, %1}";
 	default:
 	  gcc_unreachable ();
 	}
@@ -3336,35 +3318,20 @@ 
 	case MODE_DI:
 	  return "%vmovq\t{%1, %0|%0, %1}";
 	case MODE_DF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]) && REG_P (operands[1]))
-		return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovsd\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1]))
+	    return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movsd\t{%1, %0|%0, %1}";
+	    return "%vmovsd\t{%1, %0|%0, %1}";
 	case MODE_V1DF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]))
-		return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovlpd\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]))
+	    return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movlpd\t{%1, %0|%0, %1}";
+	    return "%vmovlpd\t{%1, %0|%0, %1}";
 	case MODE_V2SF:
-	  if (TARGET_AVX)
-	    {
-	      if (REG_P (operands[0]))
-		return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
-	      else
-		return "vmovlps\t{%1, %0|%0, %1}";
-	    }
+	  if (TARGET_AVX && REG_P (operands[0]))
+	    return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
 	  else
-	    return "movlps\t{%1, %0|%0, %1}";
+	    return "%vmovlps\t{%1, %0|%0, %1}";
 	default:
 	  gcc_unreachable ();
 	}
@@ -3483,15 +3450,10 @@ 
       else
 	return "%vmovss\t{%1, %d0|%d0, %1}";
     case 7:
-      if (TARGET_AVX)
-        {
-	  if (REG_P (operands[1]))
-	    return "vmovss\t{%1, %0, %0|%0, %0, %1}";
-	  else
-	    return "vmovss\t{%1, %0|%0, %1}";
-	}
+      if (TARGET_AVX && REG_P (operands[1]))
+	return "vmovss\t{%1, %0, %0|%0, %0, %1}";
       else
-	return "movss\t{%1, %0|%0, %1}";
+	return "%vmovss\t{%1, %0|%0, %1}";
     case 8:
       return "%vmovss\t{%1, %0|%0, %1}";