diff options
author | Roger Sayle <roger@eyesopen.com> | 2007-02-09 21:33:36 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2007-02-09 21:33:36 +0000 |
commit | ff848f0e0fd0fe375b1afa9475d8144f38596685 (patch) | |
tree | 419b722ac9e4be0ec1a506dc59b3a2f20e756248 /gcc | |
parent | 3db2c087824527f9065861617a48d5753c123b10 (diff) | |
download | gcc-ff848f0e0fd0fe375b1afa9475d8144f38596685.zip gcc-ff848f0e0fd0fe375b1afa9475d8144f38596685.tar.gz gcc-ff848f0e0fd0fe375b1afa9475d8144f38596685.tar.bz2 |
ia64.md (bswapdi2): New define_insn.
* config/ia64/ia64.md (bswapdi2): New define_insn.
* gcc.target/ia64/builtin_bswap-1.c: New test case.
From-SVN: r121776
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.md | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/ia64/builtin-bswap-1.c | 9 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 52ed599..af251f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-02-09 Roger Sayle <roger@eyesopen.com> + + * config/ia64/ia64.md (bswapdi2): New define_insn. + 2007-02-09 Richard Henderson <rth@redhat.com> * config/i386/constraints.md (Ym): New constraint. diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index e573c55..d609007 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -1,5 +1,5 @@ ;; IA-64 Machine description template -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. ;; Contributed by James E. Wilson <wilson@cygnus.com> and ;; David Mosberger <davidm@hpl.hp.com>. @@ -2490,6 +2490,13 @@ "popcnt %0 = %1" [(set_attr "itanium_class" "mmmul")]) +(define_insn "bswapdi2" + [(set (match_operand:DI 0 "gr_register_operand" "=r") + (bswap:DI (match_operand:DI 1 "gr_register_operand" "r")))] + "" + "mux1 %0 = %1, @rev" + [(set_attr "itanium_class" "mmshf")]) + (define_insn "*getf_exp_xf" [(set (match_operand:DI 0 "gr_register_operand" "=r") (unspec:DI [(match_operand:XF 1 "fr_register_operand" "f")] diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1570d3e..a485412 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-02-09 Roger Sayle <roger@eyesopen.com> + + * gcc.target/ia64/builtin_bswap-1.c: New test case. + 2007-02-09 Francois-Xavier Coudert <coudert@clipper.ens.fr> PR fortran/30720 diff --git a/gcc/testsuite/gcc.target/ia64/builtin-bswap-1.c b/gcc/testsuite/gcc.target/ia64/builtin-bswap-1.c new file mode 100644 index 0000000..381e3fe --- /dev/null +++ b/gcc/testsuite/gcc.target/ia64/builtin-bswap-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler "mux1" } } */ + +long foo (long x) +{ + return __builtin_bswap64 (x); +} + |