diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2011-03-16 20:04:40 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2011-03-16 13:04:40 -0700 |
commit | 585e9d9de3a60692b1d3b0e91dac9f9ec298e142 (patch) | |
tree | b331ef40551a88394940d5e845e863991285c404 /gcc | |
parent | 0136dc743ab537adaedffe94934c73f05e9d0204 (diff) | |
download | gcc-585e9d9de3a60692b1d3b0e91dac9f9ec298e142.zip gcc-585e9d9de3a60692b1d3b0e91dac9f9ec298e142.tar.gz gcc-585e9d9de3a60692b1d3b0e91dac9f9ec298e142.tar.bz2 |
Check TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 16 |
2 files changed, 14 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faf65fc..10a1548 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1a3c97f..a25ff7e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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) |