OSDN Git Service

* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Nov 2011 21:27:01 +0000 (21:27 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Nov 2011 21:27:01 +0000 (21:27 +0000)
BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181116 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 33b2684..16e14dd 100644 (file)
@@ -1,8 +1,13 @@
+2011-11-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
+       BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
+
 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
 
        * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
        SWITCHABLE_TARGET can change the values during compilation.
-       (expand_atomic_fetch_op): Handle parameter change ripples for 
+       (expand_atomic_fetch_op): Handle parameter change ripples for
        get_atomic_op_for_code call.
 
 2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
@@ -19,7 +24,7 @@
        call originated from here.
        (expand_builtin_atomic_exchange): Add origination flag.
        (expand_builtin_atomic_store): Add origination flag.
-       * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean 
+       * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
        parameters to indicate implementation fall back options.
 
 2011-11-07  Georg-Johann Lay  <avr@gjlay.de>
index 4461fbb..4c2c800 100644 (file)
@@ -29268,13 +29268,17 @@ ix86_builtin_vectorized_function (tree fndecl, tree type_out,
        }
       break;
 
+    case BUILT_IN_IRINT:
     case BUILT_IN_LRINT:
+    case BUILT_IN_LLRINT:
       if (out_mode == SImode && out_n == 4
          && in_mode == DFmode && in_n == 2)
        return ix86_builtins[IX86_BUILTIN_VEC_PACK_SFIX];
       break;
 
+    case BUILT_IN_IRINTF:
     case BUILT_IN_LRINTF:
+    case BUILT_IN_LLRINTF:
       if (out_mode == SImode && in_mode == SFmode)
        {
          if (out_n == 4 && in_n == 4)
index d6a82b6..35273d9 100644 (file)
        return "mov{l}\t{%k1, %k0|%k0, %k1}";
       else if (which_alternative == 2)
        return "movabs{q}\t{%1, %0|%0, %1}";
-      else if (ix86_use_lea_for_mov(insn, operands))
+      else if (ix86_use_lea_for_mov (insn, operands))
        return "lea{q}\t{%a1, %0|%0, %a1}";
       else
        return "mov{q}\t{%1, %0|%0, %1}";
 
     default:
       gcc_assert (!flag_pic || LEGITIMATE_PIC_OPERAND_P (operands[1]));
-      if (ix86_use_lea_for_mov(insn, operands))
+      if (ix86_use_lea_for_mov (insn, operands))
        return "lea{l}\t{%a1, %0|%0, %a1}";
       else
        return "mov{l}\t{%1, %0|%0, %1}";