comparison gcc/config/arm/iwmmxt.md @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents a06113de4d67
children 04ced10e8804
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
1 ;; ??? This file needs auditing for thumb2 1 ;; ??? This file needs auditing for thumb2
2 ;; Patterns for the Intel Wireless MMX technology architecture. 2 ;; Patterns for the Intel Wireless MMX technology architecture.
3 ;; Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. 3 ;; Copyright (C) 2003, 2004, 2005, 2007, 2008, 2010
4 ;; Free Software Foundation, Inc.
4 ;; Contributed by Red Hat. 5 ;; Contributed by Red Hat.
5 6
6 ;; This file is part of GCC. 7 ;; This file is part of GCC.
7 8
8 ;; GCC is free software; you can redistribute it and/or modify it under 9 ;; GCC is free software; you can redistribute it and/or modify it under
17 18
18 ;; You should have received a copy of the GNU General Public License 19 ;; You should have received a copy of the GNU General Public License
19 ;; along with GCC; see the file COPYING3. If not see 20 ;; along with GCC; see the file COPYING3. If not see
20 ;; <http://www.gnu.org/licenses/>. 21 ;; <http://www.gnu.org/licenses/>.
21 22
22 ;; Integer element sizes implemented by IWMMXT.
23 (define_mode_iterator VMMX [V2SI V4HI V8QI])
24
25 ;; Integer element sizes for shifts.
26 (define_mode_iterator VSHFT [V4HI V2SI DI])
27
28 ;; Determine element size suffix from vector mode.
29 (define_mode_attr MMX_char [(V8QI "b") (V4HI "h") (V2SI "w") (DI "d")])
30 23
31 (define_insn "iwmmxt_iordi3" 24 (define_insn "iwmmxt_iordi3"
32 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") 25 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r")
33 (ior:DI (match_operand:DI 1 "register_operand" "%y,0,r") 26 (ior:DI (match_operand:DI 1 "register_operand" "%y,0,r")
34 (match_operand:DI 2 "register_operand" "y,r,r")))] 27 (match_operand:DI 2 "register_operand" "y,r,r")))]
556 549
557 ;; Mask-generating comparisons 550 ;; Mask-generating comparisons
558 ;; 551 ;;
559 ;; Note - you cannot use patterns like these here: 552 ;; Note - you cannot use patterns like these here:
560 ;; 553 ;;
561 ;; (set:<vector> (match:<vector>) (<comparator>:<vector> (match:<vector>) (match:<vector>))) 554 ;; (set (match:<vector>) (<comparator>:<vector> (match:<vector>) (match:<vector>)))
562 ;; 555 ;;
563 ;; Because GCC will assume that the truth value (1 or 0) is installed 556 ;; Because GCC will assume that the truth value (1 or 0) is installed
564 ;; into the entire destination vector, (with the '1' going into the least 557 ;; into the entire destination vector, (with the '1' going into the least
565 ;; significant element of the vector). This is not how these instructions 558 ;; significant element of the vector). This is not how these instructions
566 ;; behave. 559 ;; behave.