comparison gcc/config/arm/iwmmxt.md @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 ;; Patterns for the Intel Wireless MMX technology architecture. 1 ;; Patterns for the Intel Wireless MMX technology architecture.
2 ;; Copyright (C) 2003-2018 Free Software Foundation, Inc. 2 ;; Copyright (C) 2003-2020 Free Software Foundation, Inc.
3 ;; Contributed by Red Hat. 3 ;; Contributed by Red Hat.
4 4
5 ;; This file is part of GCC. 5 ;; This file is part of GCC.
6 6
7 ;; GCC is free software; you can redistribute it and/or modify it under 7 ;; GCC is free software; you can redistribute it and/or modify it under
53 [(set_attr "predicable" "yes") 53 [(set_attr "predicable" "yes")
54 (set_attr "type" "wmmx_tbcst")] 54 (set_attr "type" "wmmx_tbcst")]
55 ) 55 )
56 56
57 (define_insn "iwmmxt_iordi3" 57 (define_insn "iwmmxt_iordi3"
58 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") 58 [(set (match_operand:DI 0 "register_operand" "=y")
59 (ior:DI (match_operand:DI 1 "register_operand" "%y,0,r") 59 (ior:DI (match_operand:DI 1 "register_operand" "%y")
60 (match_operand:DI 2 "register_operand" "y,r,r")))] 60 (match_operand:DI 2 "register_operand" "y")))]
61 "TARGET_REALLY_IWMMXT" 61 "TARGET_REALLY_IWMMXT"
62 "@ 62 "wor%?\\t%0, %1, %2"
63 wor%?\\t%0, %1, %2 63 [(set_attr "predicable" "yes")
64 # 64 (set_attr "length" "4")
65 #" 65 (set_attr "type" "wmmx_wor")]
66 [(set_attr "predicable" "yes")
67 (set_attr "length" "4,8,8")
68 (set_attr "type" "wmmx_wor,*,*")]
69 ) 66 )
70 67
71 (define_insn "iwmmxt_xordi3" 68 (define_insn "iwmmxt_xordi3"
72 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") 69 [(set (match_operand:DI 0 "register_operand" "=y")
73 (xor:DI (match_operand:DI 1 "register_operand" "%y,0,r") 70 (xor:DI (match_operand:DI 1 "register_operand" "%y")
74 (match_operand:DI 2 "register_operand" "y,r,r")))] 71 (match_operand:DI 2 "register_operand" "y")))]
75 "TARGET_REALLY_IWMMXT" 72 "TARGET_REALLY_IWMMXT"
76 "@ 73 "wxor%?\\t%0, %1, %2"
77 wxor%?\\t%0, %1, %2 74 [(set_attr "predicable" "yes")
78 # 75 (set_attr "length" "4")
79 #" 76 (set_attr "type" "wmmx_wxor")]
80 [(set_attr "predicable" "yes")
81 (set_attr "length" "4,8,8")
82 (set_attr "type" "wmmx_wxor,*,*")]
83 ) 77 )
84 78
85 (define_insn "iwmmxt_anddi3" 79 (define_insn "iwmmxt_anddi3"
86 [(set (match_operand:DI 0 "register_operand" "=y,?&r,?&r") 80 [(set (match_operand:DI 0 "register_operand" "=y")
87 (and:DI (match_operand:DI 1 "register_operand" "%y,0,r") 81 (and:DI (match_operand:DI 1 "register_operand" "%y")
88 (match_operand:DI 2 "register_operand" "y,r,r")))] 82 (match_operand:DI 2 "register_operand" "y")))]
89 "TARGET_REALLY_IWMMXT" 83 "TARGET_REALLY_IWMMXT"
90 "@ 84 "wand%?\\t%0, %1, %2"
91 wand%?\\t%0, %1, %2 85 [(set_attr "predicable" "yes")
92 # 86 (set_attr "length" "4")
93 #" 87 (set_attr "type" "wmmx_wand")]
94 [(set_attr "predicable" "yes")
95 (set_attr "length" "4,8,8")
96 (set_attr "type" "wmmx_wand,*,*")]
97 ) 88 )
98 89
99 (define_insn "iwmmxt_nanddi3" 90 (define_insn "iwmmxt_nanddi3"
100 [(set (match_operand:DI 0 "register_operand" "=y") 91 [(set (match_operand:DI 0 "register_operand" "=y")
101 (and:DI (match_operand:DI 1 "register_operand" "y") 92 (and:DI (match_operand:DI 1 "register_operand" "y")
254 (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")] 245 (set_attr "neg_pool_range" "*, *, 244,*,*,*, 244,*")]
255 ) 246 )
256 247
257 (define_expand "iwmmxt_setwcgr0" 248 (define_expand "iwmmxt_setwcgr0"
258 [(set (reg:SI WCGR0) 249 [(set (reg:SI WCGR0)
259 (match_operand:SI 0 "register_operand" ""))] 250 (match_operand:SI 0 "register_operand"))]
260 "TARGET_REALLY_IWMMXT" 251 "TARGET_REALLY_IWMMXT"
261 {} 252 {}
262 ) 253 )
263 254
264 (define_expand "iwmmxt_setwcgr1" 255 (define_expand "iwmmxt_setwcgr1"
265 [(set (reg:SI WCGR1) 256 [(set (reg:SI WCGR1)
266 (match_operand:SI 0 "register_operand" ""))] 257 (match_operand:SI 0 "register_operand"))]
267 "TARGET_REALLY_IWMMXT" 258 "TARGET_REALLY_IWMMXT"
268 {} 259 {}
269 ) 260 )
270 261
271 (define_expand "iwmmxt_setwcgr2" 262 (define_expand "iwmmxt_setwcgr2"
272 [(set (reg:SI WCGR2) 263 [(set (reg:SI WCGR2)
273 (match_operand:SI 0 "register_operand" ""))] 264 (match_operand:SI 0 "register_operand"))]
274 "TARGET_REALLY_IWMMXT" 265 "TARGET_REALLY_IWMMXT"
275 {} 266 {}
276 ) 267 )
277 268
278 (define_expand "iwmmxt_setwcgr3" 269 (define_expand "iwmmxt_setwcgr3"
279 [(set (reg:SI WCGR3) 270 [(set (reg:SI WCGR3)
280 (match_operand:SI 0 "register_operand" ""))] 271 (match_operand:SI 0 "register_operand"))]
281 "TARGET_REALLY_IWMMXT" 272 "TARGET_REALLY_IWMMXT"
282 {} 273 {}
283 ) 274 )
284 275
285 (define_expand "iwmmxt_getwcgr0" 276 (define_expand "iwmmxt_getwcgr0"
286 [(set (match_operand:SI 0 "register_operand" "") 277 [(set (match_operand:SI 0 "register_operand")
287 (reg:SI WCGR0))] 278 (reg:SI WCGR0))]
288 "TARGET_REALLY_IWMMXT" 279 "TARGET_REALLY_IWMMXT"
289 {} 280 {}
290 ) 281 )
291 282
292 (define_expand "iwmmxt_getwcgr1" 283 (define_expand "iwmmxt_getwcgr1"
293 [(set (match_operand:SI 0 "register_operand" "") 284 [(set (match_operand:SI 0 "register_operand")
294 (reg:SI WCGR1))] 285 (reg:SI WCGR1))]
295 "TARGET_REALLY_IWMMXT" 286 "TARGET_REALLY_IWMMXT"
296 {} 287 {}
297 ) 288 )
298 289
299 (define_expand "iwmmxt_getwcgr2" 290 (define_expand "iwmmxt_getwcgr2"
300 [(set (match_operand:SI 0 "register_operand" "") 291 [(set (match_operand:SI 0 "register_operand")
301 (reg:SI WCGR2))] 292 (reg:SI WCGR2))]
302 "TARGET_REALLY_IWMMXT" 293 "TARGET_REALLY_IWMMXT"
303 {} 294 {}
304 ) 295 )
305 296
306 (define_expand "iwmmxt_getwcgr3" 297 (define_expand "iwmmxt_getwcgr3"
307 [(set (match_operand:SI 0 "register_operand" "") 298 [(set (match_operand:SI 0 "register_operand")
308 (reg:SI WCGR3))] 299 (reg:SI WCGR3))]
309 "TARGET_REALLY_IWMMXT" 300 "TARGET_REALLY_IWMMXT"
310 {} 301 {}
311 ) 302 )
312 303