Check TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 16 Mar 2011 20:04:40 +0000 (20:04 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 16 Mar 2011 20:04:40 +0000 (13:04 -0700)
2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>

PR target/48154
* config/i386/i386.c (ix86_builtin_vectorized_function): Check
TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.

From-SVN: r171069

gcc/ChangeLog
gcc/config/i386/i386.c

index faf65fc..10a1548 100644 (file)
@@ -1,3 +1,9 @@
+2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/48154
+       * config/i386/i386.c (ix86_builtin_vectorized_function): Check
+       TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
+
 2011-03-16  Jeff Law  <law@redhat.com>
 
        * tree-vrp.c (identify_jump_threads): Slightly simplify type
index 1a3c97f..a25ff7e 100644 (file)
@@ -27659,7 +27659,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_FLOOR:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == DFmode && in_mode == DFmode)
@@ -27673,7 +27673,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_FLOORF:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == SFmode && in_mode == SFmode)
@@ -27687,7 +27687,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_CEIL:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == DFmode && in_mode == DFmode)
@@ -27701,7 +27701,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_CEILF:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == SFmode && in_mode == SFmode)
@@ -27715,7 +27715,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_TRUNC:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == DFmode && in_mode == DFmode)
@@ -27729,7 +27729,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_TRUNCF:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == SFmode && in_mode == SFmode)
@@ -27743,7 +27743,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_RINT:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == DFmode && in_mode == DFmode)
@@ -27757,7 +27757,7 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
 
     case BUILT_IN_RINTF:
       /* The round insn does not trap on denormals.  */
-      if (flag_trapping_math)
+      if (flag_trapping_math || !TARGET_ROUND)
        break;
 
       if (out_mode == SFmode && in_mode == SFmode)