aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2016-10-21 00:57:11 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-10-21 00:57:11 +0200
commita7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c (patch)
tree67d874c908f67c48c4f5abfbea0b94e0aad06061 /gcc
parentf3ecd50fd9ad38b211d12def589d47370465226b (diff)
downloadgcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.zip
gcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.tar.gz
gcc-a7cfe836779ddbabf98f23e47a61a1e4ed1cdb2c.tar.bz2
i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ and IX86_BUILTIN_HUGE_VALQ here ...
* config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ and IX86_BUILTIN_HUGE_VALQ here ... (ix86_expand_builtin): ... not here. From-SVN: r241387
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c27
2 files changed, 15 insertions, 18 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f98e079..ae08bc6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
+ and IX86_BUILTIN_HUGE_VALQ here ...
+ (ix86_expand_builtin): ... not here.
+
2016-10-20 Jakub Jelinek <jakub@redhat.com>
* doc/gty.texi (for_user): Use @item next to @findex.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3e6f8fd..618d974 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -33323,6 +33323,15 @@ ix86_fold_builtin (tree fndecl, int n_args,
return NULL_TREE;
}
+ case IX86_BUILTIN_INFQ:
+ case IX86_BUILTIN_HUGE_VALQ:
+ {
+ tree type = TREE_TYPE (TREE_TYPE (fndecl));
+ REAL_VALUE_TYPE inf;
+ real_inf (&inf);
+ return build_real (type, inf);
+ }
+
default:
break;
}
@@ -36684,24 +36693,6 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
case IX86_BUILTIN_VEC_SET_V16QI:
return ix86_expand_vec_set_builtin (exp);
- case IX86_BUILTIN_INFQ:
- case IX86_BUILTIN_HUGE_VALQ:
- {
- REAL_VALUE_TYPE inf;
- rtx tmp;
-
- real_inf (&inf);
- tmp = const_double_from_real_value (inf, mode);
-
- tmp = validize_mem (force_const_mem (mode, tmp));
-
- if (target == 0)
- target = gen_reg_rtx (mode);
-
- emit_move_insn (target, tmp);
- return target;
- }
-
case IX86_BUILTIN_NANQ:
case IX86_BUILTIN_NANSQ:
return expand_call (exp, target, ignore);