summaryrefslogtreecommitdiff
path: root/gcc/config/arm/iwmmxt.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/arm/iwmmxt.md')
-rw-r--r--gcc/config/arm/iwmmxt.md249
1 files changed, 123 insertions, 126 deletions
diff --git a/gcc/config/arm/iwmmxt.md b/gcc/config/arm/iwmmxt.md
index ac4867b0d29..f1f0a5c5150 100644
--- a/gcc/config/arm/iwmmxt.md
+++ b/gcc/config/arm/iwmmxt.md
@@ -33,7 +33,7 @@
"TARGET_REALLY_IWMMXT"
"tbcstb%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tbcst")]
+ (set_attr "type" "wmmx_tbcst")]
)
(define_insn "tbcstv4hi"
@@ -42,7 +42,7 @@
"TARGET_REALLY_IWMMXT"
"tbcsth%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tbcst")]
+ (set_attr "type" "wmmx_tbcst")]
)
(define_insn "tbcstv2si"
@@ -51,7 +51,7 @@
"TARGET_REALLY_IWMMXT"
"tbcstw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tbcst")]
+ (set_attr "type" "wmmx_tbcst")]
)
(define_insn "iwmmxt_iordi3"
@@ -65,7 +65,7 @@
#"
[(set_attr "predicable" "yes")
(set_attr "length" "4,8,8")
- (set_attr "wtype" "wor,none,none")]
+ (set_attr "type" "wmmx_wor,*,*")]
)
(define_insn "iwmmxt_xordi3"
@@ -79,7 +79,7 @@
#"
[(set_attr "predicable" "yes")
(set_attr "length" "4,8,8")
- (set_attr "wtype" "wxor,none,none")]
+ (set_attr "type" "wmmx_wxor,*,*")]
)
(define_insn "iwmmxt_anddi3"
@@ -93,7 +93,7 @@
#"
[(set_attr "predicable" "yes")
(set_attr "length" "4,8,8")
- (set_attr "wtype" "wand,none,none")]
+ (set_attr "type" "wmmx_wand,*,*")]
)
(define_insn "iwmmxt_nanddi3"
@@ -103,7 +103,7 @@
"TARGET_REALLY_IWMMXT"
"wandn%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wandn")]
+ (set_attr "type" "wmmx_wandn")]
)
(define_insn "*iwmmxt_arm_movdi"
@@ -155,10 +155,9 @@
(const_int 8)
(const_int 4))]
(const_int 4)))
- (set_attr "type" "*,*,*,load2,store2,*,*,*,*,*,r_2_f,f_2_r,ffarithd,f_loadd,f_stored")
+ (set_attr "type" "*,*,*,load2,store2,wmmx_wmov,wmmx_tmcrr,wmmx_tmrrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,ffarithd,f_loadd,f_stored")
(set_attr "arm_pool_range" "*,*,*,1020,*,*,*,*,*,*,*,*,*,1020,*")
- (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*")
- (set_attr "wtype" "*,*,*,*,*,wmov,tmcrr,tmrrc,wldr,wstr,*,*,*,*,*")]
+ (set_attr "arm_neg_pool_range" "*,*,*,1008,*,*,*,*,*,*,*,*,*,1008,*")]
)
(define_insn "*iwmmxt_movsi_insn"
@@ -188,7 +187,7 @@
default:
gcc_unreachable ();
}"
- [(set_attr "type" "*,*,*,*,load1,store1,*,*,*,*,r_2_f,f_2_r,fcpys,f_loads,f_stores")
+ [(set_attr "type" "*,*,*,*,load1,store1,wmmx_tmcr,wmmx_tmrc,wmmx_wldr,wmmx_wstr,r_2_f,f_2_r,fcpys,f_loads,f_stores")
(set_attr "length" "*,*,*,*,*, *,*,*, 16, *,*,*,*,*,*")
(set_attr "pool_range" "*,*,*,*,4096, *,*,*,1024, *,*,*,*,1020,*")
(set_attr "neg_pool_range" "*,*,*,*,4084, *,*,*, *, 1012,*,*,*,1008,*")
@@ -200,8 +199,7 @@
;; Also - we have to pretend that these insns clobber the condition code
;; bits as otherwise arm_final_prescan_insn() will try to conditionalize
;; them.
- (set_attr "conds" "clob")
- (set_attr "wtype" "*,*,*,*,*,*,tmcr,tmrc,wldr,wstr,*,*,*,*,*")]
+ (set_attr "conds" "clob")]
)
;; Because iwmmxt_movsi_insn is not predicable, we provide the
@@ -249,10 +247,9 @@
}"
[(set_attr "predicable" "yes")
(set_attr "length" "4, 4, 4,4,4,8, 8,8")
- (set_attr "type" "*,*,*,*,*,*,load1,store1")
+ (set_attr "type" "wmmx_wmov,wmmx_wstr,wmmx_wldr,wmmx_tmrrc,wmmx_tmcrr,*,load1,store1")
(set_attr "pool_range" "*, *, 256,*,*,*, 256,*")
- (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")
- (set_attr "wtype" "wmov,wstr,wldr,tmrrc,tmcrr,*,*,*")]
+ (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")]
)
(define_expand "iwmmxt_setwcgr0"
@@ -318,7 +315,7 @@
"TARGET_REALLY_IWMMXT"
"wand\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wand")]
+ (set_attr "type" "wmmx_wand")]
)
(define_insn "*ior<mode>3_iwmmxt"
@@ -328,7 +325,7 @@
"TARGET_REALLY_IWMMXT"
"wor\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wor")]
+ (set_attr "type" "wmmx_wor")]
)
(define_insn "*xor<mode>3_iwmmxt"
@@ -338,7 +335,7 @@
"TARGET_REALLY_IWMMXT"
"wxor\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wxor")]
+ (set_attr "type" "wmmx_wxor")]
)
@@ -351,7 +348,7 @@
"TARGET_REALLY_IWMMXT"
"wadd<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "ssaddv8qi3"
@@ -361,7 +358,7 @@
"TARGET_REALLY_IWMMXT"
"waddbss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "ssaddv4hi3"
@@ -371,7 +368,7 @@
"TARGET_REALLY_IWMMXT"
"waddhss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "ssaddv2si3"
@@ -381,7 +378,7 @@
"TARGET_REALLY_IWMMXT"
"waddwss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "usaddv8qi3"
@@ -391,7 +388,7 @@
"TARGET_REALLY_IWMMXT"
"waddbus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "usaddv4hi3"
@@ -401,7 +398,7 @@
"TARGET_REALLY_IWMMXT"
"waddhus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "usaddv2si3"
@@ -411,7 +408,7 @@
"TARGET_REALLY_IWMMXT"
"waddwus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wadd")]
+ (set_attr "type" "wmmx_wadd")]
)
(define_insn "*sub<mode>3_iwmmxt"
@@ -421,7 +418,7 @@
"TARGET_REALLY_IWMMXT"
"wsub<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "sssubv8qi3"
@@ -431,7 +428,7 @@
"TARGET_REALLY_IWMMXT"
"wsubbss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "sssubv4hi3"
@@ -441,7 +438,7 @@
"TARGET_REALLY_IWMMXT"
"wsubhss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "sssubv2si3"
@@ -451,7 +448,7 @@
"TARGET_REALLY_IWMMXT"
"wsubwss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "ussubv8qi3"
@@ -461,7 +458,7 @@
"TARGET_REALLY_IWMMXT"
"wsubbus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "ussubv4hi3"
@@ -471,7 +468,7 @@
"TARGET_REALLY_IWMMXT"
"wsubhus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "ussubv2si3"
@@ -481,7 +478,7 @@
"TARGET_REALLY_IWMMXT"
"wsubwus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsub")]
+ (set_attr "type" "wmmx_wsub")]
)
(define_insn "*mulv4hi3_iwmmxt"
@@ -491,7 +488,7 @@
"TARGET_REALLY_IWMMXT"
"wmulul%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmul")]
+ (set_attr "type" "wmmx_wmul")]
)
(define_insn "smulv4hi3_highpart"
@@ -504,7 +501,7 @@
"TARGET_REALLY_IWMMXT"
"wmulsm%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmul")]
+ (set_attr "type" "wmmx_wmul")]
)
(define_insn "umulv4hi3_highpart"
@@ -517,7 +514,7 @@
"TARGET_REALLY_IWMMXT"
"wmulum%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmul")]
+ (set_attr "type" "wmmx_wmul")]
)
(define_insn "iwmmxt_wmacs"
@@ -528,7 +525,7 @@
"TARGET_REALLY_IWMMXT"
"wmacs%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmac")]
+ (set_attr "type" "wmmx_wmac")]
)
(define_insn "iwmmxt_wmacsz"
@@ -538,7 +535,7 @@
"TARGET_REALLY_IWMMXT"
"wmacsz%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmac")]
+ (set_attr "type" "wmmx_wmac")]
)
(define_insn "iwmmxt_wmacu"
@@ -549,7 +546,7 @@
"TARGET_REALLY_IWMMXT"
"wmacu%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmac")]
+ (set_attr "type" "wmmx_wmac")]
)
(define_insn "iwmmxt_wmacuz"
@@ -559,7 +556,7 @@
"TARGET_REALLY_IWMMXT"
"wmacuz%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmac")]
+ (set_attr "type" "wmmx_wmac")]
)
;; Same as xordi3, but don't show input operands so that we don't think
@@ -570,7 +567,7 @@
"TARGET_REALLY_IWMMXT"
"wxor%?\\t%0, %0, %0"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wxor")]
+ (set_attr "type" "wmmx_wxor")]
)
;; Seems like cse likes to generate these, so we have to support them.
@@ -584,7 +581,7 @@
"TARGET_REALLY_IWMMXT"
"wxor%?\\t%0, %0, %0"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wxor")]
+ (set_attr "type" "wmmx_wxor")]
)
(define_insn "iwmmxt_clrv4hi"
@@ -594,7 +591,7 @@
"TARGET_REALLY_IWMMXT"
"wxor%?\\t%0, %0, %0"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wxor")]
+ (set_attr "type" "wmmx_wxor")]
)
(define_insn "iwmmxt_clrv2si"
@@ -603,7 +600,7 @@
"TARGET_REALLY_IWMMXT"
"wxor%?\\t%0, %0, %0"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wxor")]
+ (set_attr "type" "wmmx_wxor")]
)
;; Unsigned averages/sum of absolute differences
@@ -627,7 +624,7 @@
"TARGET_REALLY_IWMMXT"
"wavg2br%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wavg2")]
+ (set_attr "type" "wmmx_wavg2")]
)
(define_insn "iwmmxt_uavgrndv4hi3"
@@ -645,7 +642,7 @@
"TARGET_REALLY_IWMMXT"
"wavg2hr%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wavg2")]
+ (set_attr "type" "wmmx_wavg2")]
)
(define_insn "iwmmxt_uavgv8qi3"
@@ -658,7 +655,7 @@
"TARGET_REALLY_IWMMXT"
"wavg2b%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wavg2")]
+ (set_attr "type" "wmmx_wavg2")]
)
(define_insn "iwmmxt_uavgv4hi3"
@@ -671,7 +668,7 @@
"TARGET_REALLY_IWMMXT"
"wavg2h%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wavg2")]
+ (set_attr "type" "wmmx_wavg2")]
)
;; Insert/extract/shuffle
@@ -690,7 +687,7 @@
}
"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tinsr")]
+ (set_attr "type" "wmmx_tinsr")]
)
(define_insn "iwmmxt_tinsrh"
@@ -707,7 +704,7 @@
}
"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tinsr")]
+ (set_attr "type" "wmmx_tinsr")]
)
(define_insn "iwmmxt_tinsrw"
@@ -724,7 +721,7 @@
}
"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tinsr")]
+ (set_attr "type" "wmmx_tinsr")]
)
(define_insn "iwmmxt_textrmub"
@@ -735,7 +732,7 @@
"TARGET_REALLY_IWMMXT"
"textrmub%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "textrm")]
+ (set_attr "type" "wmmx_textrm")]
)
(define_insn "iwmmxt_textrmsb"
@@ -746,7 +743,7 @@
"TARGET_REALLY_IWMMXT"
"textrmsb%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "textrm")]
+ (set_attr "type" "wmmx_textrm")]
)
(define_insn "iwmmxt_textrmuh"
@@ -757,7 +754,7 @@
"TARGET_REALLY_IWMMXT"
"textrmuh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "textrm")]
+ (set_attr "type" "wmmx_textrm")]
)
(define_insn "iwmmxt_textrmsh"
@@ -768,7 +765,7 @@
"TARGET_REALLY_IWMMXT"
"textrmsh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "textrm")]
+ (set_attr "type" "wmmx_textrm")]
)
;; There are signed/unsigned variants of this instruction, but they are
@@ -780,7 +777,7 @@
"TARGET_REALLY_IWMMXT"
"textrmsw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "textrm")]
+ (set_attr "type" "wmmx_textrm")]
)
(define_insn "iwmmxt_wshufh"
@@ -790,7 +787,7 @@
"TARGET_REALLY_IWMMXT"
"wshufh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wshufh")]
+ (set_attr "type" "wmmx_wshufh")]
)
;; Mask-generating comparisons
@@ -812,7 +809,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpeqb%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpeq")]
+ (set_attr "type" "wmmx_wcmpeq")]
)
(define_insn "eqv4hi3"
@@ -823,7 +820,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpeqh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpeq")]
+ (set_attr "type" "wmmx_wcmpeq")]
)
(define_insn "eqv2si3"
@@ -835,7 +832,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpeqw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpeq")]
+ (set_attr "type" "wmmx_wcmpeq")]
)
(define_insn "gtuv8qi3"
@@ -846,7 +843,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtub%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
(define_insn "gtuv4hi3"
@@ -857,7 +854,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtuh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
(define_insn "gtuv2si3"
@@ -868,7 +865,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtuw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
(define_insn "gtv8qi3"
@@ -879,7 +876,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtsb%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
(define_insn "gtv4hi3"
@@ -890,7 +887,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtsh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
(define_insn "gtv2si3"
@@ -901,7 +898,7 @@
"TARGET_REALLY_IWMMXT"
"wcmpgtsw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wcmpgt")]
+ (set_attr "type" "wmmx_wcmpgt")]
)
;; Max/min insns
@@ -913,7 +910,7 @@
"TARGET_REALLY_IWMMXT"
"wmaxs<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmax")]
+ (set_attr "type" "wmmx_wmax")]
)
(define_insn "*umax<mode>3_iwmmxt"
@@ -923,7 +920,7 @@
"TARGET_REALLY_IWMMXT"
"wmaxu<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmax")]
+ (set_attr "type" "wmmx_wmax")]
)
(define_insn "*smin<mode>3_iwmmxt"
@@ -933,7 +930,7 @@
"TARGET_REALLY_IWMMXT"
"wmins<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmin")]
+ (set_attr "type" "wmmx_wmin")]
)
(define_insn "*umin<mode>3_iwmmxt"
@@ -943,7 +940,7 @@
"TARGET_REALLY_IWMMXT"
"wminu<MMX_char>%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmin")]
+ (set_attr "type" "wmmx_wmin")]
)
;; Pack/unpack insns.
@@ -956,7 +953,7 @@
"TARGET_REALLY_IWMMXT"
"wpackhss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wpackwss"
@@ -967,7 +964,7 @@
"TARGET_REALLY_IWMMXT"
"wpackwss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wpackdss"
@@ -978,7 +975,7 @@
"TARGET_REALLY_IWMMXT"
"wpackdss%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wpackhus"
@@ -989,7 +986,7 @@
"TARGET_REALLY_IWMMXT"
"wpackhus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wpackwus"
@@ -1000,7 +997,7 @@
"TARGET_REALLY_IWMMXT"
"wpackwus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wpackdus"
@@ -1011,7 +1008,7 @@
"TARGET_REALLY_IWMMXT"
"wpackdus%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wpack")]
+ (set_attr "type" "wmmx_wpack")]
)
(define_insn "iwmmxt_wunpckihb"
@@ -1039,7 +1036,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckihb%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckih")]
+ (set_attr "type" "wmmx_wunpckih")]
)
(define_insn "iwmmxt_wunpckihh"
@@ -1059,7 +1056,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckihh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckih")]
+ (set_attr "type" "wmmx_wunpckih")]
)
(define_insn "iwmmxt_wunpckihw"
@@ -1075,7 +1072,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckihw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckih")]
+ (set_attr "type" "wmmx_wunpckih")]
)
(define_insn "iwmmxt_wunpckilb"
@@ -1103,7 +1100,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckilb%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckil")]
+ (set_attr "type" "wmmx_wunpckil")]
)
(define_insn "iwmmxt_wunpckilh"
@@ -1123,7 +1120,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckilh%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckil")]
+ (set_attr "type" "wmmx_wunpckil")]
)
(define_insn "iwmmxt_wunpckilw"
@@ -1139,7 +1136,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckilw%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckil")]
+ (set_attr "type" "wmmx_wunpckil")]
)
(define_insn "iwmmxt_wunpckehub"
@@ -1151,7 +1148,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehub%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckehuh"
@@ -1162,7 +1159,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehuh%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckehuw"
@@ -1173,7 +1170,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehuw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckehsb"
@@ -1185,7 +1182,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehsb%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckehsh"
@@ -1196,7 +1193,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehsh%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckehsw"
@@ -1207,7 +1204,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckehsw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckeh")]
+ (set_attr "type" "wmmx_wunpckeh")]
)
(define_insn "iwmmxt_wunpckelub"
@@ -1219,7 +1216,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckelub%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
(define_insn "iwmmxt_wunpckeluh"
@@ -1230,7 +1227,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckeluh%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
(define_insn "iwmmxt_wunpckeluw"
@@ -1241,7 +1238,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckeluw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
(define_insn "iwmmxt_wunpckelsb"
@@ -1253,7 +1250,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckelsb%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
(define_insn "iwmmxt_wunpckelsh"
@@ -1264,7 +1261,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckelsh%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
(define_insn "iwmmxt_wunpckelsw"
@@ -1275,7 +1272,7 @@
"TARGET_REALLY_IWMMXT"
"wunpckelsw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wunpckel")]
+ (set_attr "type" "wmmx_wunpckel")]
)
;; Shifts
@@ -1298,7 +1295,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wror, wror")]
+ (set_attr "type" "wmmx_wror, wmmx_wror")]
)
(define_insn "ashr<mode>3_iwmmxt"
@@ -1319,7 +1316,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsra, wsra")]
+ (set_attr "type" "wmmx_wsra, wmmx_wsra")]
)
(define_insn "lshr<mode>3_iwmmxt"
@@ -1340,7 +1337,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsrl, wsrl")]
+ (set_attr "type" "wmmx_wsrl, wmmx_wsrl")]
)
(define_insn "ashl<mode>3_iwmmxt"
@@ -1361,7 +1358,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsll, wsll")]
+ (set_attr "type" "wmmx_wsll, wmmx_wsll")]
)
(define_insn "ror<mode>3_di"
@@ -1382,7 +1379,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wror, wror")]
+ (set_attr "type" "wmmx_wror, wmmx_wror")]
)
(define_insn "ashr<mode>3_di"
@@ -1403,7 +1400,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsra, wsra")]
+ (set_attr "type" "wmmx_wsra, wmmx_wsra")]
)
(define_insn "lshr<mode>3_di"
@@ -1424,7 +1421,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsrl, wsrl")]
+ (set_attr "type" "wmmx_wsrl, wmmx_wsrl")]
)
(define_insn "ashl<mode>3_di"
@@ -1445,7 +1442,7 @@
"
[(set_attr "predicable" "yes")
(set_attr "arch" "*, iwmmxt2")
- (set_attr "wtype" "wsll, wsll")]
+ (set_attr "type" "wmmx_wsll, wmmx_wsll")]
)
(define_insn "iwmmxt_wmadds"
@@ -1464,7 +1461,7 @@
"TARGET_REALLY_IWMMXT"
"wmadds%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmadd")]
+ (set_attr "type" "wmmx_wmadd")]
)
(define_insn "iwmmxt_wmaddu"
@@ -1483,7 +1480,7 @@
"TARGET_REALLY_IWMMXT"
"wmaddu%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wmadd")]
+ (set_attr "type" "wmmx_wmadd")]
)
(define_insn "iwmmxt_tmia"
@@ -1496,7 +1493,7 @@
"TARGET_REALLY_IWMMXT"
"tmia%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmia")]
+ (set_attr "type" "wmmx_tmia")]
)
(define_insn "iwmmxt_tmiaph"
@@ -1514,7 +1511,7 @@
"TARGET_REALLY_IWMMXT"
"tmiaph%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmiaph")]
+ (set_attr "type" "wmmx_tmiaph")]
)
(define_insn "iwmmxt_tmiabb"
@@ -1527,7 +1524,7 @@
"TARGET_REALLY_IWMMXT"
"tmiabb%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmiaxy")]
+ (set_attr "type" "wmmx_tmiaxy")]
)
(define_insn "iwmmxt_tmiatb"
@@ -1544,7 +1541,7 @@
"TARGET_REALLY_IWMMXT"
"tmiatb%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmiaxy")]
+ (set_attr "type" "wmmx_tmiaxy")]
)
(define_insn "iwmmxt_tmiabt"
@@ -1561,7 +1558,7 @@
"TARGET_REALLY_IWMMXT"
"tmiabt%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmiaxy")]
+ (set_attr "type" "wmmx_tmiaxy")]
)
(define_insn "iwmmxt_tmiatt"
@@ -1580,7 +1577,7 @@
"TARGET_REALLY_IWMMXT"
"tmiatt%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmiaxy")]
+ (set_attr "type" "wmmx_tmiaxy")]
)
(define_insn "iwmmxt_tmovmskb"
@@ -1589,7 +1586,7 @@
"TARGET_REALLY_IWMMXT"
"tmovmskb%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmovmsk")]
+ (set_attr "type" "wmmx_tmovmsk")]
)
(define_insn "iwmmxt_tmovmskh"
@@ -1598,7 +1595,7 @@
"TARGET_REALLY_IWMMXT"
"tmovmskh%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmovmsk")]
+ (set_attr "type" "wmmx_tmovmsk")]
)
(define_insn "iwmmxt_tmovmskw"
@@ -1607,7 +1604,7 @@
"TARGET_REALLY_IWMMXT"
"tmovmskw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "tmovmsk")]
+ (set_attr "type" "wmmx_tmovmsk")]
)
(define_insn "iwmmxt_waccb"
@@ -1616,7 +1613,7 @@
"TARGET_REALLY_IWMMXT"
"waccb%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wacc")]
+ (set_attr "type" "wmmx_wacc")]
)
(define_insn "iwmmxt_wacch"
@@ -1625,7 +1622,7 @@
"TARGET_REALLY_IWMMXT"
"wacch%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wacc")]
+ (set_attr "type" "wmmx_wacc")]
)
(define_insn "iwmmxt_waccw"
@@ -1634,7 +1631,7 @@
"TARGET_REALLY_IWMMXT"
"waccw%?\\t%0, %1"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wacc")]
+ (set_attr "type" "wmmx_wacc")]
)
;; use unspec here to prevent 8 * imm to be optimized by cse
@@ -1651,7 +1648,7 @@
"TARGET_REALLY_IWMMXT"
"waligni%?\\t%0, %1, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "waligni")]
+ (set_attr "type" "wmmx_waligni")]
)
(define_insn "iwmmxt_walignr"
@@ -1666,7 +1663,7 @@
"TARGET_REALLY_IWMMXT"
"walignr%U3%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "walignr")]
+ (set_attr "type" "wmmx_walignr")]
)
(define_insn "iwmmxt_walignr0"
@@ -1681,7 +1678,7 @@
"TARGET_REALLY_IWMMXT"
"walignr0%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "walignr")]
+ (set_attr "type" "wmmx_walignr")]
)
(define_insn "iwmmxt_walignr1"
@@ -1696,7 +1693,7 @@
"TARGET_REALLY_IWMMXT"
"walignr1%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "walignr")]
+ (set_attr "type" "wmmx_walignr")]
)
(define_insn "iwmmxt_walignr2"
@@ -1711,7 +1708,7 @@
"TARGET_REALLY_IWMMXT"
"walignr2%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "walignr")]
+ (set_attr "type" "wmmx_walignr")]
)
(define_insn "iwmmxt_walignr3"
@@ -1726,7 +1723,7 @@
"TARGET_REALLY_IWMMXT"
"walignr3%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "walignr")]
+ (set_attr "type" "wmmx_walignr")]
)
(define_insn "iwmmxt_wsadb"
@@ -1738,7 +1735,7 @@
"TARGET_REALLY_IWMMXT"
"wsadb%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsad")]
+ (set_attr "type" "wmmx_wsad")]
)
(define_insn "iwmmxt_wsadh"
@@ -1750,7 +1747,7 @@
"TARGET_REALLY_IWMMXT"
"wsadh%?\\t%0, %2, %3"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsad")]
+ (set_attr "type" "wmmx_wsad")]
)
(define_insn "iwmmxt_wsadbz"
@@ -1760,7 +1757,7 @@
"TARGET_REALLY_IWMMXT"
"wsadbz%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsad")]
+ (set_attr "type" "wmmx_wsad")]
)
(define_insn "iwmmxt_wsadhz"
@@ -1770,7 +1767,7 @@
"TARGET_REALLY_IWMMXT"
"wsadhz%?\\t%0, %1, %2"
[(set_attr "predicable" "yes")
- (set_attr "wtype" "wsad")]
+ (set_attr "type" "wmmx_wsad")]
)
(include "iwmmxt2.md")