Mercurial > hg > CbC > CbC_gcc
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 |