1 2015-06-30 Christophe Lyon <christophe.lyon@linaro.org>
3 * LINARO-VERSION: Bump version.
5 2015-06-30 Christophe Lyon <christophe.lyon@linaro.org>
7 GCC Linaro 4.8-2015.06 released.
8 * LINARO-VERSION: Update.
10 2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
12 * LINARO-VERSION: Bump version.
14 2015-05-18 Christophe Lyon <christophe.lyon@linaro.org>
16 GCC Linaro 4.8-2015.04 released.
17 * LINARO-VERSION: Update.
19 2015-04-11 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
21 Backport from trunk r203711.
22 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
24 * config/aarch64/aarch64.md
25 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
27 2015-02-15 Michael Collison <michael.collison@linaro.org>
29 * LINARO-VERSION: Bump version.
31 2015-02-12 Michael Collison <michael.collison@linaro.org>
33 GCC Linaro 4.8-2015.02 released.
34 * LINARO-VERSION: Update.
36 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
38 * LINARO-VERSION: Bump version.
40 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
42 GCC Linaro 4.8-2014.11 released.
43 * LINARO-VERSION: Update.
45 2014-11-14 Michael Collison <michael.collison@linaro.org>
47 Backport from trunk r212178..
48 2014-06-30 Joseph Myers <joseph@codesourcery.com>
50 * var-tracking.c (add_stores): Return instead of asserting if old
51 and new values for conditional store are the same.
53 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
55 Add Linaro release macros (Linaro only patch.)
57 * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define.
58 (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition.
59 (cppbuiltin.o): Depend on $(LINAROVER).
60 * cppbuiltin.c (parse_linarover): New.
61 (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros.
63 2014-08-26 venkataramanan-kumar <venkataramanan.kumar@linaro.org>
65 Backport from trunk r205807.
66 2013-12-09 Richard Earnshaw <rearnsha@arm.com>
68 * arm.c (mem_ok_for_ldrd_strd): Rename first argument as MEM. Do
69 more address validation checks.
71 2014-08-15 Yvan Roux <yvan.roux@linaro.org>
73 * LINARO-VERSION: Bump version.
75 2014-08-14 Yvan Roux <yvan.roux@linaro.org>
77 GCC Linaro 4.8-2014.08 released.
78 * LINARO-VERSION: Update.
80 2014-08-11 Michael Collison <michael.collison@linaro.org>
82 Backport from trunk r206529, r206530
83 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
86 * aarch64-modes.def (CC_Zmode): New flags mode.
87 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
88 represents an equality.
89 (aarch64_get_condition_code): Handle CC_Zmode.
90 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
92 2014-08-11 Michael Collison <michael.collison@linaro.org>
94 Backport from trunk r204251
95 2013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
96 Yury Gribov <y.gribov@samsung.com>
99 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
100 shadow pointer to avoid clobbering the main one.
102 2014-04-08 Yvan Roux <yvan.roux@linaro.org>
104 * LINARO-VERSION: Bump version.
106 2014-04-07 Yvan Roux <yvan.roux@linaro.org>
108 GCC Linaro 4.8-2014.04 released.
109 * LINARO-VERSION: Update.
111 2014-04-07 Michael Collison <michael.collison@linaro.org>
113 Backport from trunk r205105
114 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
116 * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
119 2014-04-07 Michael Collison <michael.collison@linaro.org>
121 Backport from trunk r205050
122 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
124 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
126 2014-04-07 Michael Collison <michael.collison@linaro.org>
128 Backport from trunk r204852
129 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
131 * config/aarch64/aarch64.md: Remove v8type from all insns.
133 2014-04-07 Michael Collison <michael.collison@linaro.org>
135 Backport from trunk r204852
136 2013-11-15 James Greenhalgh <james.greenhalgh@arm.com>
138 * config/aarch64/aarch64-simd.md: Remove simd_type from all
140 * config/aarch64/aarch64.md: Likewise, correct "type" attribute
141 where it is incorrect or missing.
143 2014-04-07 Michael Collison <michael.collison@linaro.org>
145 Backport from trunk r204784
146 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
148 * config/aarch64/aarch64-cores.def (example-1): Remove.
149 (example-2): Likewise.
150 * config/aarch64/aarch64-tune.md: Regenerate.
151 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
152 (generic_sched): Remove "large", "small".
153 * config/aarch64/large.md: Delete.
154 * config/aarch64/small.md: Delete.
156 2014-04-07 Michael Collison <michael.collison@linaro.org>
158 Backport from trunk r204783
159 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
161 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
162 * config/aarch64/aarch64-tune.md: Regenerate.
163 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
164 (generic_sched): "no" if we are tuning for cortexa15.
165 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
168 2014-04-07 Michael Collison <michael.collison@linaro.org>
170 Backport from trunk r204782
171 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
173 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
174 * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
175 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
176 (all_cores): Use cortexa53 when tuning for "generic".
177 (aarch64_override_options): Fix comment.
178 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
179 * config/aarch64/aarch64-generic.md: Delete.
181 2014-04-07 Michael Collison <michael.collison@linaro.org>
183 Backport from trunk r204575
184 2013-11-08 James Greenhalgh <james.greenhalgh@arm.com>
186 * config/arm/aarch-common.c
187 (search_term): New typedef.
188 (shift_rtx_costs): New array.
189 (arm_rtx_shift_left_p): New.
190 (arm_find_sub_rtx_with_search_term): Likewise.
191 (arm_find_sub_rtx_with_code): Likewise.
192 (arm_early_load_addr_dep): Add sanity checking.
193 (arm_no_early_alu_shift_dep): Likewise.
194 (arm_no_early_alu_shift_value_dep): Likewise.
195 (arm_no_early_mul_dep): Likewise.
196 (arm_no_early_store_addr_dep): Likewise.
198 2014-04-07 Michael Collison <michael.collison@linaro.org>
200 Backport from trunk r203621
201 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
203 * config/arm/neon-schedgen.ml: Remove.
204 * config/arm/cortex-a9-neon.md: Remove comment regarding
207 2014-04-07 Michael Collison <michael.collison@linaro.org>
209 Backport from trunk r203620
210 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
212 * config/arm/types: Remove old neon types.
214 2014-04-07 Michael Collison <michael.collison@linaro.org>
216 Backport from trunk r203619
217 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
219 * config/arm/cortex-a7.md
220 (cortex_a7_neon_type): New.
221 (cortex_a7_neon_mul): Update for new types.
222 (cortex_a7_neon_mla): Likewise.
223 (cortex_a7_neon): Likewise.
225 2014-04-07 Michael Collison <michael.collison@linaro.org>
227 Backport from trunk r203618
228 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
230 * config/arm/cortex-a15-neon.md
231 (cortex_a15_neon_type): New,
233 (cortex_a15_neon_int_1): Remove.
234 (cortex_a15_neon_int_2): Likewise.
235 (cortex_a15_neon_int_3): Likewise.
236 (cortex_a15_neon_int_4): Likewise.
237 (cortex_a15_neon_int_5): Likewise.
238 (cortex_a15_neon_vqneg_vqabs): Likewise.
239 (cortex_a15_neon_vmov): Likewise.
240 (cortex_a15_neon_vaba): Likewise.
241 (cortex_a15_neon_vaba_qqq): Likewise.
242 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
243 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
244 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
246 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
247 (cortex_a15_neon_mla_qqq_8_16): Likewise.
248 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
249 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
250 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
251 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
252 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
253 (cortex_a15_neon_shift_1): Likewise.
254 (cortex_a15_neon_shift_2): Likewise.
255 (cortex_a15_neon_shift_3): Likewise.
256 (cortex_a15_neon_vshl_ddd): Likewise.
257 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
258 (cortex_a15_neon_vsra_vrsra): Likewise.
259 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
260 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
261 (cortex_a15_neon_bp_3cycle): Likewise.
262 (cortex_a15_neon_ldm_2): Likewise.
263 (cortex_a15_neon_stm_2): Likewise.
264 (cortex_a15_neon_mcr): Likewise.
265 (cortex_a15_neon_mrc): Likewise.
266 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
267 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
268 (cortex_a15_neon_fp_vmul_ddd): Likewise.
269 (cortex_a15_neon_fp_vmul_qqd): Likewise.
270 (cortex_a15_neon_fp_vmla_ddd): Likewise.
271 (cortex_a15_neon_fp_vmla_qqq): Likewise.
272 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
273 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
274 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
275 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
276 (cortex_a15_neon_bp_simple): Likewise.
277 (cortex_a15_neon_bp_2cycle): Likewise.
278 (cortex_a15_neon_bp_3cycle): Likewise.
279 (cortex_a15_neon_vld1_1_2_regs): Likewise.
280 (cortex_a15_neon_vld1_3_4_regs): Likewise.
281 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
282 (cortex_a15_neon_vld2_4_regs): Likewise.
283 (cortex_a15_neon_vld3_vld4): Likewise.
284 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
285 (cortex_a15_neon_vst1_3_4_regs): Likewise.
286 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
287 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
288 (cortex_a15_neon_vst3_vst4): Rename to...
289 (cortex_a15_neon_vst4): This, update for new attributes.
290 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
291 (cortex_a15_neon_vld3_vld4_lane): Likewise.
292 (cortex_a15_neon_vst1_vst2_lane): Likewise.
293 (cortex_a15_neon_vst3_vst4_lane): Likewise.
294 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
295 (cortex_a15_neon_ldm_2): Likewise.
296 (cortex_a15_neon_stm_2): Likewise.
297 (cortex_a15_neon_mcr): Likewise.
298 (cortex_a15_neon_mcr_2_mcrr): Likewise.
299 (cortex_a15_neon_mrc): Likewise.
300 (cortex_a15_neon_mrrc): Likewise.
302 (cortex_a15_neon_abd): New.
303 (cortex_a15_neon_abd_q): Likewise.
304 (cortex_a15_neon_aba): Likewise.
305 (cortex_a15_neon_aba_q): Likewise.
306 (cortex_a15_neon_acc): Likewise.
307 (cortex_a15_neon_acc_q): Likewise.
308 (cortex_a15_neon_arith_basic): Likewise.
309 (cortex_a15_neon_arith_complex): Likewise.
310 (cortex_a15_neon_multiply): Likewise.
311 (cortex_a15_neon_multiply_q): Likewise.
312 (cortex_a15_neon_mla): Likewise.
313 (cortex_a15_neon_mla_q): Likewise.
314 (cortex_a15_neon_sat_mla_long): Likewise.
315 (cortex_a15_neon_shift_acc): Likewise.
316 (cortex_a15_neon_shift_imm_basic): Likewise.
317 (cortex_a15_neon_shift_imm_complex): Likewise.
318 (cortex_a15_neon_shift_reg_basic): Likewise.
319 (cortex_a15_neon_shift_reg_basic_q): Likewise.
320 (cortex_a15_neon_shift_reg_complex): Likewise.
321 (cortex_a15_neon_shift_reg_complex_q): Likewise.
322 (cortex_a15_neon_fp_negabs): Likewise
323 (cortex_a15_neon_fp_arith): Likewise
324 (cortex_a15_neon_fp_arith_q): Likewise
325 (cortex_a15_neon_fp_cvt_int): Likewise
326 (cortex_a15_neon_fp_cvt_int_q): Likewise
327 (cortex_a15_neon_fp_cvt_16): Likewise
328 (cortex_a15_neon_fp_mul): Likewise
329 (cortex_a15_neon_fp_mul_q): Likewise
330 (cortex_a15_neon_fp_mla): Likewise
331 (cortex_a15_neon_fp_mla_q): Likewise
332 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
333 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
334 (cortex_a15_neon_bitops): Likewise.
335 (cortex_a15_neon_bitops_q): Likewise.
336 (cortex_a15_neon_from_gp): Likewise.
337 (cortex_a15_neon_from_gp_q): Likewise.
338 (cortex_a15_neon_tbl3_tbl4): Likewise.
339 (cortex_a15_neon_zip_q): Likewise.
340 (cortex_a15_neon_to_gp): Likewise.
341 (cortex_a15_neon_load_a): Likewise.
342 (cortex_a15_neon_load_b): Likewise.
343 (cortex_a15_neon_load_c): Likewise.
344 (cortex_a15_neon_load_d): Likewise.
345 (cortex_a15_neon_load_e): Likewise.
346 (cortex_a15_neon_load_f): Likewise.
347 (cortex_a15_neon_store_a): Likewise.
348 (cortex_a15_neon_store_b): Likewise.
349 (cortex_a15_neon_store_c): Likewise.
350 (cortex_a15_neon_store_d): Likewise.
351 (cortex_a15_neon_store_e): Likewise.
352 (cortex_a15_neon_store_f): Likewise.
353 (cortex_a15_neon_store_g): Likewise.
354 (cortex_a15_neon_store_h): Likewise.
355 (cortex_a15_vfp_to_from_gp): Likewise.
357 2014-04-07 Michael Collison <michael.collison@linaro.org>
359 Backport from trunk r203617
360 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
362 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
364 (cortex_a9_neon_vshl_ddd): Remove.
365 (cortex_a9_neon_vst3_vst4): Likewise.
366 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
368 (cortex_a9_neon_bit_ops_q): New.
370 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
371 (cortex_a9_neon_int_2): Likewise.
372 (cortex_a9_neon_int_3): Likewise.
373 (cortex_a9_neon_int_4): Likewise.
374 (cortex_a9_neon_int_5): Likewise.
375 (cortex_a9_neon_vqneg_vqabs): Likewise.
376 (cortex_a9_neon_vmov): Likewise.
377 (cortex_a9_neon_vaba): Likewise.
378 (cortex_a9_neon_vaba_qqq): Likewise.
379 (cortex_a9_neon_shift_1): Likewise.
380 (cortex_a9_neon_shift_2): Likewise.
381 (cortex_a9_neon_shift_3): Likewise.
382 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
383 (cortex_a9_neon_vsra_vrsra): Likewise.
384 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
385 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
386 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
388 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
389 (cortex_a9_neon_mla_qqq_8_16): Likewise.
390 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
392 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
393 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
394 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
395 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
396 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
397 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
398 (cortex_a9_neon_fp_vsum): Likewise.
399 (cortex_a9_neon_fp_vmul_ddd): Likewise.
400 (cortex_a9_neon_fp_vmul_qqd): Likewise.
401 (cortex_a9_neon_fp_vmla_ddd): Likewise.
402 (cortex_a9_neon_fp_vmla_qqq): Likewise.
403 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
404 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
405 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
406 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
407 (cortex_a9_neon_bp_simple): Likewise.
408 (cortex_a9_neon_bp_2cycle): Likewise.
409 (cortex_a9_neon_bp_3cycle): Likewise.
410 (cortex_a9_neon_ldr): Likewise.
411 (cortex_a9_neon_str): Likewise.
412 (cortex_a9_neon_vld1_1_2_regs): Likewise.
413 (cortex_a9_neon_vld1_3_4_regs): Likewise.
414 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
415 (cortex_a9_neon_vld2_4_regs): Likewise.
416 (cortex_a9_neon_vld3_vld4): Likewise.
417 (cortex_a9_neon_vld1_vld2_lane): Likewise.
418 (cortex_a9_neon_vld3_vld4_lane): Likewise.
419 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
420 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
421 (cortex_a9_neon_vst1_3_4_regs): Likewise.
422 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
423 (cortex_a9_neon_vst1_vst2_lane): Likewise.
424 (cortex_a9_neon_vst3_vst4_lane): Likewise.
425 (cortex_a9_neon_mcr): Likewise.
426 (cortex_a9_neon_mcr_2_mcrr): Likewise.
427 (cortex_a9_neon_mrc): Likewise.
428 (cortex_a9_neon_mrrc): Likewise.
430 2014-04-07 Michael Collison <michael.collison@linaro.org>
432 Backport from trunk r203616
433 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
435 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
437 (cortex_a8_neon_vshl_ddd): Remove.
438 (cortex_a8_neon_vst3_vst4): Likewise.
439 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
441 (cortex_a8_neon_bit_ops_q): New.
443 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
444 (cortex_a8_neon_int_2): Likewise..
445 (cortex_a8_neon_int_3): Likewise.
446 (cortex_a8_neon_int_5): Likewise.
447 (cortex_a8_neon_vqneg_vqabs): Likewise.
448 (cortex_a8_neon_int_4): Likewise.
449 (cortex_a8_neon_vaba): Likewise.
450 (cortex_a8_neon_vaba_qqq): Likewise.
451 (cortex_a8_neon_shift_1): Likewise.
452 (cortex_a8_neon_shift_2): Likewise.
453 (cortex_a8_neon_shift_3): Likewise.
454 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
455 (cortex_a8_neon_vsra_vrsra): Likewise.
456 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
457 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
458 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
460 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
461 (cortex_a8_neon_mla_qqq_8_16): Likewise.
462 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
464 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
465 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
466 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
467 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
468 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
469 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
470 (cortex_a8_neon_fp_vsum): Likewise.
471 (cortex_a8_neon_fp_vmul_ddd): Likewise.
472 (cortex_a8_neon_fp_vmul_qqd): Likewise.
473 (cortex_a8_neon_fp_vmla_ddd): Likewise.
474 (cortex_a8_neon_fp_vmla_qqq): Likewise.
475 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
476 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
477 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
478 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
479 (cortex_a8_neon_bp_simple): Likewise.
480 (cortex_a8_neon_bp_2cycle): Likewise.
481 (cortex_a8_neon_bp_3cycle): Likewise.
482 (cortex_a8_neon_ldr): Likewise.
483 (cortex_a8_neon_str): Likewise.
484 (cortex_a8_neon_vld1_1_2_regs): Likewise.
485 (cortex_a8_neon_vld1_3_4_regs): Likewise.
486 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
487 (cortex_a8_neon_vld2_4_regs): Likewise.
488 (cortex_a8_neon_vld3_vld4): Likewise.
489 (cortex_a8_neon_vld1_vld2_lane): Likewise.
490 (cortex_a8_neon_vld3_vld4_lane): Likewise.
491 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
492 (cortex_a8_neon_vst1_3_4_regs): Likewise.
493 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
494 (cortex_a8_neon_vst1_vst2_lane): Likewise.
495 (cortex_a8_neon_vst3_vst4_lane): Likewise.
496 (cortex_a8_neon_mcr): Likewise.
497 (cortex_a8_neon_mcr_2_mcrr): Likewise.
498 (cortex_a8_neon_mrc): Likewise.
499 (cortex_a8_neon_mrrc): Likewise.
501 2014-04-07 Michael Collison <michael.collison@linaro.org>
503 Backport from trunk r203614
504 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
506 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
508 * config/aarch64/aarch64-simd.md (neon_type): Remove.
509 (aarch64_simd_dup<mode>): Add "type" attribute.
510 (aarch64_dup_lane<mode>): Likewise.
511 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
512 (*aarch64_simd_mov<mode>): Likewise.
513 (aarch64_simd_mov_from_<mode>low): Likewise.
514 (aarch64_simd_mov_from_<mode>high): Likewise.
515 (orn<mode>3): Likewise.
516 (bic<mode>3): Likewise.
517 (add<mode>3): Likewise.
518 (sub<mode>3): Likewise.
519 (mul<mode>3): Likewise.
520 (*aarch64_mul3_elt<mode>): Likewise.
521 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
522 (*aarch64_mul3_elt_to_128df): Likewise.
523 (*aarch64_mul3_elt_to_64v2df): Likewise.
524 (neg<mode>2): Likewise.
525 (abs<mode>2): Likewise.
526 (abd<mode>_3): Likewise.
527 (aba<mode>_3): Likewise.
528 (fabd<mode>_3): Likewise.
529 (*fabd_scalar<mode>3): Likewise.
530 (and<mode>3): Likewise.
531 (ior<mode>3): Likewise.
532 (xor<mode>3): Likewise.
533 (one_cmpl<mode>2): Likewise.
534 (aarch64_simd_vec_set<mode>): Likewise.
535 (aarch64_simd_lshr<mode>): Likewise.
536 (aarch64_simd_ashr<mode>): Likewise.
537 (aarch64_simd_imm_shl<mode>): Likewise.
538 (aarch64_simd_reg_sshl<mode): Likewise.
539 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
540 (aarch64_simd_reg_shl<mode>_signed): Likewise.
541 (aarch64_simd_vec_setv2di): Likewise.
542 (aarch64_simd_vec_set<mode>): Likewise.
543 (aarch64_mla<mode>): Likewise.
544 (*aarch64_mla_elt<mode>): Likewise.
545 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
546 (aarch64_mls<mode>): Likewise.
547 (*aarch64_mls_elt<mode>): Likewise.
548 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
549 (<su><maxmin><mode>3): Likewise.
550 (move_lo_quad_<mode>): Likewise.
551 (aarch64_simd_move_hi_quad_<mode>): Likewise.
552 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
553 (vec_pack_trunc_<mode>): Likewise.
554 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
555 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
556 (*aarch64_<su>mlal_lo<mode>): Likewise.
557 (*aarch64_<su>mlal_hi<mode>): Likewise.
558 (*aarch64_<su>mlsl_lo<mode>): Likewise.
559 (*aarch64_<su>mlsl_hi<mode>): Likewise.
560 (*aarch64_<su>mlal<mode>): Likewise.
561 (*aarch64_<su>mlsl<mode>): Likewise.
562 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
563 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
564 (add<mode>3): Likewise.
565 (sub<mode>3): Likewise.
566 (mul<mode>3): Likewise.
567 (div<mode>3): Likewise.
568 (neg<mode>2): Likewise.
569 (abs<mode>2): Likewise.
570 (fma<mode>4): Likewise.
571 (*aarch64_fma4_elt<mode>): Likewise.
572 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
573 (*aarch64_fma4_elt_to_128df): Likewise.
574 (*aarch64_fma4_elt_to_64v2df): Likewise.
575 (fnma<mode>4): Likewise.
576 (*aarch64_fnma4_elt<mode>): Likewise.
577 (*aarch64_fnma4_elt_<vswap_width_name><mode>
578 (*aarch64_fnma4_elt_to_128df): Likewise.
579 (*aarch64_fnma4_elt_to_64v2df): Likewise.
580 (<frint_pattern><mode>2): Likewise.
581 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
582 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
583 (vec_unpacks_lo_v4sf): Likewise.
584 (aarch64_float_extend_lo_v2df): Likewise.
585 (vec_unpacks_hi_v4sf): Likewise.
586 (aarch64_float_truncate_lo_v2sf): Likewise.
587 (aarch64_float_truncate_hi_v4sf): Likewise.
588 (aarch64_vmls<mode>): Likewise.
589 (<su><maxmin><mode>3): Likewise.
590 (<maxmin_uns><mode>3): Likewise.
591 (reduc_<sur>plus_<mode>): Likewise.
592 (reduc_<sur>plus_v2di): Likewise.
593 (reduc_<sur>plus_v2si): Likewise.
594 (reduc_<sur>plus_<mode>): Likewise.
595 (aarch64_addpv4sf): Likewise.
596 (clz<mode>2): Likewise.
597 (reduc_<maxmin_uns>_<mode>): Likewise.
598 (reduc_<maxmin_uns>_v2di): Likewise.
599 (reduc_<maxmin_uns>_v2si): Likewise.
600 (reduc_<maxmin_uns>_<mode>): Likewise.
601 (reduc_<maxmin_uns>_v4sf): Likewise.
602 (aarch64_simd_bsl<mode>_internal): Likewise.
603 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
604 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
605 (aarch64_get_lane<mode>): Likewise.
606 (*aarch64_combinez<mode>): Likewise.
607 (aarch64_combine<mode>): Likewise.
608 (aarch64_simd_combine<mode>): Likewise.
609 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
610 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
611 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
612 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
613 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
614 (aarch64_<sur>h<addsub><mode>): Likewise.
615 (aarch64_<sur><addsub>hn<mode>): Likewise.
616 (aarch64_<sur><addsub>hn2<mode>): Likewise.
617 (aarch64_pmul<mode>): Likewise.
618 (aarch64_<su_optab><optab><mode>): Likewise.
619 (aarch64_<sur>qadd<mode>): Likewise.
620 (aarch64_sqmovun<mode>): Likewise.
621 (aarch64_<sur>qmovn<mode>): Likewise.
622 (aarch64_s<optab><mode>): Likewise.
623 (aarch64_sq<r>dmulh<mode>): Likewise.
624 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
625 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
626 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
627 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
628 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
629 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
630 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
631 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
632 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
633 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
634 (aarch64_sqdmull<mode>): Likewise.
635 (aarch64_sqdmull_lane<mode>_internal): Likewise.
636 (aarch64_sqdmull_n<mode>): Likewise.
637 (aarch64_sqdmull2<mode>_internal): Likewise.
638 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
639 (aarch64_sqdmull2_n<mode>_internal): Likewise.
640 (aarch64_<sur>shl<mode>): Likewise.
641 (aarch64_<sur>q<r>shl<mode>
642 (aarch64_<sur>shll_n<mode>): Likewise.
643 (aarch64_<sur>shll2_n<mode>): Likewise.
644 (aarch64_<sur>shr_n<mode>): Likewise.
645 (aarch64_<sur>sra_n<mode>): Likewise.
646 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
647 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
648 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
649 (aarch64_cm<optab><mode>): Likewise.
650 (aarch64_cm<optab>di): Likewise.
651 (aarch64_cm<optab><mode>): Likewise.
652 (aarch64_cm<optab>di): Likewise.
653 (aarch64_cmtst<mode>): Likewise.
654 (aarch64_cmtstdi): Likewise.
655 (aarch64_cm<optab><mode>): Likewise.
656 (*aarch64_fac<optab><mode>): Likewise.
657 (aarch64_addp<mode>): Likewise.
658 (aarch64_addpdi): Likewise.
659 (sqrt<mode>2): Likewise.
660 (vec_load_lanesoi<mode>): Likewise.
661 (vec_store_lanesoi<mode>): Likewise.
662 (vec_load_lanesci<mode>): Likewise.
663 (vec_store_lanesci<mode>): Likewise.
664 (vec_load_lanesxi<mode>): Likewise.
665 (vec_store_lanesxi<mode>): Likewise.
666 (*aarch64_mov<mode>): Likewise.
667 (aarch64_ld2<mode>_dreg): Likewise.
668 (aarch64_ld2<mode>_dreg): Likewise.
669 (aarch64_ld3<mode>_dreg): Likewise.
670 (aarch64_ld3<mode>_dreg): Likewise.
671 (aarch64_ld4<mode>_dreg): Likewise.
672 (aarch64_ld4<mode>_dreg): Likewise.
673 (aarch64_tbl1<mode>): Likewise.
674 (aarch64_tbl2v16qi): Likewise.
675 (aarch64_combinev16qi): Likewise.
676 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
677 (aarch64_st2<mode>_dreg): Likewise.
678 (aarch64_st2<mode>_dreg): Likewise.
679 (aarch64_st3<mode>_dreg): Likewise.
680 (aarch64_st3<mode>_dreg): Likewise.
681 (aarch64_st4<mode>_dreg): Likewise.
682 (aarch64_st4<mode>_dreg): Likewise.
683 (*aarch64_simd_ld1r<mode>): Likewise.
684 (aarch64_frecpe<mode>): Likewise.
685 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
686 (aarch64_frecps<mode>): Likewise.
688 2014-04-07 Michael Collison <michael.collison@linaro.org>
690 Backport from trunk r203613
691 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
693 * config/arm/iterators.md (V_elem_ch): New.
695 (VQH_type): Likewise.
696 * config/arm/arm.md (is_neon_type): New.
697 (conds): Use is_neon_type.
698 (anddi3_insn): Update type attribute.
699 (xordi3_insn): Likewise.
700 (one_cmpldi2): Likewise.
701 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
702 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
703 (*movmisalign<mode>_neon_store): Likewise.
704 (*movmisalign<mode>_neon_load): Likewise.
705 (vec_set<mode>_internal): Likewise.
706 (vec_set<mode>_internal): Likewise.
707 (vec_setv2di_internal): Likewise.
708 (vec_extract<mode>): Likewise.
709 (vec_extract<mode>): Likewise.
710 (vec_extractv2di): Likewise.
711 (*add<mode>3_neon): Likewise.
712 (adddi3_neon): Likewise.
713 (*sub<mode>3_neon): Likewise.
714 (subdi3_neon): Likewise.
715 (fma<VCVTF:mode>4): Likewise.
716 (fma<VCVTF:mode>4_intrinsic): Likewise.
717 (*fmsub<VCVTF:mode>4): Likewise.
718 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
719 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
720 (ior<mode>3): Likewise.
721 (and<mode>3): Likewise.
722 (orn<mode>3_neon): Likewise.
723 (orndi3_neon): Likewise.
724 (bic<mode>3_neon): Likewise.
725 (bicdi3_neon): Likewise.
726 (xor<mode>3): Likewise.
727 (one_cmpl<mode>2): Likewise.
728 (abs<mode>2): Likewise.
729 (neg<mode>2): Likewise.
730 (negdi2_neon): Likewise.
731 (*umin<mode>3_neon): Likewise.
732 (*umax<mode>3_neon): Likewise.
733 (*smin<mode>3_neon): Likewise.
734 (*smax<mode>3_neon): Likewise.
735 (vashl<mode>3): Likewise.
736 (vashr<mode>3_imm): Likewise.
737 (vlshr<mode>3_imm): Likewise.
738 (ashl<mode>3_signed): Likewise.
739 (ashl<mode>3_unsigned): Likewise.
740 (neon_load_count): Likewise.
741 (ashldi3_neon_noclobber): Likewise.
742 (ashldi3_neon): Likewise.
743 (signed_shift_di3_neon): Likewise.
744 (unsigned_shift_di3_neon): Likewise.
745 (ashrdi3_neon_imm_noclobber): Likewise.
746 (lshrdi3_neon_imm_noclobber): Likewise.
747 (<shift>di3_neon): Likewise.
748 (widen_ssum<mode>3): Likewise.
749 (widen_usum<mode>3): Likewise.
750 (quad_halves_<code>v4si): Likewise.
751 (quad_halves_<code>v4sf): Likewise.
752 (quad_halves_<code>v8hi): Likewise.
753 (quad_halves_<code>v16qi): Likewise.
754 (reduc_splus_v2di): Likewise.
755 (neon_vpadd_internal<mode>): Likewise.
756 (neon_vpsmin<mode>): Likewise.
757 (neon_vpsmax<mode>): Likewise.
758 (neon_vpumin<mode>): Likewise.
759 (neon_vpumax<mode>): Likewise.
760 (*ss_add<mode>_neon): Likewise.
761 (*us_add<mode>_neon): Likewise.
762 (*ss_sub<mode>_neon): Likewise.
763 (*us_sub<mode>_neon): Likewise.
764 (neon_vadd<mode>_unspec): Likewise.
765 (neon_vaddl<mode>): Likewise.
766 (neon_vaddw<mode>): Likewise.
767 (neon_vhadd<mode>): Likewise.
768 (neon_vqadd<mode>): Likewise.
769 (neon_vaddhn<mode>): Likewise.
770 (neon_vmul<mode>): Likewise.
771 (neon_vfms<VCVTF:mode>): Likewise.
772 (neon_vmlal<mode>): Likewise.
773 (neon_vmls<mode>): Likewise.
774 (neon_vmlsl<mode>): Likewise.
775 (neon_vqdmulh<mode>): Likewise.
776 (neon_vqdmlal<mode>): Likewise.
777 (neon_vqdmlsl<mode>): Likewise.
778 (neon_vmull<mode>): Likewise.
779 (neon_vqdmull<mode>): Likewise.
780 (neon_vsub<mode>_unspec): Likewise.
781 (neon_vsubl<mode>): Likewise.
782 (neon_vsubw<mode>): Likewise.
783 (neon_vqsub<mode>): Likewise.
784 (neon_vhsub<mode>): Likewise.
785 (neon_vsubhn<mode>): Likewise.
786 (neon_vceq<mode>): Likewise.
787 (neon_vcge<mode>): Likewise.
788 (neon_vcgeu<mode>): Likewise.
789 (neon_vcgt<mode>): Likewise.
790 (neon_vcgtu<mode>): Likewise.
791 (neon_vcle<mode>): Likewise.
792 (neon_vclt<mode>): Likewise.
793 (neon_vcage<mode>): Likewise.
794 (neon_vcagt<mode>): Likewise.
795 (neon_vtst<mode>): Likewise.
796 (neon_vabd<mode>): Likewise.
797 (neon_vabdl<mode>): Likewise.
798 (neon_vaba<mode>): Likewise.
799 (neon_vabal<mode>): Likewise.
800 (neon_vmax<mode>): Likewise.
801 (neon_vmin<mode>): Likewise.
802 (neon_vpaddl<mode>): Likewise.
803 (neon_vpadal<mode>): Likewise.
804 (neon_vpmax<mode>): Likewise.
805 (neon_vpmin<mode>): Likewise.
806 (neon_vrecps<mode>): Likewise.
807 (neon_vrsqrts<mode>): Likewise.
808 (neon_vqabs<mode>): Likewise.
809 (neon_vqneg<mode>): Likewise.
810 (neon_vcls<mode>): Likewise.
811 (clz<mode>2): Likewise.
812 (popcount<mode>2): Likewise.
813 (neon_vrecpe<mode>): Likewise.
814 (neon_vrsqrte<mode>): Likewise.
815 (neon_vget_lane<mode>_sext_internal): Likewise.
816 (neon_vget_lane<mode>_zext_internal): Likewise.
817 (neon_vdup_n<mode>): Likewise.
818 (neon_vdup_n<mode>): Likewise.
819 (neon_vdup_nv2di): Likewise.
820 (neon_vdup_lane<mode>_interal): Likewise.
821 (*neon_vswp<mode>): Likewise.
822 (neon_vcombine<mode>): Likewise.
823 (float<mode><V_cvtto>2): Likewise.
824 (floatuns<mode><V_cvtto>2): Likewise.
825 (fix_trunc<mode><V_cvtto>2): Likewise.
826 (fixuns_trunc<mode><V_cvtto>2
827 (neon_vcvt<mode>): Likewise.
828 (neon_vcvt<mode>): Likewise.
829 (neon_vcvtv4sfv4hf): Likewise.
830 (neon_vcvtv4hfv4sf): Likewise.
831 (neon_vcvt_n<mode>): Likewise.
832 (neon_vcvt_n<mode>): Likewise.
833 (neon_vmovn<mode>): Likewise.
834 (neon_vqmovn<mode>): Likewise.
835 (neon_vqmovun<mode>): Likewise.
836 (neon_vmovl<mode>): Likewise.
837 (neon_vmul_lane<mode>): Likewise.
838 (neon_vmul_lane<mode>): Likewise.
839 (neon_vmull_lane<mode>): Likewise.
840 (neon_vqdmull_lane<mode>): Likewise.
841 (neon_vqdmulh_lane<mode>): Likewise.
842 (neon_vqdmulh_lane<mode>): Likewise.
843 (neon_vmla_lane<mode>): Likewise.
844 (neon_vmla_lane<mode>): Likewise.
845 (neon_vmlal_lane<mode>): Likewise.
846 (neon_vqdmlal_lane<mode>): Likewise.
847 (neon_vmls_lane<mode>): Likewise.
848 (neon_vmls_lane<mode>): Likewise.
849 (neon_vmlsl_lane<mode>): Likewise.
850 (neon_vqdmlsl_lane<mode>): Likewise.
851 (neon_vext<mode>): Likewise.
852 (neon_vrev64<mode>): Likewise.
853 (neon_vrev32<mode>): Likewise.
854 (neon_vrev16<mode>): Likewise.
855 (neon_vbsl<mode>_internal): Likewise.
856 (neon_vshl<mode>): Likewise.
857 (neon_vqshl<mode>): Likewise.
858 (neon_vshr_n<mode>): Likewise.
859 (neon_vshrn_n<mode>): Likewise.
860 (neon_vqshrn_n<mode>): Likewise.
861 (neon_vqshrun_n<mode>): Likewise.
862 (neon_vshl_n<mode>): Likewise.
863 (neon_vqshl_n<mode>): Likewise.
864 (neon_vqshlu_n<mode>): Likewise.
865 (neon_vshll_n<mode>): Likewise.
866 (neon_vsra_n<mode>): Likewise.
867 (neon_vsri_n<mode>): Likewise.
868 (neon_vsli_n<mode>): Likewise.
869 (neon_vtbl1v8qi): Likewise.
870 (neon_vtbl2v8qi): Likewise.
871 (neon_vtbl3v8qi): Likewise.
872 (neon_vtbl4v8qi): Likewise.
873 (neon_vtbl1v16qi): Likewise.
874 (neon_vtbl2v16qi): Likewise.
875 (neon_vcombinev16qi): Likewise.
876 (neon_vtbx1v8qi): Likewise.
877 (neon_vtbx2v8qi): Likewise.
878 (neon_vtbx3v8qi): Likewise.
879 (neon_vtbx4v8qi): Likewise.
880 (*neon_vtrn<mode>_insn): Likewise.
881 (*neon_vzip<mode>_insn): Likewise.
882 (*neon_vuzp<mode>_insn): Likewise.
883 (neon_vld1<mode>): Likewise.
884 (neon_vld1_lane<mode>): Likewise.
885 (neon_vld1_lane<mode>): Likewise.
886 (neon_vld1_dup<mode>): Likewise.
887 (neon_vld1_dup<mode>): Likewise.
888 (neon_vld1_dupv2di): Likewise.
889 (neon_vst1<mode>): Likewise.
890 (neon_vst1_lane<mode>): Likewise.
891 (neon_vst1_lane<mode>): Likewise.
892 (neon_vld2<mode>): Likewise.
893 (neon_vld2<mode>): Likewise.
894 (neon_vld2_lane<mode>): Likewise.
895 (neon_vld2_lane<mode>): Likewise.
896 (neon_vld2_dup<mode>): Likewise.
897 (neon_vst2<mode>): Likewise.
898 (neon_vst2<mode>): Likewise.
899 (neon_vst2_lane<mode>): Likewise.
900 (neon_vst2_lane<mode>): Likewise.
901 (neon_vld3<mode>): Likewise.
902 (neon_vld3qa<mode>): Likewise.
903 (neon_vld3qb<mode>): Likewise.
904 (neon_vld3_lane<mode>): Likewise.
905 (neon_vld3_lane<mode>): Likewise.
906 (neon_vld3_dup<mode>): Likewise.
907 (neon_vst3<mode>): Likewise.
908 (neon_vst3qa<mode>): Likewise.
909 (neon_vst3qb<mode>): Likewise.
910 (neon_vst3_lane<mode>): Likewise.
911 (neon_vst3_lane<mode>): Likewise.
912 (neon_vld4<mode>): Likewise.
913 (neon_vld4qa<mode>): Likewise.
914 (neon_vld4qb<mode>): Likewise.
915 (neon_vld4_lane<mode>): Likewise.
916 (neon_vld4_lane<mode>): Likewise.
917 (neon_vld4_dup<mode>): Likewise.
918 (neon_vst4<mode>): Likewise.
919 (neon_vst4qa<mode>): Likewise.
920 (neon_vst4qb<mode>): Likewise.
921 (neon_vst4_lane<mode>): Likewise.
922 (neon_vst4_lane<mode>): Likewise.
923 (neon_vec_unpack<US>_lo_<mode>): Likewise.
924 (neon_vec_unpack<US>_hi_<mode>): Likewise.
925 (neon_vec_<US>mult_lo_<mode>): Likewise.
926 (neon_vec_<US>mult_hi_<mode>): Likewise.
927 (neon_vec_<US>shiftl_<mode>): Likewise.
928 (neon_unpack<US>_<mode>): Likewise.
929 (neon_vec_<US>mult_<mode>): Likewise.
930 (vec_pack_trunc_<mode>): Likewise.
931 (neon_vec_pack_trunc_<mode>): Likewise.
932 (neon_vabd<mode>_2): Likewise.
933 (neon_vabd<mode>_3): Likewise.
935 2014-04-07 Michael Collison <michael.collison@linaro.org>
937 Backport from trunk r203612
938 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
940 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
941 (load_pair): Update type attribute.
942 (store_pair): Update type attribute.
943 * config/aarch64/iterators.md (q): New.
945 2014-04-07 Michael Collison <michael.collison@linaro.org>
947 Backport from trunk r203611
948 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
950 * config/arm/types.md: Add new types for Neon insns.
952 2014-04-07 Michael Collison <michael.collison@linaro.org>
954 Backport from trunk r203241
955 2013-10-07 Renlin Li <Renlin.Li@arm.com>
957 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
959 2014-04-07 Michael Collison <michael.collison@linaro.org>
961 Backport from trunk r202560
962 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
964 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
965 Set type attribute correctly. Set predicable_short_it attribute.
966 (cmpsi_shiftsi): Remove %? from output template.
968 2014-04-07 Michael Collison <michael.collison@linaro.org>
970 Backport from trunk r202448
971 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
973 * config/aarch64/aarch64.md (generic_sched): New.
974 * config/aarch64/aarch64-generic.md (load): Make conditional
975 on generic_sched attribute.
978 2014-04-07 Michael Collison <michael.collison@linaro.org>
980 Backport from trunk r202334
981 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
983 * config/aarch64/aarch64.md
984 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
985 is fpsimd_<load/store>2.
986 (load_pair<mode>): Likewise.
987 (store_pair<mode>): Likewise.
989 2014-04-07 Michael Collison <michael.collison@linaro.org>
991 Backport from trunk r202333
992 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
994 * config/arm/types.md (type): Add "mrs" type.
995 * config/aarch64/aarch64.md
996 (aarch64_load_tp_hard): Make type "mrs".
998 (load_tp_hard): Make type "mrs".
999 * config/arm/cortex-a15.md: Update with new attributes.
1000 * config/arm/cortex-a5.md: Update with new attributes.
1001 * config/arm/cortex-a53.md: Update with new attributes.
1002 * config/arm/cortex-a7.md: Update with new attributes.
1003 * config/arm/cortex-a8.md: Update with new attributes.
1004 * config/arm/cortex-a9.md: Update with new attributes.
1005 * config/arm/cortex-m4.md: Update with new attributes.
1006 * config/arm/cortex-r4.md: Update with new attributes.
1007 * config/arm/fa526.md: Update with new attributes.
1008 * config/arm/fa606te.md: Update with new attributes.
1009 * config/arm/fa626te.md: Update with new attributes.
1010 * config/arm/fa726te.md: Update with new attributes.
1012 2014-04-07 Michael Collison <michael.collison@linaro.org>
1014 Backport from trunk r202332
1015 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1017 * config/aarch64/aarch64.md
1018 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1019 (*movtf_aarch64): Likewise.
1021 (thumb1_movdi_insn): Use "multiple" for type where more than one
1022 instruction is used for a move.
1023 (*arm32_movhf): Likewise.
1024 (*thumb_movdf_insn): Likewise.
1026 2014-04-07 Michael Collison <michael.collison@linaro.org>
1028 Backport from trunk r202331
1029 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1031 * config/arm/types.md (type): Rename fcpys to fmov.
1033 (*arm_movsi_vfp): Rename type fcpys as fmov.
1034 (*thumb2_movsi_vfp): Likewise
1035 (*movhf_vfp_neon): Likewise
1036 (*movhf_vfp): Likewise
1037 (*movsf_vfp): Likewise
1038 (*thumb2_movsf_vfp): Likewise
1039 (*movsfcc_vfp): Likewise
1040 (*thumb2_movsfcc_vfp): Likewise
1041 * config/aarch64/aarch64-simd.md
1042 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1043 * config/aarch64/aarch64.md
1044 (*movsi_aarch64): Replace type mov_reg with fmovs.
1045 (*movdi_aarch64): Likewise
1046 (*movsf_aarch64): Likewise
1047 (*movdf_aarch64): Likewise
1049 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1050 * config/arm/iwmmxt.md
1051 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1052 * config/arm/arm1020e.md: Update with new attributes.
1053 * config/arm/cortex-a15-neon.md: Update with new attributes.
1054 * config/arm/cortex-a5.md: Update with new attributes.
1055 * config/arm/cortex-a53.md: Update with new attributes.
1056 * config/arm/cortex-a7.md: Update with new attributes.
1057 * config/arm/cortex-a8-neon.md: Update with new attributes.
1058 * config/arm/cortex-a9.md: Update with new attributes.
1059 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1060 * config/arm/cortex-r4f.md: Update with new attributes.
1061 * config/arm/marvell-pj4.md: Update with new attributes.
1062 * config/arm/vfp11.md: Update with new attributes.
1064 2014-04-07 Michael Collison <michael.collison@linaro.org>
1066 Backport from trunk r202330
1067 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1069 * config/aarch64/aarch64.md
1070 (*madd<mode>): Fix type attribute.
1071 (*maddsi_uxtw): Likewise.
1072 (*msub<mode>): Likewise.
1073 (*msubsi_uxtw): Likewise.
1074 (<su_optab>maddsidi4): Likewise.
1075 (<su_optab>msubsidi4): Likewise.
1077 2014-04-07 Michael Collison <michael.collison@linaro.org>
1079 Backport from trunk r202329
1080 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1082 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1083 * config/arm/arm.md (core_cycles): Remove fdiv.
1084 * config/arm/vfp.md:
1085 (*sqrtsf2_vfp): Update for attribute changes.
1086 (*sqrtdf2_vfp): Likewise.
1087 * config/aarch64/aarch64.md:
1088 (sqrt<mode>2): Update for attribute changes.
1089 * config/arm/arm1020e.md: Update with new attributes.
1090 * config/arm/cortex-a15-neon.md: Update with new attributes.
1091 * config/arm/cortex-a5.md: Update with new attributes.
1092 * config/arm/cortex-a53.md: Update with new attributes.
1093 * config/arm/cortex-a7.md: Update with new attributes.
1094 * config/arm/cortex-a8-neon.md: Update with new attributes.
1095 * config/arm/cortex-a9.md: Update with new attributes.
1096 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1097 * config/arm/cortex-r4f.md: Update with new attributes.
1098 * config/arm/marvell-pj4.md: Update with new attributes.
1099 * config/arm/vfp11.md: Update with new attributes.
1101 2014-04-07 Michael Collison <michael.collison@linaro.org>
1103 Backport from trunk r202328
1104 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1106 * config/arm/types.md
1107 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
1108 * config/aarch64/aarch64.md
1109 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
1111 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
1112 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
1113 (float<GPI:mode><GPF:mode>2): Likewise.
1115 (*truncsisf2_vfp): Update with new attributes.
1116 (*truncsidf2_vfp): Likewise.
1117 (fixuns_truncsfsi2): Likewise.
1118 (fixuns_truncdfsi2): Likewise.
1119 (*floatsisf2_vfp): Likewise.
1120 (*floatsidf2_vfp): Likewise.
1121 (floatunssisf2): Likewise.
1122 (floatunssidf2): Likewise.
1123 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
1124 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
1125 * config/arm/arm1020e.md: Update with new attributes.
1126 * config/arm/cortex-a15-neon.md: Update with new attributes.
1127 * config/arm/cortex-a5.md: Update with new attributes.
1128 * config/arm/cortex-a53.md: Update with new attributes.
1129 * config/arm/cortex-a7.md: Update with new attributes.
1130 * config/arm/cortex-a8-neon.md: Update with new attributes.
1131 * config/arm/cortex-a9.md: Update with new attributes.
1132 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1133 * config/arm/cortex-r4f.md: Update with new attributes.
1134 * config/arm/marvell-pj4.md: Update with new attributes.
1135 * config/arm/vfp11.md: Update with new attributes.
1137 2014-04-07 Michael Collison <michael.collison@linaro.org>
1139 Backport from trunk r202323
1140 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1142 * config/arm/types.md: Add "no_insn", "multiple" and "untyped"
1144 * config/arm/arm-fixed.md: Add type attribute to all insn
1146 (add<mode>3): Add type attribute.
1147 (add<mode>3): Likewise.
1148 (usadd<mode>3): Likewise.
1149 (ssadd<mode>3): Likewise.
1150 (sub<mode>3): Likewise.
1151 (sub<mode>3): Likewise.
1152 (ussub<mode>3): Likewise.
1153 (sssub<mode>3): Likewise.
1154 (ssmulsa3): Likewise.
1155 (usmulusa3): Likewise.
1156 (arm_usatsihi): Likewise.
1158 (*movdi_vfp): Add types for all instructions.
1159 (*movdi_vfp_cortexa8): Likewise.
1160 (*movhf_vfp_neon): Likewise.
1161 (*movhf_vfp): Likewise.
1162 (*movdf_vfp): Likewise.
1163 (*thumb2_movdf_vfp): Likewise.
1164 (*thumb2_movdfcc_vfp): Likewise.
1165 * config/arm/arm.md: Add type attribute to all insn patterns.
1166 (*thumb1_adddi3): Add type attribute.
1167 (*arm_adddi3): Likewise.
1168 (*adddi_sesidi_di): Likewise.
1169 (*adddi_zesidi_di): Likewise.
1170 (*thumb1_addsi3): Likewise.
1171 (addsi3_compare0): Likewise.
1172 (*addsi3_compare0_scratch): Likewise.
1173 (*compare_negsi_si): Likewise.
1174 (cmpsi2_addneg): Likewise.
1175 (*addsi3_carryin_<optab>): Likewise.
1176 (*addsi3_carryin_alt2_<optab>): Likewise.
1177 (*addsi3_carryin_clobercc_<optab>): Likewise.
1178 (*subsi3_carryin): Likewise.
1179 (*subsi3_carryin_const): Likewise.
1180 (*subsi3_carryin_compare): Likewise.
1181 (*subsi3_carryin_compare_const): Likewise.
1182 (*arm_subdi3): Likewise.
1183 (*thumb_subdi3): Likewise.
1184 (*subdi_di_zesidi): Likewise.
1185 (*subdi_di_sesidi): Likewise.
1186 (*subdi_zesidi_di): Likewise.
1187 (*subdi_sesidi_di): Likewise.
1188 (*subdi_zesidi_ze): Likewise.
1189 (thumb1_subsi3_insn): Likewise.
1190 (*arm_subsi3_insn): Likewise.
1191 (*anddi3_insn): Likewise.
1192 (*anddi_zesidi_di): Likewise.
1193 (*anddi_sesdi_di): Likewise.
1194 (*ne_zeroextracts): Likewise.
1195 (*ne_zeroextracts): Likewise.
1196 (*ite_ne_zeroextr): Likewise.
1197 (*ite_ne_zeroextr): Likewise.
1198 (*anddi_notdi_di): Likewise.
1199 (*anddi_notzesidi): Likewise.
1200 (*anddi_notsesidi): Likewise.
1201 (andsi_notsi_si): Likewise.
1202 (thumb1_bicsi3): Likewise.
1203 (*iordi3_insn): Likewise.
1204 (*iordi_zesidi_di): Likewise.
1205 (*iordi_sesidi_di): Likewise.
1206 (*thumb1_iorsi3_insn): Likewise.
1207 (*xordi3_insn): Likewise.
1208 (*xordi_zesidi_di): Likewise.
1209 (*xordi_sesidi_di): Likewise.
1210 (*arm_xorsi3): Likewise.
1211 (*andsi_iorsi3_no): Likewise.
1212 (*smax_0): Likewise.
1213 (*smax_m1): Likewise.
1214 (*arm_smax_insn): Likewise.
1215 (*smin_0): Likewise.
1216 (*arm_smin_insn): Likewise.
1217 (*arm_umaxsi3): Likewise.
1218 (*arm_uminsi3): Likewise.
1219 (*minmax_arithsi): Likewise.
1220 (*minmax_arithsi_): Likewise.
1221 (*satsi_<SAT:code>): Likewise.
1222 (arm_ashldi3_1bit): Likewise.
1223 (arm_ashrdi3_1bit): Likewise.
1224 (arm_lshrdi3_1bit): Likewise.
1225 (*arm_negdi2): Likewise.
1226 (*thumb1_negdi2): Likewise.
1227 (*arm_negsi2): Likewise.
1228 (*thumb1_negsi2): Likewise.
1229 (*negdi_extendsid): Likewise.
1230 (*negdi_zero_extend): Likewise.
1231 (*arm_abssi2): Likewise.
1232 (*thumb1_abssi2): Likewise.
1233 (*arm_neg_abssi2): Likewise.
1234 (*thumb1_neg_abss): Likewise.
1235 (one_cmpldi2): Likewise.
1236 (extend<mode>di2): Likewise.
1237 (*compareqi_eq0): Likewise.
1238 (*arm_extendhisi2addsi): Likewise.
1239 (*arm_movdi): Likewise.
1240 (*thumb1_movdi_insn): Likewise.
1241 (*arm_movt): Likewise.
1242 (*thumb1_movsi_insn): Likewise.
1243 (pic_add_dot_plus_four): Likewise.
1244 (pic_add_dot_plus_eight): Likewise.
1245 (tls_load_dot_plus_eight): Likewise.
1246 (*thumb1_movhi_insn): Likewise.
1247 (*thumb1_movsf_insn): Likewise.
1248 (*movdf_soft_insn): Likewise.
1249 (*thumb_movdf_insn): Likewise.
1250 (cbranchsi4_insn): Likewise.
1251 (cbranchsi4_scratch): Likewise.
1252 (*negated_cbranchsi4): Likewise.
1253 (*tbit_cbranch): Likewise.
1254 (*tlobits_cbranch): Likewise.
1255 (*tstsi3_cbranch): Likewise.
1256 (*cbranchne_decr1): Likewise.
1257 (*addsi3_cbranch): Likewise.
1258 (*addsi3_cbranch_scratch): Likewise.
1259 (*arm_cmpdi_insn): Likewise.
1260 (*arm_cmpdi_unsig): Likewise.
1261 (*arm_cmpdi_zero): Likewise.
1262 (*thumb_cmpdi_zero): Likewise.
1263 (*deleted_compare): Likewise.
1264 (*mov_scc): Likewise.
1265 (*mov_negscc): Likewise.
1266 (*mov_notscc): Likewise.
1267 (*cstoresi_eq0_thumb1_insn): Likewise.
1268 (cstoresi_nltu_thumb1): Likewise.
1269 (cstoresi_ltu_thu): Likewise.
1270 (thumb1_addsi3_addgeu): Likewise.
1271 (*arm_jump): Likewise.
1272 (*thumb_jump): Likewise.
1273 (*check_arch2): Likewise.
1274 (arm_casesi_internal): Likewise.
1275 (thumb1_casesi_dispatch): Likewise.
1276 (*arm_indirect_jump): Likewise.
1277 (*thumb1_indirect_jump): Likewise.
1279 (*and_scc): Likewise.
1280 (*ior_scc): Likewise.
1281 (*compare_scc): Likewise.
1282 (*cond_move): Likewise.
1283 (*cond_arith): Likewise.
1284 (*cond_sub): Likewise.
1285 (*cmp_ite0): Likewise.
1286 (*cmp_ite1): Likewise.
1287 (*cmp_and): Likewise.
1288 (*cmp_ior): Likewise.
1289 (*ior_scc_scc): Likewise.
1290 (*ior_scc_scc_cmp): Likewise.
1291 (*and_scc_scc): Likewise.
1292 (*and_scc_scc_cmp): Likewise.
1293 (*and_scc_scc_nod): Likewise.
1294 (*negscc): Likewise.
1295 (movcond_addsi): Likewise.
1296 (movcond): Likewise.
1297 (*ifcompare_plus_move): Likewise.
1298 (*if_plus_move): Likewise.
1299 (*ifcompare_move_plus): Likewise.
1300 (*if_move_plus): Likewise.
1301 (*ifcompare_arith_arith): Likewise.
1302 (*if_arith_arith): Likewise.
1303 (*ifcompare_arith_move): Likewise.
1304 (*if_arith_move): Likewise.
1305 (*ifcompare_move_arith): Likewise.
1306 (*if_move_arith): Likewise.
1307 (*ifcompare_move_not): Likewise.
1308 (*if_move_not): Likewise.
1309 (*ifcompare_not_move): Likewise.
1310 (*if_not_move): Likewise.
1311 (*ifcompare_shift_move): Likewise.
1312 (*if_shift_move): Likewise.
1313 (*ifcompare_move_shift): Likewise.
1314 (*if_move_shift): Likewise.
1315 (*ifcompare_shift_shift): Likewise.
1316 (*ifcompare_not_arith): Likewise.
1317 (*ifcompare_arith_not): Likewise.
1318 (*if_arith_not): Likewise.
1319 (*ifcompare_neg_move): Likewise.
1320 (*if_neg_move): Likewise.
1321 (*ifcompare_move_neg): Likewise.
1322 (*if_move_neg): Likewise.
1323 (prologue_thumb1_interwork): Likewise.
1324 (*cond_move_not): Likewise.
1325 (*sign_extract_onebit): Likewise.
1326 (*not_signextract_onebit): Likewise.
1327 (stack_tie): Likewise.
1328 (align_4): Likewise.
1329 (align_8): Likewise.
1330 (consttable_end): Likewise.
1331 (consttable_1): Likewise.
1332 (consttable_2): Likewise.
1333 (consttable_4): Likewise.
1334 (consttable_8): Likewise.
1335 (consttable_16): Likewise.
1336 (*thumb1_tablejump): Likewise.
1337 (prefetch): Likewise.
1338 (force_register_use): Likewise.
1339 (thumb_eh_return): Likewise.
1340 (load_tp_hard): Likewise.
1341 (load_tp_soft): Likewise.
1342 (tlscall): Likewise.
1343 (*arm_movtas_ze): Likewise.
1344 (*arm_rev): Likewise.
1345 (*arm_revsh): Likewise.
1346 (*arm_rev16): Likewise.
1347 * config/arm/thumb2.md
1348 (*thumb2_smaxsi3): Likewise.
1349 (*thumb2_sminsi3): Likewise.
1350 (*thumb32_umaxsi3): Likewise.
1351 (*thumb2_uminsi3): Likewise.
1352 (*thumb2_negdi2): Likewise.
1353 (*thumb2_abssi2): Likewise.
1354 (*thumb2_neg_abss): Likewise.
1355 (*thumb2_movsi_insn): Likewise.
1356 (tls_load_dot_plus_four): Likewise.
1357 (*thumb2_movhi_insn): Likewise.
1358 (*thumb2_mov_scc): Likewise.
1359 (*thumb2_mov_negs): Likewise.
1360 (*thumb2_mov_negs): Likewise.
1361 (*thumb2_mov_nots): Likewise.
1362 (*thumb2_mov_nots): Likewise.
1363 (*thumb2_movsicc_): Likewise.
1364 (*thumb2_movsfcc_soft_insn): Likewise.
1365 (*thumb2_indirect_jump): Likewise.
1366 (*thumb2_and_scc): Likewise.
1367 (*thumb2_ior_scc): Likewise.
1368 (*thumb2_ior_scc_strict_it): Likewise.
1369 (*thumb2_cond_move): Likewise.
1370 (*thumb2_cond_arith): Likewise.
1371 (*thumb2_cond_ari): Likewise.
1372 (*thumb2_cond_sub): Likewise.
1373 (*thumb2_negscc): Likewise.
1374 (*thumb2_movcond): Likewise.
1375 (thumb2_casesi_internal): Likewise.
1376 (thumb2_casesi_internal_pic): Likewise.
1377 (*thumb2_alusi3_short): Likewise.
1378 (*thumb2_mov<mode>_shortim): Likewise.
1379 (*thumb2_addsi_short): Likewise.
1380 (*thumb2_subsi_short): Likewise.
1381 (thumb2_addsi3_compare0): Likewise.
1382 (*thumb2_cbz): Likewise.
1383 (*thumb2_cbnz): Likewise.
1384 (*thumb2_one_cmplsi2_short): Likewise.
1385 (*thumb2_negsi2_short): Likewise.
1386 (*orsi_notsi_si): Likewise.
1387 * config/arm/arm1020e.md: Update with new attributes.
1388 * config/arm/arm1026ejs.md: Update with new attributes.
1389 * config/arm/arm1136jfs.md: Update with new attributes.
1390 * config/arm/arm926ejs.md: Update with new attributes.
1391 * config/arm/cortex-a15.md: Update with new attributes.
1392 * config/arm/cortex-a5.md: Update with new attributes.
1393 * config/arm/cortex-a53.md: Update with new attributes.
1394 * config/arm/cortex-a7.md: Update with new attributes.
1395 * config/arm/cortex-a8.md: Update with new attributes.
1396 * config/arm/cortex-a9.md: Update with new attributes.
1397 * config/arm/cortex-m4.md: Update with new attributes.
1398 * config/arm/cortex-r4.md: Update with new attributes.
1399 * config/arm/fa526.md: Update with new attributes.
1400 * config/arm/fa606te.md: Update with new attributes.
1401 * config/arm/fa626te.md: Update with new attributes.
1402 * config/arm/fa726te.md: Update with new attributes.
1404 2014-04-07 Michael Collison <michael.collison@linaro.org>
1406 Backport from trunk r202292
1407 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1409 * config/aarch64/aarch64.md
1410 (type): Remove frecpe, frecps, frecpx.
1411 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
1412 fix to be a TARGET_SIMD instruction.
1413 (aarch64_frecps): Remove.
1414 * config/aarch64/aarch64-simd.md
1415 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
1416 (aarch64_frecps<mode>): Handle all float/vector of float modes.
1418 2014-04-07 Michael Collison <michael.collison@linaro.org>
1420 Backport from trunk r202291
1421 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1422 Sofiane Naci <sofiane.naci@arm.com>
1424 * config/arm/types.md (define_attr "type"):
1426 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
1428 into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm", "alu_ext",
1429 "alu_reg", "alus_ext", "alus_reg", "bfm", "csel", "logic_reg",
1430 "logics_reg", "rev".
1432 into "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
1434 Expand "arlo_shift_reg"
1435 into "alu_shift_reg", "alus_shift_reg", "logic_shift_reg",
1437 Expand "clz" into "clz, "rbit".
1438 Rename "shift" to "shift_imm".
1439 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
1441 Update for attribute changes all occurrences of arlo_* and
1443 * config/arm/arm-fixed.md: Update for attribute changes
1444 all occurrences of arlo_* types.
1445 * config/arm/thumb2.md: Update for attribute changes all occurrences
1447 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
1448 (cortexa7_older_only): Likewise.
1449 (cortexa7_younger): Likewise.
1450 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
1451 (1020alu_shift_op): Likewise.
1452 (1020alu_shift_reg_op): Likewise.
1453 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
1454 (alu_shift_op): Likewise.
1455 (alu_shift_reg_op): Likewise.
1456 * config/arm/arm1136jfs.md (11_alu_op): Update for
1458 (11_alu_shift_op): Likewise.
1459 (11_alu_shift_reg_op): Likewise.
1460 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
1461 (9_alu_shift_reg_op): Likewise.
1462 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
1464 (cortex_a15_alu_shift): Likewise.
1465 (cortex_a15_alu_shift_reg): Likewise.
1466 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
1468 (cortex_a5_alu_shift): Likewise.
1469 * config/arm/cortex-a53.md
1470 (cortex_a53_alu): Update for attribute changes.
1471 (cortex_a53_alu_shift): Likewise.
1472 * config/arm/cortex-a7.md
1473 (cortex_a7_alu_imm): Update for attribute changes.
1474 (cortex_a7_alu_reg): Likewise.
1475 (cortex_a7_alu_shift): Likewise.
1476 * config/arm/cortex-a8.md
1477 (cortex_a8_alu): Update for attribute changes.
1478 (cortex_a8_alu_shift): Likewise.
1479 (cortex_a8_alu_shift_reg): Likewise.
1480 * config/arm/cortex-a9.md
1481 (cortex_a9_dp): Update for attribute changes.
1482 (cortex_a9_dp_shift): Likewise.
1483 * config/arm/cortex-m4.md
1484 (cortex_m4_alu): Update for attribute changes.
1485 * config/arm/cortex-r4.md
1486 (cortex_r4_alu): Update for attribute changes.
1487 (cortex_r4_mov): Likewise.
1488 (cortex_r4_alu_shift_reg): Likewise.
1489 * config/arm/fa526.md
1490 (526_alu_op): Update for attribute changes.
1491 (526_alu_shift_op): Likewise.
1492 * config/arm/fa606te.md
1493 (606te_alu_op): Update for attribute changes.
1494 * config/arm/fa626te.md
1495 (626te_alu_op): Update for attribute changes.
1496 (626te_alu_shift_op): Likewise.
1497 * config/arm/fa726te.md
1498 (726te_alu_op): Update for attribute changes.
1499 (726te_alu_shift_op): Likewise.
1500 (726te_alu_shift_reg_op): Likewise.
1501 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
1502 (mp626_alu_shift_op): Likewise.
1503 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
1504 (pj4_alu_conds): Likewise.
1505 (pj4_shift): Likewise.
1506 (pj4_shift_conds): Likewise.
1507 (pj4_alu_shift): Likewise.
1508 (pj4_alu_shift_conds): Likewise.
1509 * config/aarch64/aarch64.md: Update for attribute change
1510 all occurrences of arlo_* and shift* types.
1512 2014-04-07 Michael Collison <michael.collison@linaro.org>
1514 Backport from trunk r202272
1515 2013-08-02 James Greenhalgh <james.greenhalgh@arm.com>
1516 Sofiane Naci <sofiane.naci@arm.com>
1518 * config/aarch64/aarch64.md
1519 (*movti_aarch64): Rename r_2_f and f_2_r.
1520 (*movsf_aarch64): Likewise.
1521 (*movdf_aarch64): Likewise.
1522 (*movtf_aarch64): Likewise.
1523 (aarch64_movdi_<mode>low): Likewise.
1524 (aarch64_movdi_<mode>high): Likewise.
1525 (aarch64_mov<mode>high_di): Likewise.
1526 (aarch64_mov<mode>low_di): Likewise.
1527 (aarch64_movtilow_tilow): Likewise.
1528 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
1529 values to config/arm/types.md
1530 (attribute "conds"): Update for attribute change.
1531 (anddi3_insn): Likewise.
1532 (iordi3_insn): Likewise.
1533 (xordi3_insn): Likewise.
1534 (one_cmpldi2): Likewise.
1535 * config/arm/types.md (type): Add Neon types.
1536 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
1537 use "type" attribute.
1538 (movmisalign<mode>_neon_store): Likewise.
1539 (movmisalign<mode>_neon_load): Likewise.
1540 (vec_set<mode>_internal): Likewise.
1541 (vec_setv2di_internal): Likewise.
1542 (vec_extract<mode>): Likewise.
1543 (vec_extractv2di): Likewise.
1544 (add<mode>3_neon): Likewise.
1545 (adddi3_neon): Likewise.
1546 (sub<mode>3_neon): Likewise.
1547 (subdi3_neon): Likewise.
1548 (mul<mode>3_neon): Likewise.
1549 (mul<mode>3add<mode>_neon): Likewise.
1550 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
1551 (fma<VCVTF:mode>4)): Likewise.
1552 (fma<VCVTF:mode>4_intrinsic): Likewise.
1553 (fmsub<VCVTF:mode>4)): Likewise.
1554 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1555 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1556 (ior<mode>3): Likewise.
1557 (and<mode>3): Likewise.
1558 (anddi3_neon): Likewise.
1559 (orn<mode>3_neon): Likewise.
1560 (orndi3_neon): Likewise.
1561 (bic<mode>3_neon): Likewise.
1562 (bicdi3_neon): Likewise.
1563 (xor<mode>3): Likewise.
1564 (one_cmpl<mode>2): Likewise.
1565 (abs<mode>2): Likewise.
1566 (neg<mode>2): Likewise.
1567 (umin<mode>3_neon): Likewise.
1568 (umax<mode>3_neon): Likewise.
1569 (smin<mode>3_neon): Likewise.
1570 (smax<mode>3_neon): Likewise.
1571 (vashl<mode>3): Likewise.
1572 (vashr<mode>3_imm): Likewise.
1573 (vlshr<mode>3_imm): Likewise.
1574 (ashl<mode>3_signed): Likewise.
1575 (ashl<mode>3_unsigned): Likewise.
1576 (neon_load_count): Likewise.
1577 (ashldi3_neon_noclobber): Likewise.
1578 (signed_shift_di3_neon): Likewise.
1579 (unsigned_shift_di3_neon): Likewise.
1580 (ashrdi3_neon_imm_noclobber): Likewise.
1581 (lshrdi3_neon_imm_noclobber): Likewise.
1582 (widen_ssum<mode>3): Likewise.
1583 (widen_usum<mode>3): Likewise.
1584 (quad_halves_<code>v4si): Likewise.
1585 (quad_halves_<code>v4sf): Likewise.
1586 (quad_halves_<code>v8hi): Likewise.
1587 (quad_halves_<code>v16qi): Likewise.
1588 (reduc_splus_v2di): Likewise.
1589 (neon_vpadd_internal<mode>): Likewise.
1590 (neon_vpsmin<mode>): Likewise.
1591 (neon_vpsmax<mode>): Likewise.
1592 (neon_vpumin<mode>): Likewise.
1593 (neon_vpumax<mode>): Likewise.
1594 (ss_add<mode>_neon): Likewise.
1595 (us_add<mode>_neon): Likewise.
1596 (ss_sub<mode>_neon): Likewise.
1597 (us_sub<mode>_neon): Likewise.
1598 (neon_vadd<mode>_unspec): Likewise.
1599 (neon_vaddl<mode>): Likewise.
1600 (neon_vaddw<mode>): Likewise.
1601 (neon_vhadd<mode>): Likewise.
1602 (neon_vqadd<mode>): Likewise.
1603 (neon_vaddhn<mode>): Likewise.
1604 (neon_vmul<mode>): Likewise.
1605 (neon_vmla<mode>): Likewise.
1606 (neon_vmlal<mode>): Likewise.
1607 (neon_vmls<mode>): Likewise.
1608 (neon_vmlsl<mode>): Likewise.
1609 (neon_vqdmulh<mode>): Likewise.
1610 (neon_vqdmlal<mode>): Likewise.
1611 (neon_vqdmlsl<mode>): Likewise.
1612 (neon_vmull<mode>): Likewise.
1613 (neon_vqdmull<mode>): Likewise.
1614 (neon_vsub<mode>_unspec): Likewise.
1615 (neon_vsubl<mode>): Likewise.
1616 (neon_vsubw<mode>): Likewise.
1617 (neon_vqsub<mode>): Likewise.
1618 (neon_vhsub<mode>): Likewise.
1619 (neon_vsubhn<mode>): Likewise.
1620 (neon_vceq<mode>): Likewise.
1621 (neon_vcge<mode>): Likewise.
1622 (neon_vcgeu<mode>): Likewise.
1623 (neon_vcgt<mode>): Likewise.
1624 (neon_vcgtu<mode>): Likewise.
1625 (neon_vcle<mode>): Likewise.
1626 (neon_vclt<mode>): Likewise.
1627 (neon_vcage<mode>): Likewise.
1628 (neon_vcagt<mode>): Likewise.
1629 (neon_vtst<mode>): Likewise.
1630 (neon_vabd<mode>): Likewise.
1631 (neon_vabdl<mode>): Likewise.
1632 (neon_vaba<mode>): Likewise.
1633 (neon_vabal<mode>): Likewise.
1634 (neon_vmax<mode>): Likewise.
1635 (neon_vmin<mode>): Likewise.
1636 (neon_vpaddl<mode>): Likewise.
1637 (neon_vpadal<mode>): Likewise.
1638 (neon_vpmax<mode>): Likewise.
1639 (neon_vpmin<mode>): Likewise.
1640 (neon_vrecps<mode>): Likewise.
1641 (neon_vrsqrts<mode>): Likewise.
1642 (neon_vqabs<mode>): Likewise.
1643 (neon_vqneg<mode>): Likewise.
1644 (neon_vcls<mode>): Likewise.
1645 (clz<mode>2): Likewise.
1646 (popcount<mode>2): Likewise.
1647 (neon_vrecpe): Likewise.
1648 (neon_vrsqrte): Likewise.
1649 (neon_vget_lane<mode>_sext_internal): Likewise.
1650 (neon_vget_lane<mode>_zext_internal): Likewise.
1651 (neon_vdup_n<mode>): Likewise.
1652 (neon_vdup_nv2di): Likewise.
1653 (neon_vdpu_lane<mode>_internal): Likewise.
1654 (neon_vswp<mode>): Likewise.
1655 (float<mode><V_cvtto>2): Likewise.
1656 (floatuns<mode><V_cvtto>2): Likewise.
1657 (fix_trunc<mode><V_cvtto>)2): Likewise
1658 (fixuns_trunc<mode><V_cvtto)2): Likewise.
1659 (neon_vcvt<mode>): Likewise.
1660 (neon_vcvtv4sfv4hf): Likewise.
1661 (neon_vcvtv4hfv4sf): Likewise.
1662 (neon_vcvt_n<mode>): Likewise.
1663 (neon_vmovn<mode>): Likewise.
1664 (neon_vqmovn<mode>): Likewise.
1665 (neon_vqmovun<mode>): Likewise.
1666 (neon_vmovl<mode>): Likewise.
1667 (neon_vmul_lane<mode>): Likewise.
1668 (neon_vmull_lane<mode>): Likewise.
1669 (neon_vqdmull_lane<mode>): Likewise.
1670 (neon_vqdmulh_lane<mode>): Likewise.
1671 (neon_vmla_lane<mode>): Likewise.
1672 (neon_vmlal_lane<mode>): Likewise.
1673 (neon_vqdmlal_lane<mode>): Likewise.
1674 (neon_vmls_lane<mode>): Likewise.
1675 (neon_vmlsl_lane<mode>): Likewise.
1676 (neon_vqdmlsl_lane<mode>): Likewise.
1677 (neon_vext<mode>): Likewise.
1678 (neon_vrev64<mode>): Likewise.
1679 (neon_vrev32<mode>): Likewise.
1680 (neon_vrev16<mode>): Likewise.
1681 (neon_vbsl<mode>_internal): Likewise.
1682 (neon_vshl<mode>): Likewise.
1683 (neon_vqshl<mode>): Likewise.
1684 (neon_vshr_n<mode>): Likewise.
1685 (neon_vshrn_n<mode>): Likewise.
1686 (neon_vqshrn_n<mode>): Likewise.
1687 (neon_vqshrun_n<mode>): Likewise.
1688 (neon_vshl_n<mode>): Likewise.
1689 (neon_vqshl_n<mode>): Likewise.
1690 (neon_vqshlu_n<mode>): Likewise.
1691 (neon_vshll_n<mode>): Likewise.
1692 (neon_vsra_n<mode>): Likewise.
1693 (neon_vsri_n<mode>): Likewise.
1694 (neon_vsli_n<mode>): Likewise.
1695 (neon_vtbl1v8qi): Likewise.
1696 (neon_vtbl2v8qi): Likewise.
1697 (neon_vtbl3v8qi): Likewise.
1698 (neon_vtbl4v8qi): Likewise.
1699 (neon_vtbx1v8qi): Likewise.
1700 (neon_vtbx2v8qi): Likewise.
1701 (neon_vtbx3v8qi): Likewise.
1702 (neon_vtbx4v8qi): Likewise.
1703 (neon_vtrn<mode>_internal): Likewise.
1704 (neon_vzip<mode>_internal): Likewise.
1705 (neon_vuzp<mode>_internal): Likewise.
1706 (neon_vld1<mode>): Likewise.
1707 (neon_vld1_lane<mode>): Likewise.
1708 (neon_vld1_dup<mode>): Likewise.
1709 (neon_vld1_dupv2di): Likewise.
1710 (neon_vst1<mode>): Likewise.
1711 (neon_vst1_lane<mode>): Likewise.
1712 (neon_vld2<mode>): Likewise.
1713 (neon_vld2_lane<mode>): Likewise.
1714 (neon_vld2_dup<mode>): Likewise.
1715 (neon_vst2<mode>): Likewise.
1716 (neon_vst2_lane<mode>): Likewise.
1717 (neon_vld3<mode>): Likewise.
1718 (neon_vld3qa<mode>): Likewise.
1719 (neon_vld3qb<mode>): Likewise.
1720 (neon_vld3_lane<mode>): Likewise.
1721 (neon_vld3_dup<mode>): Likewise.
1722 (neon_vst3<mode>): Likewise.
1723 (neon_vst3qa<mode>): Likewise.
1724 (neon_vst3qb<mode>): Likewise.
1725 (neon_vst3_lane<mode>): Likewise.
1726 (neon_vld4<mode>): Likewise.
1727 (neon_vld4qa<mode>): Likewise.
1728 (neon_vld4qb<mode>): Likewise.
1729 (neon_vld4_lane<mode>): Likewise.
1730 (neon_vld4_dup<mode>): Likewise.
1731 (neon_vst4<mode>): Likewise.
1732 (neon_vst4qa<mode>): Likewise.
1733 (neon_vst4qb<mode>): Likewise.
1734 (neon_vst4_lane<mode>): Likewise.
1735 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1736 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1737 (neon_vec_<US>mult_lo_<mode>): Likewise.
1738 (neon_vec_<US>mult_hi_<mode>): Likewise.
1739 (neon_vec_<US>shiftl_<mode>): Likewise.
1740 (neon_unpack<US>_<mode>): Likewise.
1741 (neon_vec_<US>mult_<mode>): Likewise.
1742 (vec_pack_trunc_<mode>): Likewise.
1743 (neon_vec_pack_trunk_<mode>): Likewise.
1744 (neon_vabd<mode>_2): Likewise.
1745 (neon_vabd<mode>_3): Likewise.
1746 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
1747 (thumb2_movsi_vfp): Likewise.
1748 (movdi_vfp): Likewise.
1749 (movdi_vfp_cortexa8): Likewise.
1750 (movhf_vfp_neon): Likewise.
1751 (movhf_vfp): Likewiwse.
1752 (movsf_vfp): Likewiwse.
1753 (thumb2_movsf_vfp): Likewiwse.
1754 (movdf_vfp): Likewise.
1755 (thumb2_movdf_vfp): Likewise.
1756 (movsfcc_vfp): Likewise.
1757 (thumb2_movsfcc_vfp): Likewise.
1758 (movdfcc_vfp): Likewise.
1759 (thumb2_movdfcc_vfp): Likewise.
1760 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
1761 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
1762 (v10_v2c): Likewise.
1763 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
1765 (cortex_a15_neon_int_2): Likewise.
1766 (cortex_a15_neon_int_3): Likewise.
1767 (cortex_a15_neon_int_4): Likewise.
1768 (cortex_a15_neon_int_5): Likewise.
1769 (cortex_a15_neon_vqneg_vqabs): Likewise.
1770 (cortex_a15_neon_vmov): Likewise.
1771 (cortex_a15_neon_vaba): Likewise.
1772 (cortex_a15_neon_vaba_qqq): Likewise.
1773 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1774 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
1775 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
1776 scalar_64_32_long_scalar): Likewise.
1777 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1778 (cortex_a15_neon_mla_qqq_8_16): Likewise.
1779 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1780 lotype_qdd_64_32_long): Likewise.
1781 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1782 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1783 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
1784 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1785 (cortex_a15_neon_shift_1): Likewise.
1786 (cortex_a15_neon_shift_2): Likewise.
1787 (cortex_a15_neon_shift_3): Likewise.
1788 (cortex_a15_neon_vshl_ddd): Likewise.
1789 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1790 (cortex_a15_neon_vsra_vrsra): Likewise.
1791 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
1792 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
1793 (cortex_a15_neon_fp_vmul_ddd): Likewise.
1794 (cortex_a15_neon_fp_vmul_qqd): Likewise.
1795 (cortex_a15_neon_fp_vmla_ddd): Likewise.
1796 (cortex_a15_neon_fp_vmla_qqq): Likewise.
1797 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
1798 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
1799 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1800 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1801 (cortex_a15_neon_bp_simple): Likewise.
1802 (cortex_a15_neon_bp_2cycle): Likewise.
1803 (cortex_a15_neon_bp_3cycle): Likewise.
1804 (cortex_a15_neon_vld1_1_2_regs): Likewise.
1805 (cortex_a15_neon_vld1_3_4_regs): Likewise.
1806 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1807 (cortex_a15_neon_vld2_4_regs): Likewise.
1808 (cortex_a15_neon_vld3_vld4): Likewise.
1809 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1810 (cortex_a15_neon_vst1_3_4_regs): Likewise.
1811 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
1812 (cortex_a15_neon_vst3_vst4): Likewise.
1813 (cortex_a15_neon_vld1_vld2_lane): Likewise.
1814 (cortex_a15_neon_vld3_vld4_lane" 10
1815 (cortex_a15_neon_vst1_vst2_lane): Likewise.
1816 (cortex_a15_neon_vst3_vst4_lane): Likewise.
1817 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
1818 (cortex_a15_neon_ldm_2): Likewise.0
1819 (cortex_a15_neon_stm_2): Likewise.
1820 (cortex_a15_neon_mcr): Likewise.
1821 (cortex_a15_neon_mcr_2_mcrr): Likewise.
1822 (cortex_a15_neon_mrc): Likewise.
1823 (cortex_a15_neon_mrrc): Likewise.
1824 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
1826 (cortex_a15_alu_shift): Likewise.
1827 (cortex_a15_alu_shift_reg): Likewise.
1828 (cortex_a15_mult32): Likewise.
1829 (cortex_a15_mult64): Likewise.
1830 (cortex_a15_block): Likewise.
1831 (cortex_a15_branch): Likewise.
1832 (cortex_a15_load1): Likewise.
1833 (cortex_a15_load3): Likewise.
1834 (cortex_a15_store1): Likewise.
1835 (cortex_a15_store3): Likewise.
1836 (cortex_a15_call): Likewise.
1837 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute
1839 (cortex_a5_f2r): Likewise.
1840 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
1842 (cortex_a53_f2r): Likewise.
1843 * config/arm/cortex-a7.md
1844 (cortex_a7_branch): Update for attribute change.
1845 (cortex_a7_call): Likewise.
1846 (cortex_a7_alu_imm): Likewise.
1847 (cortex_a7_alu_reg): Likewise.
1848 (cortex_a7_alu_shift): Likewise.
1849 (cortex_a7_mul): Likewise.
1850 (cortex_a7_load1): Likewise.
1851 (cortex_a7_store1): Likewise.
1852 (cortex_a7_load2): Likewise.
1853 (cortex_a7_store2): Likewise.
1854 (cortex_a7_load3): Likewise.
1855 (cortex_a7_store3): Likewise.
1856 (cortex_a7_load4): Likewise.
1857 (cortex_a7_store4): Likewise.
1858 (cortex_a7_fpalu): Likewise.
1859 (cortex_a7_fconst): Likewise.
1860 (cortex_a7_fpmuls): Likewise.
1861 (cortex_a7_neon_mul): Likewise.
1862 (cortex_a7_fpmacs): Likewise.
1863 (cortex_a7_neon_mla: Likewise.
1864 (cortex_a7_fpmuld: Likewise.
1865 (cortex_a7_fpmacd: Likewise.
1866 (cortex_a7_fpfmad: Likewise.
1867 (cortex_a7_fdivs: Likewise.
1868 (cortex_a7_fdivd: Likewise.
1869 (cortex_a7_r2f: Likewise.
1870 (cortex_a7_f2r: Likewise.
1871 (cortex_a7_f_flags: Likewise.
1872 (cortex_a7_f_loads: Likewise.
1873 (cortex_a7_f_loadd: Likewise.
1874 (cortex_a7_f_stores: Likewise.
1875 (cortex_a7_f_stored: Likewise.
1876 (cortex_a7_neon): Likewise.
1877 * config/arm/cortex-a8-neon.md
1878 (cortex_a8_neon_mrc): Update for attribute change.
1879 (cortex_a8_neon_mrrc): Likewise.
1880 (cortex_a8_neon_int_1): Likewise.
1881 (cortex_a8_neon_int_2): Likewise.
1882 (cortex_a8_neon_int_3): Likewise.
1883 (cortex_a8_neon_int_4): Likewise.
1884 (cortex_a8_neon_int_5): Likewise.
1885 (cortex_a8_neon_vqneg_vqabs): Likewise.
1886 (cortex_a8_neon_vmov): Likewise.
1887 (cortex_a8_neon_vaba): Likewise.
1888 (cortex_a8_neon_vaba_qqq): Likewise.
1889 (cortex_a8_neon_vsma): Likewise.
1890 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1891 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
1892 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
1894 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1895 (cortex_a8_neon_mla_qqq_8_16): Likewise.
1896 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1897 long_scalar_qdd_64_32_long): Likewise.
1898 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1899 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1900 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
1901 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1902 (cortex_a8_neon_shift_1): Likewise.
1903 (cortex_a8_neon_shift_2): Likewise.
1904 (cortex_a8_neon_shift_3): Likewise.
1905 (cortex_a8_neon_vshl_ddd): Likewise.
1906 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1907 (cortex_a8_neon_vsra_vrsra): Likewise.
1908 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
1909 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
1910 (cortex_a8_neon_fp_vsum): Likewise.
1911 (cortex_a8_neon_fp_vmul_ddd): Likewise.
1912 (cortex_a8_neon_fp_vmul_qqd): Likewise.
1913 (cortex_a8_neon_fp_vmla_ddd): Likewise.
1914 (cortex_a8_neon_fp_vmla_qqq): Likewise.
1915 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
1916 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
1917 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1918 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1919 (cortex_a8_neon_bp_simple): Likewise.
1920 (cortex_a8_neon_bp_2cycle): Likewise.
1921 (cortex_a8_neon_bp_3cycle): Likewise.
1922 (cortex_a8_neon_ldr): Likewise.
1923 (cortex_a8_neon_str): Likewise.
1924 (cortex_a8_neon_vld1_1_2_regs): Likewise.
1925 (cortex_a8_neon_vld1_3_4_regs): Likewise.
1926 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1927 (cortex_a8_neon_vld2_4_regs): Likewise.
1928 (cortex_a8_neon_vld3_vld4): Likewise.
1929 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1930 (cortex_a8_neon_vst1_3_4_regs): Likewise.
1931 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
1932 (cortex_a8_neon_vst3_vst4): Likewise.
1933 (cortex_a8_neon_vld1_vld2_lane): Likewise.
1934 (cortex_a8_neon_vld3_vld4_lane): Likewise.
1935 (cortex_a8_neon_vst1_vst2_lane): Likewise.
1936 (cortex_a8_neon_vst3_vst4_lane): Likewise.
1937 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
1938 (cortex_a8_neon_mcr): Likewise.
1939 (cortex_a8_neon_mcr_2_mcrr): Likewise.
1940 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
1942 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
1944 (ca9_neon_mrrc): Likewise.
1945 (cortex_a9_neon_int_1): Likewise.
1946 (cortex_a9_neon_int_2): Likewise.
1947 (cortex_a9_neon_int_3): Likewise.
1948 (cortex_a9_neon_int_4): Likewise.
1949 (cortex_a9_neon_int_5): Likewise.
1950 (cortex_a9_neon_vqneg_vqabs): Likewise.
1951 (cortex_a9_neon_vmov): Likewise.
1952 (cortex_a9_neon_vaba): Likewise.
1953 (cortex_a9_neon_vaba_qqq): Likewise.
1954 (cortex_a9_neon_vsma): Likewise.
1955 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1956 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
1957 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
1959 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1960 (cortex_a9_neon_mla_qqq_8_16): Likewise.
1961 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
1962 long_scalar_qdd_64_32_long): Likewise.
1963 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1964 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1965 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
1966 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1967 (cortex_a9_neon_shift_1): Likewise.
1968 (cortex_a9_neon_shift_2): Likewise.
1969 (cortex_a9_neon_shift_3): Likewise.
1970 (cortex_a9_neon_vshl_ddd): Likewise.
1971 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1972 (cortex_a9_neon_vsra_vrsra): Likewise.
1973 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
1974 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
1975 (cortex_a9_neon_fp_vsum): Likewise.
1976 (cortex_a9_neon_fp_vmul_ddd): Likewise.
1977 (cortex_a9_neon_fp_vmul_qqd): Likewise.
1978 (cortex_a9_neon_fp_vmla_ddd): Likewise.
1979 (cortex_a9_neon_fp_vmla_qqq): Likewise.
1980 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
1981 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
1982 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1983 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1984 (cortex_a9_neon_bp_simple): Likewise.
1985 (cortex_a9_neon_bp_2cycle): Likewise.
1986 (cortex_a9_neon_bp_3cycle): Likewise.
1987 (cortex_a9_neon_ldr): Likewise.
1988 (cortex_a9_neon_str): Likewise.
1989 (cortex_a9_neon_vld1_1_2_regs): Likewise.
1990 (cortex_a9_neon_vld1_3_4_regs): Likewise.
1991 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1992 (cortex_a9_neon_vld2_4_regs): Likewise.
1993 (cortex_a9_neon_vld3_vld4): Likewise.
1994 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1995 (cortex_a9_neon_vst1_3_4_regs): Likewise.
1996 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
1997 (cortex_a9_neon_vst3_vst4): Likewise.
1998 (cortex_a9_neon_vld1_vld2_lane): Likewise.
1999 (cortex_a9_neon_vld3_vld4_lane): Likewise.
2000 (cortex_a9_neon_vst1_vst2_lane): Likewise.
2001 (cortex_a9_neon_vst3_vst4_lane): Likewise.
2002 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
2003 (cortex_a9_neon_mcr): Likewise.
2004 (cortex_a9_neon_mcr_2_mcrr): Likewise.
2005 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
2006 (cortex_a9_fps): Likewise.
2007 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
2009 (cortex_m4_fmuls): Likewise.
2010 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2012 (cortex_r4_mrc): Likewise.
2013 * config/arm/iterators.md: Update comment referring to neon_type.
2014 * config/arm/iwmmxt.md
2015 (iwmmxt_arm_movdi): Update for attribute change.
2016 (iwmmxt_movsi_insn): Likewise.
2017 * config/arm/marvell-pj4.md
2018 (pj4_vfp_to_core): Update for attribute change.
2019 (pj4_core_to_vfp): Likewise.
2020 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
2022 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
2023 (vfp_fstore): Likewise.
2024 * doc/md.texi: Change references to neon_type to refer to type.
2026 2014-04-07 Michael Collison <michael.collison@linaro.org>
2028 Backport from trunk r201436
2029 2013-08-02 Sofiane Naci <sofiane.naci@arm.com>
2031 * config/arm/types.md (define_attr "type"): Add "load_acq" and "store_rel".
2032 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
2034 (cortex_a53_store1): Likewise.
2036 2014-04-07 Michael Collison <michael.collison@linaro.org>
2038 Backport from trunk r201400
2039 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
2041 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
2042 aarch-common-protos.h to extra_headers.
2043 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
2044 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
2045 * config/aarch64/t-aarch64 (aarch-common.o): Define.
2047 2014-04-07 Michael Collison <michael.collison@linaro.org>
2049 Backport from trunk r201399
2050 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
2052 * config/aarch64/aarch64.md (define_attr "type"): Delete.
2053 Include "../arm/types.md". Define "type" attribute for all patterns.
2054 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
2057 2014-04-07 Michael Collison <michael.collison@linaro.org>
2059 Backport from trunk r201376
2060 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
2062 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
2063 aarch-common-protos.h to extra_headers.
2064 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
2065 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
2066 (arm_early_store_addr_dep): Likewise.
2067 (arm_no_early_alu_shift_dep: Likewise.
2068 (arm_no_early_alu_shift_value_dep: Likewise.
2069 (arm_no_early_mul_dep: Likewise.
2070 (arm_no_early_store_addr_dep: Likewise.
2071 (arm_mac_accumulator_is_mul_result: Likewise.
2072 (arm_mac_accumulator_is_result: Likewise.
2073 * config/arm/aarch-common.c: ... here. New file.
2074 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from here to ...
2075 (arm_early_store_addr_dep): Likewise.
2076 (arm_no_early_alu_shift_dep: Likewise.
2077 (arm_no_early_alu_shift_value_dep: Likewise.
2078 (arm_no_early_mul_dep: Likewise.
2079 (arm_no_early_store_addr_dep: Likewise.
2080 (arm_mac_accumulator_is_mul_result: Likewise.
2081 (arm_mac_accumulator_is_result: Likewise.
2082 * config/arm/aarch-common-protos.h: ... here. New file.
2083 * config/arm/t-arm (aarch-common.o): Define.
2085 2014-04-07 Michael Collison <michael.collison@linaro.org>
2087 Backport from trunk r201375
2088 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
2090 * config/arm/arm.md: Include new file "types.md".
2091 (define_attr "type"): Move from here to ...
2092 (define_attr "mul32"): Likewise.
2093 (define_attr "mul64"): Likewise.
2094 * config/arm/types.md: ... here. New file.
2096 2014-04-07 Michael Collison <michael.collison@linaro.org>
2098 Backport from trunk r202663
2099 2013-09-17 Cong Hou <congh@google.com>
2101 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
2102 when checking the dot production pattern. The type of rhs operand
2103 of multiply is now checked correctly.
2105 2014-04-02 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2107 Backport from trunk r208511
2108 2014-03-12 Christian Bruel <christian.bruel@st.com>
2111 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
2112 REG_CFA_DEF_CFA note.
2113 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
2114 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
2116 2014-03-14 Yvan Roux <yvan.roux@linaro.org>
2118 * LINARO-VERSION: Bump version.
2120 2014-03-11 Yvan Roux <yvan.roux@linaro.org>
2122 GCC Linaro 4.8-2014.03 released.
2123 * LINARO-VERSION: Update.
2125 2014-02-13 Yvan Roux <yvan.roux@linaro.org>
2127 * LINARO-VERSION: Bump version.
2129 2014-02-11 Yvan Roux <yvan.roux@linaro.org>
2131 GCC Linaro 4.8-2014.02 released.
2132 * LINARO-VERSION: Update.
2134 2014-02-10 Michael Collison <michael.collison@linaro.org>
2136 Backport from trunk r206518
2137 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2139 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
2140 non-iwmmxt builtins.
2142 2014-02-10 Michael Collison <michael.collison@linaro.org>
2144 Backport from trunk r206151
2145 2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2147 * config/arm/neon.ml (crypto_intrinsics): Add vceq_64 and vtst_p64.
2148 * config/arm/arm_neon.h: Regenerate.
2149 * config/arm/neon-docgen.ml: Add vceq_p64 and vtst_p64.
2150 * doc/arm-neon-intrinsics.texi: Regenerate.
2152 2014-02-10 Michael Collison <michael.collison@linaro.org>
2154 Backport from trunk r206149
2155 2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2157 * config/arm/arm_acle.h: Add underscores before variables.
2159 2014-02-10 Michael Collison <michael.collison@linaro.org>
2161 Backport from trunk r206132
2162 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2164 * config/arm/neon-docgen.ml: Add crypto intrinsics documentation.
2165 * doc/arm-neon-intrinsics.texi: Regenerate.
2167 2014-02-10 Michael Collison <michael.collison@linaro.org>
2169 Backport from trunk r206131
2170 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2172 * config/arm/neon-testgen.ml (effective_target): Handle "CRYPTO".
2174 2014-02-10 Michael Collison <michael.collison@linaro.org>
2176 Backport from trunk r206130
2177 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2179 * config/arm/arm.c (enum arm_builtins): Add crypto builtins.
2180 (arm_init_neon_builtins): Handle crypto builtins.
2181 (bdesc_2arg): Likewise.
2182 (bdesc_1arg): Likewise.
2183 (bdesc_3arg): New table.
2184 (arm_expand_ternop_builtin): New function.
2185 (arm_expand_unop_builtin): Handle sha1h explicitly.
2186 (arm_expand_builtin): Handle ternary builtins.
2187 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS):
2188 Define __ARM_FEATURE_CRYPTO.
2189 * config/arm/arm.md: Include crypto.md.
2190 (is_neon_type): Add crypto types.
2191 * config/arm/arm_neon_builtins.def: Add TImode reinterprets.
2192 * config/arm/crypto.def: New.
2193 * config/arm/crypto.md: Likewise.
2194 * config/arm/iterators.md (CRYPTO_UNARY): New int iterator.
2195 (CRYPTO_BINARY): Likewise.
2196 (CRYPTO_TERNARY): Likewise.
2197 (CRYPTO_SELECTING): Likewise.
2198 (crypto_pattern): New int attribute.
2199 (crypto_size_sfx): Likewise.
2200 (crypto_mode): Likewise.
2201 (crypto_type): Likewise.
2202 * config/arm/neon-gen.ml: Handle poly64_t and poly128_t types.
2203 Handle crypto intrinsics.
2204 * config/arm/neon.ml: Add support for poly64 and polt128 types
2205 and intrinsics. Define crypto intrinsics.
2206 * config/arm/neon.md (neon_vreinterpretti<mode>): New pattern.
2207 (neon_vreinterpretv16qi<mode>): Use VQXMOV mode iterator.
2208 (neon_vreinterpretv8hi<mode>): Likewise.
2209 (neon_vreinterpretv4si<mode>): Likewise.
2210 (neon_vreinterpretv4sf<mode>): Likewise.
2211 (neon_vreinterpretv2di<mode>): Likewise.
2212 * config/arm/unspecs.md (UNSPEC_AESD, UNSPEC_AESE, UNSPEC_AESIMC,
2213 UNSPEC_AESMC, UNSPEC_SHA1C, UNSPEC_SHA1M, UNSPEC_SHA1P, UNSPEC_SHA1H,
2214 UNSPEC_SHA1SU0, UNSPEC_SHA1SU1, UNSPEC_SHA256H, UNSPEC_SHA256H2,
2215 UNSPEC_SHA256SU0, UNSPEC_SHA256SU1, VMULLP64): Define.
2216 * config/arm/arm_neon.h: Regenerate.
2218 Modifications needed to backport into linaro-4_8-branch:
2219 * config/arm/arm.md (attribute neon_type): neon_crypto_aes,
2220 neon_crypto_sha1_xor, neon_crypto_sha1_fast,
2221 neon_crypto_sha1_slow, neon_crypto_sha256_fast,
2222 neon_crypto_sha256_slow, neon_mul_d_long: New.
2224 * config/arm/arm.md: Include crypto.md.
2225 (is_neon_type): Add crypto types.
2228 2014-02-10 Michael Collison <michael.collison@linaro.org>
2230 Backport from trunk r206128
2231 2013-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2233 * Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi.
2234 * config.gcc (extra_headers): Add arm_acle.h.
2235 * config/arm/arm.c (FL_CRC32): Define.
2236 (arm_have_crc): Likewise.
2237 (arm_option_override): Set arm_have_crc.
2238 (arm_builtins): Add CRC32 builtins.
2239 (bdesc_2arg): Likewise.
2240 (arm_init_crc32_builtins): New function.
2241 (arm_init_builtins): Initialise CRC32 builtins.
2242 (arm_file_start): Handle architecture extensions.
2243 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FEATURE_CRC32.
2244 Define __ARM_32BIT_STATE.
2245 (TARGET_CRC32): Define.
2246 * config/arm/arm-arches.def: Add armv8-a+crc.
2247 * config/arm/arm-tables.opt: Regenerate.
2248 * config/arm/arm.md (type): Add crc.
2249 (<crc_variant>): New insn.
2250 * config/arm/arm_acle.h: New file.
2251 * config/arm/iterators.md (CRC): New int iterator.
2252 (crc_variant, crc_mode): New int attributes.
2253 * confg/arm/unspecs.md (UNSPEC_CRC32B, UNSPEC_CRC32H, UNSPEC_CRC32W,
2254 UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW): New unspecs.
2255 * doc/invoke.texi: Document -march=armv8-a+crc option.
2256 * doc/extend.texi: Document ACLE intrinsics.
2258 2014-02-10 Michael Collison <michael.collison@linaro.org>
2260 Backport from trunk r206120
2261 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2263 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
2264 Define builtin types for poly64_t poly128_t.
2265 (TYPES_BINOPP, aarch64_types_binopp_qualifiers): New.
2266 * aarch64/aarch64-simd-builtins.def: Update builtins table.
2267 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi,
2268 aarch64_crypto_pmullv2di): New.
2269 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Update table for
2271 * config/aarch64/arm_neon.h (poly64x2_t, poly64_t, poly128_t): Define.
2272 (vmull_p64, vmull_high_p64): New.
2273 * config/aarch64/iterators.md (UNSPEC_PMULL<2>): New.
2275 2014-02-10 Michael Collison <michael.collison@linaro.org>
2277 Backport from trunk r206119
2278 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2280 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
2281 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha256h<sha256_op>v4si,
2282 aarch64_crypto_sha256su0v4si, aarch64_crypto_sha256su1v4si): New.
2283 * config/aarch64/arm_neon.h (vsha256hq_u32, vsha256h2q_u32,
2284 vsha256su0q_u32, vsha256su1q_u32): New.
2285 * config/aarch64/iterators.md (UNSPEC_SHA256H<2>, UNSPEC_SHA256SU<01>):
2287 (CRYPTO_SHA256): New int iterator.
2288 (sha256_op): New int attribute.
2290 2014-02-10 Michael Collison <michael.collison@linaro.org>
2292 Backport from trunk r206118
2293 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2295 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
2296 * config/aarch64/aarch64-builtins.c (aarch64_types_ternopu_qualifiers,
2297 TYPES_TERNOPU): New.
2298 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hsi,
2299 aarch64_crypto_sha1su1v4si, aarch64_crypto_sha1<sha1_op>v4si,
2300 aarch64_crypto_sha1su0v4si): New.
2301 * config/aarch64/arm_neon.h (vsha1cq_u32, sha1mq_u32, vsha1pq_u32,
2302 vsha1h_u32, vsha1su0q_u32, vsha1su1q_u32): New.
2303 * config/aarch64/iterators.md (UNSPEC_SHA1<CPMH>, UNSPEC_SHA1SU<01>):
2305 (CRYPTO_SHA1): New int iterator.
2306 (sha1_op): New int attribute.
2308 2014-02-10 Michael Collison <michael.collison@linaro.org>
2310 Backport from trunk r206117
2311 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2313 * config/aarch64/aarch64-simd-builtins.def: Update builtins table.
2314 * config/aarch64/aarch64-builtins.c (aarch64_types_binopu_qualifiers,
2316 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi,
2317 aarch64_crypto_aes<aesmc_op>v16qi): New.
2318 * config/aarch64/arm_neon.h (vaeseq_u8, vaesdq_u8, vaesmcq_u8,
2320 * config/aarch64/iterators.md (UNSPEC_AESE, UNSPEC_AESD, UNSPEC_AESMC,
2321 UNSPEC_AESIMC): New.
2322 (CRYPTO_AES, CRYPTO_AESMC): New int iterators.
2323 (aes_op, aesmc_op): New int attributes.
2325 2014-02-10 Michael Collison <michael.collison@linaro.org>
2327 Backport from trunk r206115
2328 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2330 * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor,
2331 crypto_sha1_fast, crypto_sha1_slow, crypto_sha256_fast,
2332 crypto_sha256_slow): New.
2334 Modifications needed to backport into linaro-4_8-branch:
2335 * config/aarch64/aarch64-simd.md (attribute simd_type):
2336 (simd_mul_d_long, simd_crypto_aes, simd_crypto_sha1_xor,
2337 simd_crypto_sha1_fast, simd_crypto_sha1_slow, simd_crypto_sha256_fast,
2338 simd_crypto_sha256_slow) : New.
2339 instead of the above change.
2341 2014-02-10 Michael Collison <michael.collison@linaro.org>
2343 Backport from trunk r206114
2344 2013-12-19 Tejas Belagod <tejas.belagod@arm.com>
2346 * config/aarch64/aarch64.h (TARGET_CRYPTO): New.
2347 (__ARM_FEATURE_CRYPTO): Define if TARGET_CRYPTO is true.
2349 2014-02-10 Michael Collison <michael.collison@linaro.org>
2351 Backport from trunk r205384.
2352 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
2354 * config/aarch64/aarch64-builtins.c
2355 (aarch64_type_qualifiers): Add qualifier_poly.
2356 (aarch64_build_scalar_type): Also build Poly types.
2357 (aarch64_build_vector_type): Likewise.
2358 (aarch64_build_type): Likewise.
2359 (aarch64_build_signed_type): New.
2360 (aarch64_build_unsigned_type): Likewise.
2361 (aarch64_build_poly_type): Likewise.
2362 (aarch64_init_simd_builtins): Also handle Poly types.
2364 2014-02-10 Michael Collison <michael.collison@linaro.org>
2366 Backport from trunk r205383.
2367 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
2369 * config/aarch64/aarch64-builtins.c
2370 (VAR1): Use new naming scheme for aarch64_builtins.
2371 (aarch64_builtin_vectorized_function): Use new
2372 aarch64_builtins names.
2374 2014-02-10 Michael Collison <michael.collison@linaro.org>
2376 Backport from trunk r205092.
2377 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
2379 * gcc/config/aarch64/aarch64-builtins.c
2380 (aarch64_simd_itype): Remove.
2381 (aarch64_simd_builtin_datum): Remove itype, add
2383 (VAR1): Use qualifiers.
2384 (aarch64_build_scalar_type): New.
2385 (aarch64_build_vector_type): Likewise.
2386 (aarch64_build_type): Likewise.
2387 (aarch64_init_simd_builtins): Refactor, remove special cases,
2388 consolidate main loop.
2389 (aarch64_simd_expand_args): Likewise.
2391 2014-02-01 Christophe Lyon <christophe.lyon@linaro.org>
2393 Backport from trunk r202875,202980.
2394 2013-09-24 Xinliang David Li <davidxl@google.com>
2396 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2397 Check max peel iterations parameter.
2398 * param.def: New parameter.
2399 * doc/invoke.texi: Document New parameter.
2401 2013-09-27 Xinliang David Li <davidxl@google.com>
2403 * opts.c (finish_options): Adjust parameters
2404 according to vect cost model.
2405 (common_handle_option): Set dynamic vect cost
2407 targhooks.c (default_add_stmt_cost): Compute stmt cost
2409 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
2410 Use helper function.
2411 * tree-vectorizer.h (unlimited_cost_model): New function.
2412 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
2413 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
2415 (vect_enhance_data_refs_alignment): Ditto.
2416 * flag-types.h: New enum.
2417 * common/config/i386/i386-common.c (ix86_option_init_struct):
2418 No need to initialize vect_cost_model flag.
2419 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
2422 2014-01-21 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2424 Backport from trunk r200103
2425 2013-06-15 Jeff Law <law@redhat.com>
2427 * gimple.h (gimple_can_coalesce_p): Prototype.
2428 * tree-ssa-coalesce.c (gimple_can_coalesce_p): New function.
2429 (create_outofssa_var_map, coalesce_partitions): Use it.
2430 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Similarly.
2431 * tree-ssa-live.c (var_map_base_init): Use TYPE_CANONICAL
2434 2014-01-21 Christophe Lyon <christophe.lyon@linaro.org>
2436 * LINARO-VERSION: Bump version.
2438 2014-01-17 Christophe Lyon <christophe.lyon@linaro.org>
2440 GCC Linaro 4.8-2014.01 released.
2441 * LINARO-VERSION: Update.
2443 2014-01-16 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2445 Linaro local patch for armv4t multilib support.
2446 * gcc/config/arm/t-mlibs: New file.
2447 * config.gcc: Add t-mlibs.
2448 * incpath.c (add_standard_paths): Try multilib path first.
2449 * gcc.c (for_each_path): Likewise.
2451 2013-12-21 Christophe Lyon <christophe.lyon@linaro.org>
2453 * LINARO-VERSION: Bump version.
2455 2013-12-21 Christophe Lyon <christophe.lyon@linaro.org>
2457 GCC Linaro 4.8-2013.12 released.
2458 * LINARO-VERSION: Update.
2460 2013-12-06 Christophe Lyon <christophe.lyon@linaro.org>
2462 Backport from trunk r204737.
2463 2013-11-13 Christophe Lyon <christophe.lyon@linaro.org>
2465 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
2466 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
2467 Update offset calculations.
2469 2013-12-06 Christophe Lyon <christophe.lyon@linaro.org>
2471 Backport from trunk r203327.
2472 2013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2474 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2475 (operand_equal_for_value_replacement): New function, extracted from
2476 value_replacement and enhanced to catch more cases.
2477 (value_replacement): Use operand_equal_for_value_replacement.
2479 2013-11-18 Christophe Lyon <christophe.lyon@linaro.org>
2481 * LINARO-VERSION: Bump version.
2483 2013-11-14 Christophe Lyon <christophe.lyon@linaro.org>
2485 GCC Linaro 4.8-2013.11 released.
2486 * LINARO-VERSION: Update.
2488 2013-11-06 Christophe Lyon <christophe.lyon@linaro.org>
2490 Revert backport from trunk r197526.
2491 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2493 * config/arm/arm.md (negdi_extendsidi): New pattern.
2494 (negdi_zero_extendsidi): Likewise.
2496 2013-11-05 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2498 Backport from trunk r203267, r203603 and r204247.
2499 2013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2502 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2503 RTX_FRAME_RELATED_P on INSN.
2505 2013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2506 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2508 * config/arm/t-aprofile: New file.
2509 * config.gcc: Handle --with-multilib-list option.
2511 2013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2513 * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
2515 2013-10-17 Christophe Lyon <christophe.lyon@linaro.org>
2517 Backport from trunk r200956
2518 2013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
2520 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
2521 Define SYMBOL_TINY_GOT, update comment.
2522 * config/aarch64/aarch64.c
2523 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
2524 (aarch64_expand_mov_immediate): Likewise.
2525 (aarch64_print_operand): Likewise.
2526 (aarch64_classify_symbol): Likewise.
2527 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
2528 (ldr_got_tiny): Define.
2530 2013-10-16 Christophe Lyon <christophe.lyon@linaro.org>
2532 * LINARO-VERSION: Bump version.
2534 2013-10-15 Christophe Lyon <christophe.lyon@linaro.org>
2536 GCC Linaro 4.8-2013.10 released.
2537 * LINARO-VERSION: Update.
2539 2013-10-09 Christophe Lyon <christophe.lyon@linaro.org>
2541 Backport from trunk r198526,198527,200020,200595.
2542 2013-05-02 Ian Bolton <ian.bolton@arm.com>
2544 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
2546 (*and_one_cmplsi3_compare0_uxtw): Likewise.
2547 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
2548 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
2550 2013-05-02 Ian Bolton <ian.bolton@arm.com>
2552 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
2553 S reg when fp attribute set.
2554 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
2556 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
2558 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split.
2559 (aarch64_simd_combine<mode>): New instruction expansion.
2560 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
2562 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
2563 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
2565 2013-07-02 Ian Bolton <ian.bolton@arm.com>
2567 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
2569 2013-10-09 Christophe Lyon <christophe.lyon@linaro.org>
2571 Backport from trunk r201879.
2572 2013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2574 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
2575 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
2576 with MULTLIB_DEFAULTS.
2578 2013-10-09 Christophe Lyon <christophe.lyon@linaro.org>
2580 Backport from trunk r201871.
2581 2013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
2583 Fix LIB_SPEC for systems without libpthread.
2585 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
2586 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
2588 * config/i386/linux-common.h: Likewise.
2589 * config/mips/linux-common.h: Likewise.
2591 2013-10-08 Christophe Lyon <christophe.lyon@linaro.org>
2593 Backport from trunk r202702.
2594 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
2596 * arm.c (arm_get_frame_offsets): Validate architecture supports
2597 LDRD/STRD before accepting the tuning preference.
2598 (arm_expand_prologue): Likewise.
2599 (arm_expand_epilogue): Likewise.
2601 2013-10-04 Venkataramanan.Kumar <venkataramanan.kumar@linaro.org>
2603 Backport from trunk r203028.
2604 2013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2606 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
2607 (NO_PROFILE_COUNTERS): Likewise.
2608 (PROFILE_HOOK): Likewise.
2609 (FUNCTION_PROFILER): Likewise.
2610 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
2612 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2614 Backport from trunk r201923,201927.
2615 2013-08-22 Julian Brown <julian@codesourcery.com>
2617 * configure.ac: Add aarch64 to list of arches which use "nop" in
2619 * configure: Regenerate.
2621 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
2623 * configure.ac: Add backslashes missing from the last change.
2624 * configure: Regenerate.
2626 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2628 Backport from trunk r202023,202108.
2629 2013-08-27 Tejas Belagod <tejas.belagod@arm.com>
2631 * config/aarch64/arm_neon.h: Replace all inline asm implementations
2632 of vget_low_* with implementations in terms of other intrinsics.
2634 2013-08-30 Tejas Belagod <tejas.belagod@arm.com>
2636 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C): New
2637 arm_neon.h's internal macros to specify 64-bit constants. Avoid using
2640 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2642 Backport from trunk r201260,202400.
2643 2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2644 Richard Earnshaw <richard.earnshaw@arm.com>
2646 * combine.c (simplify_comparison): Re-canonicalize operands
2648 * config/arm/arm.md (movcond_addsi): New splitter.
2650 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2652 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
2653 comparison with negated operand.
2654 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
2657 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2659 Backport from trunk r202164.
2660 2013-09-02 Bin Cheng <bin.cheng@arm.com>
2662 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2663 Find auto-increment use both before and after candidate.
2665 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2667 Backport from trunk r202279.
2668 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
2670 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2672 * thumb2.md (thumb2_storewb_parisi): New pattern.
2674 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
2676 Backport from trunk r202275.
2677 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2679 * config/aarch64/aarch64-option-extensions.def: Add
2680 AARCH64_OPT_EXTENSION of 'crc'.
2681 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2682 (AARCH64_ISA_CRC): Ditto.
2683 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2684 description of the CRC extension.
2686 2013-10-01 Christophe Lyon <christophe.lyon@linaro.org>
2688 Backport from trunk r201250.
2689 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2691 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
2692 addsi3_carryin_alt2_<optab>): Correct output template.
2694 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
2696 Backport from trunk r203059,203116.
2697 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
2701 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2702 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
2703 define_insn_and_split.
2704 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2705 (shiftsi3_compare): New pattern.
2707 * config/arm/unspecs.md (UNSPEC_RRX): New.
2709 2013-09-11 Christophe Lyon <christophe.lyon@linaro.org>
2711 * LINARO-VERSION: Bump version.
2713 2013-09-10 Christophe Lyon <christophe.lyon@linaro.org>
2715 GCC Linaro 4.8-2013.09 released.
2716 * LINARO-VERSION: Update.
2718 2013-09-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2720 Backport from trunk r200197, 201411.
2721 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
2723 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
2724 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
2725 pattern. Use more efficient sequences on ARMv5 and Thumb2.
2727 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2729 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
2730 Generate canonical plus rtx with negated immediate instead of minus
2732 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
2734 2013-09-10 Christophe Lyon <christophe.lyon@linaro.org>
2736 Backport from trunk r200593,201024,201025,201122,201124,201126.
2737 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2739 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
2741 (iorsi3_insn): Likewise.
2742 (arm_xorsi3): Likewise.
2744 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
2746 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
2747 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift" to
2748 "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
2749 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
2750 in alphabetical order.
2751 (attribute "core_cycles"): Update for attribute changes.
2752 (arm_addsi3): Likewise.
2753 (addsi3_compare0): Likewise.
2754 (addsi3_compare0_scratch): Likewise.
2755 (addsi3_compare_op1): Likewise.
2756 (addsi3_compare_op2): Likewise.
2757 (compare_addsi2_op0): Likewise.
2758 (compare_addsi2_op1): Likewise.
2759 (addsi3_carryin_shift_<optab>): Likewise.
2760 (subsi3_carryin_shift): Likewise.
2761 (rsbsi3_carryin_shift): Likewise.
2762 (arm_subsi3_insn): Likewise.
2763 (subsi3_compare0): Likewise.
2764 (subsi3_compare): Likewise.
2765 (arm_andsi3_insn): Likewise.
2766 (thumb1_andsi3_insn): Likewise.
2767 (andsi3_compare0): Likewise.
2768 (andsi3_compare0_scratch): Likewise.
2769 (zeroextractsi_compare0_scratch
2770 (andsi_not_shiftsi_si): Likewise.
2771 (iorsi3_insn): Likewise.
2772 (iorsi3_compare0): Likewise.
2773 (iorsi3_compare0_scratch): Likewise.
2774 (arm_xorsi3): Likewise.
2775 (thumb1_xorsi3_insn): Likewise.
2776 (xorsi3_compare0): Likewise.
2777 (xorsi3_compare0_scratch): Likewise.
2778 (satsi_<SAT:code>_shift): Likewise.
2780 (arm_shiftsi3): Likewise.
2781 (shiftsi3_compare0): Likewise.
2782 (not_shiftsi): Likewise.
2783 (not_shiftsi_compare0): Likewise.
2784 (not_shiftsi_compare0_scratch): Likewise.
2785 (arm_one_cmplsi2): Likewise.
2786 (thumb_one_complsi2): Likewise.
2787 (notsi_compare0): Likewise.
2788 (notsi_compare0_scratch): Likewise.
2789 (thumb1_zero_extendhisi2): Likewise.
2790 (arm_zero_extendhisi2): Likewise.
2791 (arm_zero_extendhisi2_v6): Likewise.
2792 (arm_zero_extendhisi2addsi): Likewise.
2793 (thumb1_zero_extendqisi2): Likewise.
2794 (thumb1_zero_extendqisi2_v6): Likewise.
2795 (arm_zero_extendqisi2): Likewise.
2796 (arm_zero_extendqisi2_v6): Likewise.
2797 (arm_zero_extendqisi2addsi): Likewise.
2798 (thumb1_extendhisi2): Likewise.
2799 (arm_extendhisi2): Likewise.
2800 (arm_extendhisi2_v6): Likewise.
2801 (arm_extendqisi): Likewise.
2802 (arm_extendqisi_v6): Likewise.
2803 (arm_extendqisi2addsi): Likewise.
2804 (thumb1_extendqisi2): Likewise.
2805 (thumb1_movdi_insn): Likewise.
2806 (arm_movsi_insn): Likewise.
2807 (movsi_compare0): Likewise.
2808 (movhi_insn_arch4): Likewise.
2809 (movhi_bytes): Likewise.
2810 (arm_movqi_insn): Likewise.
2811 (thumb1_movqi_insn): Likewise.
2812 (arm32_movhf): Likewise.
2813 (thumb1_movhf): Likewise.
2814 (arm_movsf_soft_insn): Likewise.
2815 (thumb1_movsf_insn): Likewise.
2816 (movdf_soft_insn): Likewise.
2817 (thumb_movdf_insn): Likewise.
2818 (arm_cmpsi_insn): Likewise.
2819 (cmpsi_shiftsi): Likewise.
2820 (cmpsi_shiftsi_swp): Likewise.
2821 (arm_cmpsi_negshiftsi_si): Likewise.
2822 (movsicc_insn): Likewise.
2823 (movsfcc_soft_insn): Likewise.
2824 (arith_shiftsi): Likewise.
2825 (arith_shiftsi_compare0
2826 (arith_shiftsi_compare0_scratch
2827 (sub_shiftsi): Likewise.
2828 (sub_shiftsi_compare0
2829 (sub_shiftsi_compare0_scratch
2830 (and_scc): Likewise.
2831 (cond_move): Likewise.
2832 (if_plus_move): Likewise.
2833 (if_move_plus): Likewise.
2834 (if_move_not): Likewise.
2835 (if_not_move): Likewise.
2836 (if_shift_move): Likewise.
2837 (if_move_shift): Likewise.
2838 (if_shift_shift): Likewise.
2839 (if_not_arith): Likewise.
2840 (if_arith_not): Likewise.
2841 (cond_move_not): Likewise.
2842 (thumb1_ashlsi3): Set type attribute.
2843 (thumb1_ashrsi3): Likewise.
2844 (thumb1_lshrsi3): Likewise.
2845 (thumb1_rotrsi3): Likewise.
2846 (shiftsi3_compare0_scratch): Likewise.
2847 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
2848 (neon_mov<mode>): Likewise.
2849 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for attribute
2851 (thumb2_movsi_insn): Likewise.
2852 (thumb2_cmpsi_neg_shiftsi): Likewise.
2853 (thumb2_extendqisi_v6): Likewise.
2854 (thumb2_zero_extendhisi2_v6): Likewise.
2855 (thumb2_zero_extendqisi2_v6): Likewise.
2856 (thumb2_shiftsi3_short): Likewise.
2857 (thumb2_addsi3_compare0_scratch): Likewise.
2858 (orsi_not_shiftsi_si): Likewise.
2859 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2860 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
2862 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2863 (1020alu_shift_op): Likewise.
2864 (1020alu_shift_reg_op): Likewise.
2865 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2866 (alu_shift_op): Likewise.
2867 (alu_shift_reg_op): Likewise.
2868 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
2869 (11_alu_shift_op): Likewise.
2870 (11_alu_shift_reg_op): Likewise.
2871 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2872 (9_alu_shift_reg_op): Likewise.
2873 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute changes.
2874 (cortex_a15_alu_shift): Likewise.
2875 (cortex_a15_alu_shift_reg): Likewise.
2876 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute changes.
2877 (cortex_a5_alu_shift): Likewise.
2878 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
2880 (cortex_a53_alu_shift): Likewise.
2881 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
2883 (cortex_a7_alu_reg): Likewise.
2884 (cortex_a7_alu_shift): Likewise.
2885 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute changes.
2886 (cortex_a8_alu_shift): Likewise.
2887 (cortex_a8_alu_shift_reg): Likewise.
2888 (cortex_a8_mov): Likewise.
2889 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
2890 (cortex_a9_dp_shift): Likewise.
2891 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute changes.
2892 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute changes.
2893 (cortex_r4_mov): Likewise.
2894 (cortex_r4_alu_shift): Likewise.
2895 (cortex_r4_alu_shift_reg): Likewise.
2896 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
2897 (526_alu_shift_op): Likewise.
2898 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2899 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
2900 (626te_alu_shift_op): Likewise.
2901 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
2902 (726te_alu_op): Likewise.
2903 (726te_alu_shift_op): Likewise.
2904 (726te_alu_shift_reg_op): Likewise.
2905 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2906 (mp626_alu_shift_op): Likewise.
2907 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
2908 (pj4_alu_e1_conds): Likewise.
2909 (pj4_alu): Likewise.
2910 (pj4_alu_conds): Likewise.
2911 (pj4_shift): Likewise.
2912 (pj4_shift_conds): Likewise.
2913 (pj4_alu_shift): Likewise.
2914 (pj4_alu_shift_conds): Likewise.
2915 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute changes.
2916 (cortexa7_older_only): Likewise.
2917 (cortexa7_younger): Likewise.
2919 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
2921 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
2922 "xtab" and "sat". Move value "clz" from here to ...
2923 (attriubte "type"): ... here.
2924 (satsi_<SAT:code>): Delete "insn" attribute.
2925 (satsi_<SAT:code>_shift): Likewise.
2926 (arm_zero_extendqisi2addsi): Likewise.
2927 (arm_extendqisi2addsi): Likewise.
2928 (clzsi2): Update for attribute changes.
2929 (rbitsi2): Likewise.
2930 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" attribute.
2931 (arm_usatsihi): Likewise.
2932 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
2934 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2936 * config/arm/predicates.md (shiftable_operator_strict_it):
2938 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
2939 Disable cond_exec version for arm_restrict_it.
2940 (thumb2_smaxsi3): Convert to generate cond_exec.
2941 (thumb2_sminsi3): Likewise.
2942 (thumb32_umaxsi3): Likewise.
2943 (thumb2_uminsi3): Likewise.
2944 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
2945 (thumb2_neg_abssi2): Likewise.
2946 (thumb2_mov_scc): Add alternative for 16-bit encoding.
2947 (thumb2_movsicc_insn): Adjust alternatives.
2948 (thumb2_mov_negscc): Disable for arm_restrict_it.
2949 (thumb2_mov_negscc_strict_it): New pattern.
2950 (thumb2_mov_notscc_strict_it): New pattern.
2951 (thumb2_mov_notscc): Disable for arm_restrict_it.
2952 (thumb2_ior_scc): Likewise.
2953 (thumb2_ior_scc_strict_it): New pattern.
2954 (thumb2_cond_move): Adjust for arm_restrict_it.
2955 (thumb2_cond_arith): Disable for arm_restrict_it.
2956 (thumb2_cond_arith_strict_it): New pattern.
2957 (thumb2_cond_sub): Adjust for arm_restrict_it.
2958 (thumb2_movcond): Likewise.
2959 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
2960 (thumb2_zero_extendhisi2_v6): Likewise.
2961 (thumb2_zero_extendqisi2_v6): Likewise.
2962 (orsi_notsi_si): Likewise.
2963 (orsi_not_shiftsi_si): Likewise.
2965 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
2967 * config/arm/arm.md (attribute "insn"): Delete.
2968 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
2969 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
2970 (not_shiftsi): Update for attribute change.
2971 (not_shiftsi_compare0): Likewise.
2972 (not_shiftsi_compare0_scratch): Likewise.
2973 (arm_one_cmplsi2): Likewise.
2974 (thumb1_one_cmplsi2): Likewise.
2975 (notsi_compare0): Likewise.
2976 (notsi_compare0_scratch): Likewise.
2977 (thumb1_movdi_insn): Likewise.
2978 (arm_movsi_insn): Likewise.
2979 (movhi_insn_arch4): Likewise.
2980 (movhi_bytes): Likewise.
2981 (arm_movqi_insn): Likewise.
2982 (thumb1_movqi_insn): Likewise.
2983 (arm32_movhf): Likewise.
2984 (thumb1_movhf): Likewise.
2985 (arm_movsf_soft_insn): Likewise.
2986 (thumb1_movsf_insn): Likewise.
2987 (thumb_movdf_insn): Likewise.
2988 (movsicc_insn): Likewise.
2989 (movsfcc_soft_insn): Likewise.
2990 (and_scc): Likewise.
2991 (cond_move): Likewise.
2992 (if_move_not): Likewise.
2993 (if_not_move): Likewise.
2994 (if_shift_move): Likewise.
2995 (if_move_shift): Likewise.
2996 (if_shift_shift): Likewise.
2997 (if_not_arith): Likewise.
2998 (if_arith_not): Likewise.
2999 (cond_move_not): Likewise.
3000 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
3001 (neon_mov<mode>): Likewise.
3002 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
3003 (thumb2_movsi_vfp): Likewise.
3004 (movsf_vfp): Likewise.
3005 (thumb2_movsf_vfp): Likewise.
3006 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute change.
3007 (cortexa7_older_only): Likewise.
3008 (cortexa7_younger): Likewise.
3009 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
3010 (1020alu_shift_op): Likewise.
3011 (1020alu_shift_reg_op): Likewise.
3012 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
3013 (alu_shift_op): Likewise.
3014 (alu_shift_reg_op): Likewise.
3015 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
3016 (11_alu_shift_op): Likewise.
3017 (11_alu_shift_reg_op): Likewise.
3018 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
3019 (9_alu_shift_reg_op): Likewise.
3020 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute change.
3021 (cortex_a15_alu_shift): Likewise.
3022 (cortex_a15_alu_shift_reg): Likewise.
3023 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
3024 (cortex_a5_alu_shift): Likewise.
3025 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute change.
3026 (cortex_a53_alu_shift): Likewise.
3027 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute change.
3028 (cortex_a7_alu_reg): Likewise.
3029 (cortex_a7_alu_shift): Likewise.
3030 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
3031 (cortex_a8_alu_shift): Likewise.
3032 (cortex_a8_alu_shift_reg): Likewise.
3033 (cortex_a8_mov): Likewise.
3034 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
3035 (cortex_a9_dp_shift): Likewise.
3036 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
3037 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
3038 (cortex_r4_mov): Likewise.
3039 (cortex_r4_alu_shift): Likewise.
3040 (cortex_r4_alu_shift_reg): Likewise.
3041 * config/arm/fa526.md (526_alu_op): Update for attribute change.
3042 (526_alu_shift_op): Likewise.
3043 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
3044 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
3045 (626te_alu_shift_op): Likewise.
3046 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
3047 (726te_alu_op): Likewise.
3048 (726te_alu_shift_op): Likewise.
3049 (726te_alu_shift_reg_op): Likewise.
3050 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
3051 (mp626_alu_shift_op): Likewise.
3052 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
3053 (pj4_alu_e1_conds): Likewise.
3054 (pj4_alu): Likewise.
3055 (pj4_alu_conds): Likewise.
3056 (pj4_shift): Likewise.
3057 (pj4_shift_conds): Likewise.
3058 (pj4_alu_shift): Likewise.
3059 (pj4_alu_shift_conds): Likewise.
3061 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3063 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
3064 instead of TARGET_THUMB1.
3065 (Pz): New constraint.
3066 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
3068 (compare_negsi_si): Likewise.
3069 (compare_addsi2_op0): Likewise.
3070 (compare_addsi2_op1): Likewise.
3071 (addsi3_carryin_<optab>): Likewise.
3072 (addsi3_carryin_alt2_<optab>): Likewise.
3073 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
3074 for arm_restrict_it.
3075 (subsi3_carryin): Likewise.
3076 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
3077 (minmax_arithsi): Disable for arm_restrict_it.
3078 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
3079 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
3080 (satsi_<SAT:code>_shift): Likewise.
3081 (arm_shiftsi3): Add alternative for 16-bit encoding.
3082 (arm32_movhf): Disable for arm_restrict_it.
3083 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
3084 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
3086 2013-09-09 Kugan Vivekanandarajah <kuganv@linaro.org>
3088 Backport from trunk r201412.
3089 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3091 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical RTL form
3092 when subtracting a constant.
3094 2013-09-05 Yvan Roux <yvan.roux@linaro.org>
3096 Backport from trunk r201249.
3097 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3099 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
3100 Adjust for arm_restrict_it.
3101 Remove trailing whitespace.
3103 2013-09-05 Yvan Roux <yvan.roux@linaro.org>
3105 Backport from trunk r201342.
3106 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
3108 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
3111 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
3113 Backport from trunk r199527,199792,199814.
3114 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3117 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
3118 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
3119 * config/arm/neon.md (iordi3_neon): Remove.
3120 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
3121 * config/arm/predicates.md (imm_for_neon_logic_operand):
3122 Move to earlier in the file.
3123 (neon_logic_op2): Likewise.
3124 (arm_iordi_operand_neon): New predicate.
3126 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3128 * config/arm/constraints.md (Df): New constraint.
3129 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
3130 Correct length attribute for last two alternatives.
3132 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3135 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
3136 (xordi3): Change operand 2 constraint to arm_xordi_operand.
3137 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
3138 * config/arm/constraints.md (Dg): New constraint.
3139 * config/arm/neon.md (xordi3_neon): Remove.
3140 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
3141 * config/arm/predicates.md (arm_xordi_operand): New predicate.
3143 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
3145 Backport from trunk r201599.
3146 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
3149 * arm/neon.md (neon_vld1_dupdi): New expand pattern.
3150 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
3152 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
3154 Backport from trunk r201589.
3155 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
3158 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
3160 2013-09-03 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3164 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
3166 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
3167 (get_lane_unsigned): Likewise.
3168 (dup_lane_scalar): Likewise.
3169 (get_lane): enable for VALL.
3170 * config/aarch64/aarch64-simd.md
3171 (aarch64_dup_lane_scalar<mode>): Remove.
3172 (aarch64_get_lane_signed<mode>): Likewise.
3173 (aarch64_get_lane_unsigned<mode>): Likewise.
3174 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
3175 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
3176 (aarch64_get_lane<mode>): Enable for all vector modes.
3177 (aarch64_get_lanedi): Remove misleading constraints.
3178 * config/aarch64/arm_neon.h
3179 (__aarch64_vget_lane_any): Define.
3180 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
3181 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
3182 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
3183 * config/aarch64/iterators.md (VDQQH): New.
3187 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
3189 * config/aarch64/arm_none.h
3190 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
3192 2013-08-26 Kugan Vivekanandarajah <kuganv@linaro.org>
3194 Backport from trunk r201341.
3195 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
3197 * arm.md (mulhi3): New expand pattern.
3199 2013-08-16 Christophe Lyon <christophe.lyon@linaro.org>
3201 * LINARO-VERSION: Bump version.
3203 2013-08-14 Christophe Lyon <christophe.lyon@linaro.org>
3205 GCC Linaro 4.8-2013.08 released.
3206 * LINARO-VERSION: Update.
3208 2013-08-08 Christophe Lyon <christophe.lyon@linaro.org>
3211 r198489,200167,200199,200510,200513,200515,200576.
3212 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
3214 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
3215 define_insn to define_insn_and_split.
3216 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
3217 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
3218 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
3219 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
3220 (thumb2_negscc): Likewise.
3222 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
3224 * config/arm/arm.md (attribute "insn"): Move multiplication and division
3226 (attribute "type"): ... here. Remove mult.
3227 (attribute "mul32"): New attribute.
3228 (attribute "mul64"): Add umaal.
3229 (*arm_mulsi3): Update attributes.
3230 (*arm_mulsi3_v6): Likewise.
3231 (*thumb_mulsi3): Likewise.
3232 (*thumb_mulsi3_v6): Likewise.
3233 (*mulsi3_compare0): Likewise.
3234 (*mulsi3_compare0_v6): Likewise.
3235 (*mulsi_compare0_scratch): Likewise.
3236 (*mulsi_compare0_scratch_v6): Likewise.
3237 (*mulsi3addsi): Likewise.
3238 (*mulsi3addsi_v6): Likewise.
3239 (*mulsi3addsi_compare0): Likewise.
3240 (*mulsi3addsi_compare0_v6): Likewise.
3241 (*mulsi3addsi_compare0_scratch): Likewise.
3242 (*mulsi3addsi_compare0_scratch_v6): Likewise.
3243 (*mulsi3subsi): Likewise.
3244 (*mulsidi3adddi): Likewise.
3245 (*mulsi3addsi_v6): Likewise.
3246 (*mulsidi3adddi_v6): Likewise.
3247 (*mulsidi3_nov6): Likewise.
3248 (*mulsidi3_v6): Likewise.
3249 (*umulsidi3_nov6): Likewise.
3250 (*umulsidi3_v6): Likewise.
3251 (*umulsidi3adddi): Likewise.
3252 (*umulsidi3adddi_v6): Likewise.
3253 (*smulsi3_highpart_nov6): Likewise.
3254 (*smulsi3_highpart_v6): Likewise.
3255 (*umulsi3_highpart_nov6): Likewise.
3256 (*umulsi3_highpart_v6): Likewise.
3257 (mulhisi3): Likewise.
3258 (*mulhisi3tb): Likewise.
3259 (*mulhisi3bt): Likewise.
3260 (*mulhisi3tt): Likewise.
3261 (maddhisi4): Likewise.
3262 (*maddhisi4tb): Likewise.
3263 (*maddhisi4tt): Likewise.
3264 (maddhidi4): Likewise.
3265 (*maddhidi4tb): Likewise.
3266 (*maddhidi4tt): Likewise.
3268 (udivsi3): Likewise.
3269 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
3270 (thumb2_mulsi_short_compare0): Likewise.
3271 (thumb2_mulsi_short_compare0_scratch): Likewise.
3272 * config/arm/arm1020e.md (1020mult1): Update attribute change.
3273 (1020mult2): Likewise.
3274 (1020mult3): Likewise.
3275 (1020mult4): Likewise.
3276 (1020mult5): Likewise.
3277 (1020mult6): Likewise.
3278 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute change.
3279 (cortex_a15_mult64): Likewise.
3280 (cortex_a15_sdiv): Likewise.
3281 (cortex_a15_udiv): Likewise.
3282 * config/arm/arm1026ejs.md (mult1): Update attribute change.
3288 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
3289 (pj4_ir_div): Likewise.
3290 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
3291 (11_mult2): Likewise.
3292 (11_mult3): Likewise.
3293 (11_mult4): Likewise.
3294 (11_mult5): Likewise.
3295 (11_mult6): Likewise.
3296 (11_mult7): Likewise.
3297 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
3298 (cortex_a8_mla): Likewise.
3299 (cortex_a8_mull): Likewise.
3300 (cortex_a8_smulwy): Likewise.
3301 (cortex_a8_smlald): Likewise.
3302 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
3303 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
3304 (cortex_r4_mul_3): Likewise.
3305 (cortex_r4_mla_4): Likewise.
3306 (cortex_r4_mla_3): Likewise.
3307 (cortex_r4_smlald): Likewise.
3308 (cortex_r4_mull): Likewise.
3309 (cortex_r4_sdiv): Likewise.
3310 (cortex_r4_udiv): Likewise.
3311 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
3312 (cortex_a7_idiv): Likewise.
3313 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
3314 (9_mult2): Likewise.
3315 (9_mult3): Likewise.
3316 (9_mult4): Likewise.
3317 (9_mult5): Likewise.
3318 (9_mult6): Likewise.
3319 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
3320 (cortex_a53_sdiv): Likewise.
3321 (cortex_a53_udiv): Likewise.
3322 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
3323 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
3324 (mp626_mult2): Likewise.
3325 (mp626_mult3): Likewise.
3326 (mp626_mult4): Likewise.
3327 * config/arm/fa526.md (526_mult1): Update attribute change.
3328 (526_mult2): Likewise.
3329 * config/arm/arm-generic.md (mult): Update attribute change.
3330 (mult_ldsched_strongarm): Likewise.
3331 (mult_ldsched): Likewise.
3332 (multi_cycle): Likewise.
3333 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
3334 * config/arm/fa606te.md (606te_mult1): Update attribute change.
3335 (606te_mult2): Likewise.
3336 (606te_mult3): Likewise.
3337 (606te_mult4): Likewise.
3338 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
3339 (cortex_a9_mac16): Likewise.
3340 (cortex_a9_multiply): Likewise.
3341 (cortex_a9_mac): Likewise.
3342 (cortex_a9_multiply_long): Likewise.
3343 * config/arm/fa626te.md (626te_mult1): Update attribute change.
3344 (626te_mult2): Likewise.
3345 (626te_mult3): Likewise.
3346 (626te_mult4): Likewise.
3348 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
3350 * config/arm/vfp.md: Move VFP instruction classification documentation
3352 * config/arm/arm.md: ... here. Update instruction classification
3355 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3357 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
3358 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
3359 (movdfcc): Likewise.
3360 * config/arm/vfp.md (*thumb2_movsf_vfp):
3361 Disable predication for arm_restrict_it.
3362 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
3363 (*thumb2_movdfcc_vfp): Likewise.
3364 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
3365 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
3366 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
3367 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
3368 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
3369 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
3370 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
3371 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
3372 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
3373 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
3374 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
3375 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
3376 Disable predication for arm_restrict_it.
3378 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3380 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
3382 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
3383 (mulsi3subsi): Likewise.
3384 (mulsidi3adddi): Likewise.
3385 (mulsidi3_v6): Likewise.
3386 (umulsidi3_v6): Likewise.
3387 (umulsidi3adddi_v6): Likewise.
3388 (smulsi3_highpart_v6): Likewise.
3389 (umulsi3_highpart_v6): Likewise.
3390 (mulhisi3tb): Likewise.
3391 (mulhisi3bt): Likewise.
3392 (mulhisi3tt): Likewise.
3393 (maddhisi4): Likewise.
3394 (maddhisi4tb): Likewise.
3395 (maddhisi4tt): Likewise.
3396 (maddhidi4): Likewise.
3397 (maddhidi4tb): Likewise.
3398 (maddhidi4tt): Likewise.
3399 (zeroextractsi_compare0_scratch): Likewise.
3400 (insv_zero): Likewise.
3401 (insv_t2): Likewise.
3402 (anddi_notzesidi_di): Likewise.
3403 (anddi_notsesidi_di): Likewise.
3404 (andsi_notsi_si): Likewise.
3405 (iordi_zesidi_di): Likewise.
3406 (xordi_zesidi_di): Likewise.
3407 (andsi_iorsi3_notsi): Likewise.
3409 (smax_m1): Likewise.
3411 (not_shiftsi): Likewise.
3412 (unaligned_loadsi): Likewise.
3413 (unaligned_loadhis): Likewise.
3414 (unaligned_loadhiu): Likewise.
3415 (unaligned_storesi): Likewise.
3416 (unaligned_storehi): Likewise.
3417 (extv_reg): Likewise.
3418 (extzv_t2): Likewise.
3420 (udivsi3): Likewise.
3421 (arm_zero_extendhisi2addsi): Likewise.
3422 (arm_zero_extendqisi2addsi): Likewise.
3423 (compareqi_eq0): Likewise.
3424 (arm_extendhisi2_v6): Likewise.
3425 (arm_extendqisi2addsi): Likewise.
3426 (arm_movt): Likewise.
3427 (thumb2_ldrd): Likewise.
3428 (thumb2_ldrd_base): Likewise.
3429 (thumb2_ldrd_base_neg): Likewise.
3430 (thumb2_strd): Likewise.
3431 (thumb2_strd_base): Likewise.
3432 (thumb2_strd_base_neg): Likewise.
3433 (arm_negsi2): Add alternative for 16-bit encoding.
3434 (arm_one_cmplsi2): Likewise.
3436 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3438 * config/arm/constraints.md (Ts): New constraint.
3439 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
3441 (compare_scc): Use "Ts" constraint for operand 0.
3442 (ior_scc_scc): Likewise.
3443 (and_scc_scc): Likewise.
3444 (and_scc_scc_nodom): Likewise.
3445 (ior_scc_scc_cmp): Likewise for operand 7.
3446 (and_scc_scc_cmp): Likewise.
3447 * config/arm/thumb2.md (thumb2_movsi_insn):
3448 Add alternatives for 16-bit encodings.
3449 (thumb2_movhi_insn): Likewise.
3450 (thumb2_movsicc_insn): Likewise.
3451 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
3452 (thumb2_negscc): Use "Ts" constraint.
3453 Move mvn instruction outside cond_exec block.
3454 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
3455 for 16-bit encodings.
3457 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
3459 * arm.md (attribute "wtype"): Delete. Move attribute values from here
3461 (attribute "type"): ... here, and prefix with "wmmx_".
3462 (attribute "core_cycles"): Update for attribute changes.
3463 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
3464 (tbcstv4hi): Likewise.
3465 (tbcstv2si): Likewise.
3466 (iwmmxt_iordi3): Likewise.
3467 (iwmmxt_xordi3): Likewise.
3468 (iwmmxt_anddi3): Likewise.
3469 (iwmmxt_nanddi3): Likewise.
3470 (iwmmxt_arm_movdi): Likewise.
3471 (iwmmxt_movsi_insn): Likewise.
3472 (mov<mode>_internal): Likewise.
3473 (and<mode>3_iwmmxt): Likewise.
3474 (ior<mode>3_iwmmxt): Likewise.
3475 (xor<mode>3_iwmmxt): Likewise.
3476 (add<mode>3_iwmmxt): Likewise.
3477 (ssaddv8qi3): Likewise.
3478 (ssaddv4hi3): Likewise.
3479 (ssaddv2si3): Likewise.
3480 (usaddv8qi3): Likewise.
3481 (usaddv4hi3): Likewise.
3482 (usaddv2si3): Likewise.
3483 (sub<mode>3_iwmmxt): Likewise.
3484 (sssubv8qi3): Likewise.
3485 (sssubv4hi3): Likewise.
3486 (sssubv2si3): Likewise.
3487 (ussubv8qi3): Likewise.
3488 (ussubv4hi3): Likewise.
3489 (ussubv2si3): Likewise.
3490 (mulv4hi3_iwmmxt): Likewise.
3491 (smulv4hi3_highpart): Likewise.
3492 (umulv4hi3_highpart): Likewise.
3493 (iwmmxt_wmacs): Likewise.
3494 (iwmmxt_wmacsz): Likewise.
3495 (iwmmxt_wmacu): Likewise.
3496 (iwmmxt_wmacuz): Likewise.
3497 (iwmmxt_clrdi): Likewise.
3498 (iwmmxt_clrv8qi): Likewise.
3499 (iwmmxt_clr4hi): Likewise.
3500 (iwmmxt_clr2si): Likewise.
3501 (iwmmxt_uavgrndv8qi3): Likewise.
3502 (iwmmxt_uavgrndv4hi3): Likewise.
3503 (iwmmxt_uavgv8qi3): Likewise.
3504 (iwmmxt_uavgv4hi3): Likewise.
3505 (iwmmxt_tinsrb): Likewise.
3506 (iwmmxt_tinsrh): Likewise.
3507 (iwmmxt_tinsrw): Likewise.
3508 (iwmmxt_textrmub): Likewise.
3509 (iwmmxt_textrmsb): Likewise.
3510 (iwmmxt_textrmuh): Likewise.
3511 (iwmmxt_textrmsh): Likewise.
3512 (iwmmxt_textrmw): Likewise.
3513 (iwmxxt_wshufh): Likewise.
3514 (eqv8qi3): Likewise.
3515 (eqv4hi3): Likewise.
3516 (eqv2si3): Likewise.
3517 (gtuv8qi3): Likewise.
3518 (gtuv4hi3): Likewise.
3519 (gtuv2si3): Likewise.
3520 (gtv8qi3): Likewise.
3521 (gtv4hi3): Likewise.
3522 (gtv2si3): Likewise.
3523 (smax<mode>3_iwmmxt): Likewise.
3524 (umax<mode>3_iwmmxt): Likewise.
3525 (smin<mode>3_iwmmxt): Likewise.
3526 (umin<mode>3_iwmmxt): Likewise.
3527 (iwmmxt_wpackhss): Likewise.
3528 (iwmmxt_wpackwss): Likewise.
3529 (iwmmxt_wpackdss): Likewise.
3530 (iwmmxt_wpackhus): Likewise.
3531 (iwmmxt_wpackwus): Likewise.
3532 (iwmmxt_wpackdus): Likewise.
3533 (iwmmxt_wunpckihb): Likewise.
3534 (iwmmxt_wunpckihh): Likewise.
3535 (iwmmxt_wunpckihw): Likewise.
3536 (iwmmxt_wunpckilb): Likewise.
3537 (iwmmxt_wunpckilh): Likewise.
3538 (iwmmxt_wunpckilw): Likewise.
3539 (iwmmxt_wunpckehub): Likewise.
3540 (iwmmxt_wunpckehuh): Likewise.
3541 (iwmmxt_wunpckehuw): Likewise.
3542 (iwmmxt_wunpckehsb): Likewise.
3543 (iwmmxt_wunpckehsh): Likewise.
3544 (iwmmxt_wunpckehsw): Likewise.
3545 (iwmmxt_wunpckelub): Likewise.
3546 (iwmmxt_wunpckeluh): Likewise.
3547 (iwmmxt_wunpckeluw): Likewise.
3548 (iwmmxt_wunpckelsb): Likewise.
3549 (iwmmxt_wunpckelsh): Likewise.
3550 (iwmmxt_wunpckelsw): Likewise.
3551 (ror<mode>3): Likewise.
3552 (ashr<mode>3_iwmmxt): Likewise.
3553 (lshr<mode>3_iwmmxt): Likewise.
3554 (ashl<mode>3_iwmmxt): Likewise.
3555 (ror<mode>3_di): Likewise.
3556 (ashr<mode>3_di): Likewise.
3557 (lshr<mode>3_di): Likewise.
3558 (ashl<mode>3_di): Likewise.
3559 (iwmmxt_wmadds): Likewise.
3560 (iwmmxt_wmaddu): Likewise.
3561 (iwmmxt_tmia): Likewise.
3562 (iwmmxt_tmiaph): Likewise.
3563 (iwmmxt_tmiabb): Likewise.
3564 (iwmmxt_tmiatb): Likewise.
3565 (iwmmxt_tmiabt): Likewise.
3566 (iwmmxt_tmiatt): Likewise.
3567 (iwmmxt_tmovmskb): Likewise.
3568 (iwmmxt_tmovmskh): Likewise.
3569 (iwmmxt_tmovmskw): Likewise.
3570 (iwmmxt_waccb): Likewise.
3571 (iwmmxt_wacch): Likewise.
3572 (iwmmxt_waccw): Likewise.
3573 (iwmmxt_waligni): Likewise.
3574 (iwmmxt_walignr): Likewise.
3575 (iwmmxt_walignr0): Likewise.
3576 (iwmmxt_walignr1): Likewise.
3577 (iwmmxt_walignr2): Likewise.
3578 (iwmmxt_walignr3): Likewise.
3579 (iwmmxt_wsadb): Likewise.
3580 (iwmmxt_wsadh): Likewise.
3581 (iwmmxt_wsadbz): Likewise.
3582 (iwmmxt_wsadhz): Likewise.
3583 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
3584 (iwmmxt_wabsdiffb): Likewise.
3585 (iwmmxt_wabsdiffh): Likewise.
3586 (iwmmxt_wabsdiffw): Likewise.
3587 (iwmmxt_waddsubhx): Likewise
3588 (iwmmxt_wsubaddhx): Likewise.
3589 (addc<mode>3): Likewise.
3590 (iwmmxt_avg4): Likewise.
3591 (iwmmxt_avg4r): Likewise.
3592 (iwmmxt_wmaddsx): Likewise.
3593 (iwmmxt_wmaddux): Likewise.
3594 (iwmmxt_wmaddsn): Likewise.
3595 (iwmmxt_wmaddun): Likewise.
3596 (iwmmxt_wmulwsm): Likewise.
3597 (iwmmxt_wmulwum): Likewise.
3598 (iwmmxt_wmulsmr): Likewise.
3599 (iwmmxt_wmulumr): Likewise.
3600 (iwmmxt_wmulwsmr): Likewise.
3601 (iwmmxt_wmulwumr): Likewise.
3602 (iwmmxt_wmulwl): Likewise.
3603 (iwmmxt_wqmulm): Likewise.
3604 (iwmmxt_wqmulwm): Likewise.
3605 (iwmmxt_wqmulmr): Likewise.
3606 (iwmmxt_wqmulwmr): Likewise.
3607 (iwmmxt_waddbhusm): Likewise.
3608 (iwmmxt_waddbhusl): Likewise.
3609 (iwmmxt_wqmiabb): Likewise.
3610 (iwmmxt_wqmiabt): Likewise.
3611 (iwmmxt_wqmiatb): Likewise.
3612 (iwmmxt_wqmiatt): Likewise.
3613 (iwmmxt_wqmiabbn): Likewise.
3614 (iwmmxt_wqmiabtn): Likewise.
3615 (iwmmxt_wqmiatbn): Likewise.
3616 (iwmmxt_wqmiattn): Likewise.
3617 (iwmmxt_wmiabb): Likewise.
3618 (iwmmxt_wmiabt): Likewise.
3619 (iwmmxt_wmiatb): Likewise.
3620 (iwmmxt_wmiatt): Likewise.
3621 (iwmmxt_wmiabbn): Likewise.
3622 (iwmmxt_wmiabtn): Likewise.
3623 (iwmmxt_wmiatbn): Likewise.
3624 (iwmmxt_wmiattn): Likewise.
3625 (iwmmxt_wmiawbb): Likewise.
3626 (iwmmxt_wmiawbt): Likewise.
3627 (iwmmxt_wmiawtb): Likewise.
3628 (iwmmxt_wmiawtt): Likewise.
3629 (iwmmxt_wmiawbbn): Likewise.
3630 (iwmmxt_wmiawbtn): Likewise.
3631 (iwmmxt_wmiawtbn): Likewise.
3632 (iwmmxt_wmiawttn): Likewise.
3633 (iwmmxt_wmerge): Likewise.
3634 (iwmmxt_tandc<mode>3): Likewise.
3635 (iwmmxt_torc<mode>3): Likewise.
3636 (iwmmxt_torvsc<mode>3): Likewise.
3637 (iwmmxt_textrc<mode>3): Likewise.
3638 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
3639 (wmmxt_pack): Likewise.
3640 (wmmxt_mult_c1): Likewise.
3641 (wmmxt_mult_c2): Likewise.
3642 (wmmxt_alu_c1): Likewise.
3643 (wmmxt_alu_c2): Likewise.
3644 (wmmxt_alu_c3): Likewise.
3645 (wmmxt_transfer_c1): Likewise.
3646 (wmmxt_transfer_c2): Likewise.
3647 (wmmxt_transfer_c3): Likewise.
3648 (marvell_f_iwmmxt_wstr): Likewise.
3649 (marvell_f_iwmmxt_wldr): Likewise.
3651 2013-08-07 Christophe Lyon <christophe.lyon@linaro.org>
3653 Backport from trunk r201237.
3654 2013-07-25 Terry Guo <terry.guo@arm.com>
3656 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
3657 shift_add/shift_sub0/shift_sub1 RTXs.
3659 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
3661 Backport from trunk r200596,201067,201083.
3662 2013-07-02 Ian Bolton <ian.bolton@arm.com>
3664 * config/aarch64/aarch64-simd.md (absdi2): Support abs for
3667 2013-07-19 Ian Bolton <ian.bolton@arm.com>
3669 * config/aarch64/arm_neon.h (vabs_s64): New function
3671 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
3673 * config/aarch64/aarch64-builtins.c
3674 (aarch64_fold_builtin): Fold abs in all modes.
3675 * config/aarch64/aarch64-simd-builtins.def
3676 (abs): Enable for all modes.
3677 * config/aarch64/arm_neon.h
3678 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
3679 (vabs_f64): Add missing intrinsic.
3681 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
3683 Backport from trunk r198735,198831,199959.
3684 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
3686 * config/aarch64/aarch64.md: New movtf split.
3687 (*movtf_aarch64): Update.
3688 (aarch64_movdi_tilow): Handle TF modes and rename to
3689 aarch64_movdi_<mode>low.
3690 (aarch64_movdi_tihigh): Handle TF modes and rename to
3691 aarch64_movdi_<mode>high
3692 (aarch64_movtihigh_di): Handle TF modes and rename to
3693 aarch64_mov<mode>high_di
3694 (aarch64_movtilow_di): Handle TF modes and rename to
3695 aarch64_mov<mode>low_di
3696 (aarch64_movtilow_tilow): Remove spurious whitespace.
3697 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
3699 (aarch64_print_operand): Update.
3701 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
3703 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
3704 similar switch cases.
3705 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
3706 (aarch64_simd_mov_to_<mode>low): Delete.
3707 (aarch64_simd_mov_to_<mode>high): Delete.
3708 (move_lo_quad_<mode>): Add w<-r alternative.
3709 (aarch64_simd_move_hi_quad_<mode>): Likewise.
3710 (aarch64_simd_mov_from_*): Update type attribute.
3711 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
3714 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
3716 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
3718 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
3720 Backport from trunk r199438,199439,201326.
3722 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3724 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
3725 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
3726 (arm_emit_vfp_multi_reg_pop): Likewise.
3727 (thumb2_emit_ldrd_pop): Likewise.
3728 (arm_expand_epilogue): Add misc REG_CFA notes.
3729 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
3731 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
3732 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3734 * config/arm/arm-protos.h: Add and update function protos.
3735 * config/arm/arm.c (use_simple_return_p): New added.
3736 (thumb2_expand_return): Check simple_return flag.
3737 * config/arm/arm.md: Add simple_return and conditional simple_return.
3738 * config/arm/iterators.md: Add iterator for return and simple_return.
3740 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3742 PR rtl-optimization/57637
3743 * function.c (move_insn_for_shrink_wrap): Also check the
3744 GEN set of the LIVE problem for the liveness analysis
3745 if it exists, otherwise give up.
3747 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
3749 Backport from trunk r198928,198973,199203,201240,201241,201307.
3750 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3753 * config/arm/predicates.md (call_insn_operand): New predicate.
3754 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
3755 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
3756 if insn is not a tail call.
3757 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
3759 * config/arm/arm.h (enum reg_class): New caller save register class.
3760 (REG_CLASS_NAMES): Likewise.
3761 (REG_CLASS_CONTENTS): Likewise.
3762 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
3765 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3768 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3771 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3775 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
3776 (any_sibcall_could_use_r3): this and handle indirect calls.
3777 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
3779 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3784 * config/arm/arm.md ("*sibcall_value_insn): Replace use of
3785 Ss with US. Adjust output for v5 and v4t.
3786 (*sibcall_value_insn): Likewise and loosen predicate on
3788 * config/arm/constraints.md ("Ss"): Rename to US.
3790 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3792 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
3794 2013-07-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3795 Fix incorrect changelog entry.
3802 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3804 Backport from trunk r200922.
3805 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
3807 * config/aarch64/aarch64-protos.h
3808 (aarch64_simd_immediate_valid_for_move): Remove.
3809 * config/aarch64/aarch64.c (simd_immediate_info): New member.
3810 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
3812 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
3814 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3816 Backport from trunk r200670.
3817 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
3819 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
3820 (tune_params): New member 'const vec_costs'.
3821 * config/aarch64/aarch64.c (generic_vector_cost): New.
3822 (generic_tunings): New member 'generic_vector_cost'.
3823 (aarch64_builtin_vectorization_cost): New.
3824 (aarch64_add_stmt_cost): New.
3825 (TARGET_VECTORIZE_ADD_STMT_COST): New.
3826 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
3828 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3830 Backport from trunk r200637.
3831 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
3833 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
3834 (ARM_ABI_AAPCS64): Ditto.
3836 (ARM_DEFAULT_ABI): Ditto.
3838 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3840 Backport from trunk r200532, r200565.
3841 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
3843 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
3846 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
3848 * config/aarch64/aarch64.c: Remove junk from the beginning of the
3851 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3853 Backport from trunk r200531.
3854 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
3856 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
3857 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
3859 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3861 Backport from trunk r200519.
3862 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
3864 * config/aarch64/aarch64-protos.h
3865 aarch64_classify_symbol_expression): Define.
3866 (aarch64_symbolic_constant_p): Remove.
3867 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
3868 static. Fix line length and white space.
3869 (aarch64_symbolic_constant_p): Remove.
3870 * config/aarch64/predicates.md (aarch64_valid_symref):
3871 Use aarch64_classify_symbol_expression.
3873 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3875 Backport from trunk r200466, r200467.
3876 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
3878 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
3879 parameter 'mode' of type 'enum machine_mode mode'; change to pass
3880 'mode' to force_reg.
3881 (aarch64_add_offset): Update calls to aarch64_force_temporary.
3882 (aarch64_expand_mov_immediate): Likewise.
3884 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
3886 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
3887 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
3889 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
3891 Backport from trunk r200419.
3892 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
3894 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
3895 * config/arm/arm-protos.h (arm_max_conditional_execute): New
3897 (tune_params): Update comment.
3898 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
3899 (arm_max_conditional_execute): New function.
3900 (thumb2_final_prescan_insn): Use max_insn_skipped and
3901 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
3903 2013-07-24 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
3905 * LINARO-VERSION: Bump version.
3907 2013-07-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
3909 GCC Linaro 4.8-2013.07-1 released.
3910 * LINARO-VERSION: Update.
3912 2013-07-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
3914 Backport from trunk r201005.
3915 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
3918 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
3921 2013-07-09 Christophe Lyon <christophe.lyon@linaro.org>
3923 * LINARO-VERSION: Bump version.
3925 2013-07-05 Christophe Lyon <christophe.lyon@linaro.org>
3927 GCC Linaro 4.8-2013.07 released.
3928 * LINARO-VERSION: Update.
3930 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
3932 Revert backport from trunk r198928,198973,199203.
3933 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3937 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
3938 (any_sibcall_could_use_r3): this and handle indirect calls.
3939 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
3941 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3944 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3947 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3950 * config/arm/predicates.md (call_insn_operand): New predicate.
3951 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
3952 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
3953 if insn is not a tail call.
3954 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
3956 * config/arm/arm.h (enum reg_class): New caller save register class.
3957 (REG_CLASS_NAMES): Likewise.
3958 (REG_CLASS_CONTENTS): Likewise.
3959 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
3962 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
3964 Revert backport from mainline (r199438, r199439)
3965 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3967 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
3968 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
3969 (arm_emit_vfp_multi_reg_pop): Likewise.
3970 (thumb2_emit_ldrd_pop): Likewise.
3971 (arm_expand_epilogue): Add misc REG_CFA notes.
3972 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
3974 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
3975 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3977 * config/arm/arm-protos.h: Add and update function protos.
3978 * config/arm/arm.c (use_simple_return_p): New added.
3979 (thumb2_expand_return): Check simple_return flag.
3980 * config/arm/arm.md: Add simple_return and conditional simple_return.
3981 * config/arm/iterators.md: Add iterator for return and simple_return.
3982 * gcc.dg/shrink-wrap-alloca.c: New added.
3983 * gcc.dg/shrink-wrap-pretend.c: New added.
3984 * gcc.dg/shrink-wrap-sibcall.c: New added.
3986 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
3988 Backport from trunk r199640, 199705, 199733, 199734, 199739.
3989 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3991 * rtl.def: Add extra fourth optional field to define_cond_exec.
3992 * gensupport.c (process_one_cond_exec): Process attributes from
3994 * doc/md.texi: Document fourth field in define_cond_exec.
3996 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3998 * config/arm/arm.md (enabled_for_depr_it): New attribute.
3999 (predicable_short_it): Likewise.
4000 (predicated): Likewise.
4001 (enabled): Handle above.
4002 (define_cond_exec): Set predicated attribute to yes.
4004 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4006 * config/arm/sync.md (atomic_loaddi_1):
4007 Disable predication for arm_restrict_it.
4008 (arm_load_exclusive<mode>): Likewise.
4009 (arm_load_exclusivesi): Likewise.
4010 (arm_load_exclusivedi): Likewise.
4011 (arm_load_acquire_exclusive<mode>): Likewise.
4012 (arm_load_acquire_exclusivesi): Likewise.
4013 (arm_load_acquire_exclusivedi): Likewise.
4014 (arm_store_exclusive<mode>): Likewise.
4015 (arm_store_exclusive<mode>): Likewise.
4016 (arm_store_release_exclusivedi): Likewise.
4017 (arm_store_release_exclusive<mode>): Likewise.
4019 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4021 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
4023 * config/arm/ldmstm.md: Regenerate.
4025 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4027 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
4028 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
4029 arm_usatsihi): Adjust alternatives for arm_restrict_it.
4031 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
4033 Backport from trunk 200096
4035 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
4037 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
4039 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
4040 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
4041 (aarch64_<su>mlsl<mode>): Likewise.
4043 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
4045 Backport from trunk 200062
4047 2013-06-13 Bin Cheng <bin.cheng@arm.com>
4048 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
4049 CONVERT_EXPR as equal nodes.
4051 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
4052 Backport from trunk 199810
4054 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4056 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
4057 Clean up alternatives.
4059 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
4061 Backport from trunk 200152
4062 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
4064 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
4065 alternative and update.
4066 (aarch64_dup_lanedi): Delete.
4067 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
4068 * config/aarch64/aarch64-simd-builtins.def: Update.
4070 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
4072 Backport from trunk 200061
4073 2013-06-13 Bin Cheng <bin.cheng@arm.com>
4075 * rtlanal.c (noop_move_p): Check the code to be executed for
4078 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
4080 Backport from trunk 199694
4081 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4083 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
4084 (arm_option_override): Override arm_restrict_it where appropriate.
4085 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
4086 * config/arm/arm.opt (mrestrict-it): New command-line option.
4087 * doc/invoke.texi: Document -mrestrict-it.
4089 2013-06-20 Christophe Lyon <christophe.lyon@linaro.org>
4091 Backport from trunk r198683.
4092 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
4094 * config/arm/arm.c (arm_asan_shadow_offset): New function.
4095 (TARGET_ASAN_SHADOW_OFFSET): Define.
4096 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
4097 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
4099 2013-06-18 Rob Savoye <rob.savoye@linaro.org>
4101 * LINARO-VERSION: Bump version.
4103 2013-06-11 Rob Savoye <rob.savoye@linaro.org>
4105 GCC Linaro gcc-linaro-4.8-2013.06 released.
4106 * LINARO-VERSION: Update.
4108 2013-06-06 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4110 Backport from mainline (r199438, r199439)
4111 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4113 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
4114 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
4115 (arm_emit_vfp_multi_reg_pop): Likewise.
4116 (thumb2_emit_ldrd_pop): Likewise.
4117 (arm_expand_epilogue): Add misc REG_CFA notes.
4118 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
4120 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
4121 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4123 * config/arm/arm-protos.h: Add and update function protos.
4124 * config/arm/arm.c (use_simple_return_p): New added.
4125 (thumb2_expand_return): Check simple_return flag.
4126 * config/arm/arm.md: Add simple_return and conditional simple_return.
4127 * config/arm/iterators.md: Add iterator for return and simple_return.
4128 * gcc.dg/shrink-wrap-alloca.c: New added.
4129 * gcc.dg/shrink-wrap-pretend.c: New added.
4130 * gcc.dg/shrink-wrap-sibcall.c: New added.
4132 2013-06-06 Kugan Vivekanandarajah <kuganv@linaro.org>
4134 Backport from mainline r198879:
4136 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
4138 * config/arm/arm.h (EPILOGUE_USES): Only return true
4139 for LR_REGNUM after epilogue_completed.
4141 2013-06-05 Christophe Lyon <christophe.lyon@linaro.org>
4143 Backport from trunk r199652,199653,199656,199657,199658.
4145 2013-06-04 Ian Bolton <ian.bolton@arm.com>
4147 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
4148 into function to generate MOVI instruction.
4149 * config/aarch64/aarch64.c (aarch64_simd_container_mode):
4151 (aarch64_preferred_simd_mode): Turn into wrapper.
4152 (aarch64_output_scalar_simd_mov_immediate): New function.
4153 * config/aarch64/aarch64-protos.h: Add prototype for above.
4155 2013-06-04 Ian Bolton <ian.bolton@arm.com>
4157 * config/aarch64/aarch64.c (simd_immediate_info): Remove
4158 element_char member.
4159 (sizetochar): Return signed char.
4160 (aarch64_simd_valid_immediate): Remove elchar and other
4161 unnecessary variables.
4162 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
4163 Calculate element_char as required.
4164 * config/aarch64/aarch64-protos.h: Update and move prototype
4165 for aarch64_output_simd_mov_immediate.
4166 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
4169 2013-06-04 Ian Bolton <ian.bolton@arm.com>
4171 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
4172 information completed by aarch64_simd_valid_immediate.
4173 (aarch64_legitimate_constant_p): Update arguments.
4174 (aarch64_simd_valid_immediate): Work with struct rather than many
4176 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
4177 (aarch64_simd_make_constant): Update arguments.
4178 (aarch64_output_simd_mov_immediate): Work with struct rather than
4179 many pointers. Output immediate directly rather than as operand.
4180 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
4182 * config/aarch64/constraints.md (Dn): Update arguments.
4184 2013-06-04 Ian Bolton <ian.bolton@arm.com>
4186 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
4188 (aarch64_simd_immediate_valid_for_move): Remove.
4189 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
4190 (aarch64_simd_make_constant): Update call.
4191 (aarch64_output_simd_mov_immediate): Update call.
4192 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
4194 * config/aarch64/constraints.md (Dn): Update call.
4196 2013-06-04 Ian Bolton <ian.bolton@arm.com>
4198 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
4199 return type to bool for prototype.
4200 (aarch64_legitimate_constant_p): Check for true instead of not -1.
4201 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
4202 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
4204 2013-06-04 Christophe Lyon <christophe.lyon@linaro.org>
4206 Backport from trunk r199261.
4207 2013-05-23 Christian Bruel <christian.bruel@st.com>
4210 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
4212 2013-06-03 Christophe Lyon <christophe.lyon@linaro.org>
4215 r198890,199254,199259,199260,199293,199407,199408,199454,199544,199545.
4217 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
4219 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
4220 Remove un-necessary braces.
4222 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
4224 * config/aarch64/aarch64.c (aarch64_classify_symbol):
4225 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
4227 2013-05-30 Ian Bolton <ian.bolton@arm.com>
4229 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
4230 (*insv_reg<mode>): New define_insn.
4232 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4233 Marcus Shawcroft <marcus.shawcroft@arm.com>
4235 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
4236 SYMBOL_TINY_ABSOLUTE.
4237 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
4238 SYMBOL_TINY_ABSOLUTE.
4239 (aarch64_expand_mov_immediate): Likewise.
4240 (aarch64_classify_symbol): Likewise.
4241 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
4242 Permit SYMBOL_TINY_ABSOLUTE.
4243 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
4245 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4246 Marcus Shawcroft <marcus.shawcroft@arm.com>
4248 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
4249 Refactor if/switch. Replace gcc_assert with if.
4251 2013-05-24 Ian Bolton <ian.bolton@arm.com>
4253 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
4254 X format specifier to only display bottom 16 bits.
4255 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
4256 immediate to match for operand 2, since it will be masked.
4258 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4259 Marcus Shawcroft <marcus.shawcroft@arm.com>
4261 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
4262 * config/aarch64/constraints.md (Usa): Remove.
4263 * doc/md.texi (AArch64 Usa): Remove.
4265 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4266 Marcus Shawcroft <marcus.shawcroft@arm.com>
4268 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
4269 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
4270 * config/aarch64/predicates.md (aarch64_const_address): Remove.
4271 (aarch64_mov_operand): Use aarch64_mov_operand_p.
4273 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
4275 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
4276 instruction (AdvSIMD).
4277 * config/aarch64/aarch64-builtins.c
4278 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
4279 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
4281 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
4283 * config/aarch64/aarch64-simd.md
4284 (aarch64_vcond_internal<mode>): Rename to...
4285 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
4286 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
4287 float modes. Clarify all iterator modes.
4288 (vcond<mode><mode>): Use new name for vcond expanders.
4289 (vcond<v_cmp_result><mode>): Likewise.
4290 (vcondu<mode><mode>: Likewise.
4291 * config/aarch64/iterators.md (VDQF_COND): New.
4293 2013-05-29 Christophe Lyon <christophe.lyon@linaro.org>
4295 Backport from trunk r198928,198973,199203.
4296 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4300 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
4301 (any_sibcall_could_use_r3): this and handle indirect calls.
4302 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
4304 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4307 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
4310 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4313 * config/arm/predicates.md (call_insn_operand): New predicate.
4314 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
4315 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
4316 if insn is not a tail call.
4317 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
4319 * config/arm/arm.h (enum reg_class): New caller save register class.
4320 (REG_CLASS_NAMES): Likewise.
4321 (REG_CLASS_CONTENTS): Likewise.
4322 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
4325 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
4327 Backport from trunk r198680.
4328 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
4330 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
4331 (aarch64_simd_mov<mode>): New expander.
4332 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
4333 (aarch64_simd_mov_to_<mode>high): Likewise.
4334 (aarch64_simd_mov_from_<mode>low): Likewise.
4335 (aarch64_simd_mov_from_<mode>high): Likewise.
4336 (aarch64_dup_lane<mode>): Update.
4337 (aarch64_dup_lanedi): New instruction pattern.
4338 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
4339 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
4341 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
4343 Backport from trunk r198497-198500.
4344 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4346 * config/aarch64/aarch64-builtins.c
4347 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
4348 * config/aarch64/aarch64-simd-builtins.def
4349 (reduc_splus_): Add new modes.
4350 (reduc_uplus_): New.
4351 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
4352 (reduc_uplus_v4sf): Likewise.
4353 (reduc_splus_v4sf): Likewise.
4354 (aarch64_addv<mode>): Likewise.
4355 (reduc_uplus_<mode>): Likewise.
4356 (reduc_splus_<mode>): Likewise.
4357 (aarch64_addvv2di): Likewise.
4358 (reduc_uplus_v2di): Likewise.
4359 (reduc_splus_v2di): Likewise.
4360 (aarch64_addvv2si): Likewise.
4361 (reduc_uplus_v2si): Likewise.
4362 (reduc_splus_v2si): Likewise.
4363 (reduc_<sur>plus_<mode>): New.
4364 (reduc_<sur>plus_v2di): Likewise.
4365 (reduc_<sur>plus_v2si): Likewise.
4366 (reduc_<sur>plus_v4sf): Likewise.
4367 (aarch64_addpv4sf): Likewise.
4368 * config/aarch64/arm_neon.h
4369 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
4370 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
4371 add UNSPEC_SADDV, UNSPEC_UADDV.
4373 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
4375 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4377 * config/aarch64/arm_neon.h
4378 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
4380 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4382 * config/aarch64/aarch64-builtins
4383 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
4385 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4387 * config/aarch64/aarch64-simd-builtins.def
4389 (reduc_smin_): Likewise.
4390 (reduc_umax_): Likewise.
4391 (reduc_umin_): Likewise.
4392 (reduc_smax_nan_): Likewise.
4393 (reduc_smin_nan_): Likewise.
4396 (smax): Update for V2SF, V4SF and V2DF modes.
4399 (smin_nan): Likewise.
4400 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
4401 (<su><maxmin><mode>3): ...This, refactor.
4402 (s<maxmin><mode>3): New.
4403 (<maxmin_uns><mode>3): Likewise.
4404 (reduc_<maxmin_uns>_<mode>): Refactor.
4405 (reduc_<maxmin_uns>_v4sf): Likewise.
4406 (reduc_<maxmin_uns>_v2si): Likewise.
4407 (aarch64_<fmaxmin><mode>: Remove.
4408 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
4410 (vmin<q>_f<32,64>): Likewise.
4411 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4413 (su): Add mappings for smax, smin, umax, umin.
4415 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4416 (FMAXMIN): Rename as...
4417 (FMAXMIN_UNS): ...This.
4419 (fmaxminv): Likewise.
4420 (fmaxmin): Likewise.
4422 (maxmin_uns_op): Likewise.
4424 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
4426 Backport from trunk r199241.
4427 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
4429 * config/aarch64/aarch64-simd.md
4430 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
4432 2013-05-23 Christophe Lyon <christophe.lyon@linaro.org>
4434 Backport from trunk r198970.
4435 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
4437 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
4438 * config/arm/arm.c (next_consecutive_mem): New function.
4439 (gen_movmem_ldrd_strd): Likewise.
4440 * config/arm/arm.md (movmemqi): Update condition and code.
4441 (unaligned_loaddi, unaligned_storedi): New patterns.
4443 2013-05-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4445 * LINARO-VERSION: Bump version number.
4447 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4449 GCC Linaro 4.8-2013.05 released.
4450 * LINARO-VERSION: Update.
4452 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4454 Backport from trunk r198677.
4455 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4457 * config/aarch64/aarch64.md
4458 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
4459 shift value between 0-4.
4461 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4463 Backport from trunk r198574-198575.
4464 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
4466 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
4468 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
4470 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
4471 scalar form of FABD instruction.
4473 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4475 Backport from trunk r198490-198496
4476 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4478 * config/aarch64/arm_neon.h
4479 (vac<ge, gt><sd>_f<32, 64>): Rename to...
4480 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
4481 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
4483 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4485 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
4486 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
4488 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4490 * config/aarch64/aarch64-simd.md
4491 (vcond<mode>_internal): Handle special cases for constant masks.
4492 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
4493 (vcondu<mode><mode>): Likewise.
4494 (vcond<v_cmp_result><mode>): New.
4496 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4498 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
4499 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
4500 * config/aarch64/aarch64-simd-builtins.def
4501 (cmeq): Update to BUILTIN_VALLDI.
4506 * config/aarch64/arm_neon.h
4507 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
4508 to builtins or C as appropriate.
4510 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
4512 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
4514 (cmhi): Rename to...
4516 * config/aarch64/aarch64-simd.md
4517 (simd_mode): Add SF.
4518 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
4519 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
4520 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
4521 (cstore<mode>_neg): ...This.
4522 * config/aarch64/iterators.md
4524 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4526 (UCOMPARISONS): Likewise.
4527 (optab): Add missing comparisons.
4535 (V_cmp_result): Add DF, SF modes.
4536 (v_cmp_result): Likewise.
4539 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
4541 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4543 Backport from trunk r198191.
4544 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
4546 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
4548 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@lianro.org>
4550 Backport from trunk r197838.
4551 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4553 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
4555 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
4558 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4560 Backport from trunk r198019.
4561 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4563 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
4564 (*subs_mul_imm_<mode>): New pattern.
4566 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4568 Backport from trunk r198424-198425.
4569 2013-04-29 Ian Bolton <ian.bolton@arm.com>
4571 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
4573 (movdi_aarch64): Support LDR/STR from/to D register.
4575 2013-04-29 Ian Bolton <ian.bolton@arm.com>
4577 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
4578 or higher by default.
4580 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4582 Backport from trunk r198412.
4583 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4585 * config/arm/arm.md (store_minmaxsi): Use only when
4586 optimize_insn_for_size_p.
4588 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4590 Backport from trunk 198394,198396-198400,198402-198404.
4591 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4593 * config/aarch64/arm_neon.h
4594 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
4595 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
4596 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
4597 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
4598 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
4599 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
4600 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
4601 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
4603 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4605 * config/aarch64/aarch64-simd.md
4606 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
4607 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
4608 fix_trunc, fixuns_trunc.
4609 (ftrunc<VDQF:mode>2): New.
4610 * config/aarch64/iterators.md (optab): Add fix, fixuns.
4611 (fix_trunc_optab): New.
4613 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4615 * config/aarch64/aarch64-builtins.c
4616 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
4617 iceilf, lround, iroundf.
4619 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4621 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
4622 (float_truncate_hi_): Likewise.
4623 (float_extend_lo_): Likewise.
4624 (float_truncate_lo_): Likewise.
4625 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
4626 (aarch64_float_extend_lo_v2df): Likewise.
4627 (vec_unpacks_hi_v4sf): Likewise.
4628 (aarch64_float_truncate_lo_v2sf): Likewise.
4629 (aarch64_float_truncate_hi_v4sf): Likewise.
4630 (vec_pack_trunc_v2df): Likewise.
4631 (vec_pack_trunc_df): Likewise.
4633 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4635 * config/aarch64/aarch64-builtins.c
4636 (aarch64_fold_builtin): Fold float conversions.
4637 * config/aarch64/aarch64-simd-builtins.def
4638 (floatv2si, floatv4si, floatv2di): New.
4639 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
4640 * config/aarch64/aarch64-simd.md
4641 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
4642 * config/aarch64/iterators.md (FLOATUORS): New.
4643 (optab): Add float, floatuns.
4644 (su_optab): Likewise.
4646 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
4648 * config/aarch64/aarch64-builtins.c
4649 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
4650 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
4651 (frintz): Rename to...
4653 (frintp): Rename to...
4655 (frintm): Rename to...
4657 (frinti): Rename to...
4658 (nearbyint): ...this.
4659 (frintx): Rename to...
4661 (frinta): Rename to...
4663 * config/aarch64/aarch64-simd.md
4664 (aarch64_frint<frint_suffix><mode>): Delete.
4665 (<frint_pattern><mode>2): Convert to insn.
4666 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
4667 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
4668 (frint_pattern): Likewise.
4669 (frint_suffix): Likewise.
4671 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4673 Backport from trunk r198302-198306,198316.
4674 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4676 * config/aarch64/aarch64-simd.md
4677 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
4678 (aarch64_simd_bsl<mode>): Likewise.
4679 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
4681 2013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
4683 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
4685 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4687 * config/aarch64/aarch64-builtins.c
4688 (aarch64_fold_builtin): New.
4689 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
4690 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
4691 * config/aarch64/aarch64-simd-builtins.def (abs): New.
4692 * config/aarch64/arm_neon.h
4693 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
4695 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
4696 Tejas Belagod <tejas.belagod@arm.com>
4698 * config/aarch64/aarch64-builtins.c
4699 (aarch64_gimple_fold_builtin): New.
4700 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
4701 * config/aarch64/aarch64-simd-builtins.def (addv): New.
4702 * config/aarch64/aarch64-simd.md (addpv4sf): New.
4704 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
4706 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4708 * config/aarch64/aarch64.md
4709 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
4711 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4713 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
4714 (*ngcsi_uxtw): New pattern.
4716 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4718 Backport from trunk 198298.
4719 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4720 Julian Brown <julian@codesourcery.com>
4722 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
4723 (TB_DREG): Add T_V4HF.
4724 (v4hf_UP): New macro.
4725 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
4726 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
4728 Handle initialisation of V4HF. Adjust initialisation of reinterpret
4730 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
4732 (arm_vector_mode_supported_p): Handle V4HF.
4733 (arm_mangle_map): Handle V4HFmode.
4734 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
4735 * config/arm/arm_neon_builtins.def: Add entries for
4736 vcvtv4hfv4sf, vcvtv4sfv4hf.
4737 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
4738 (neon_vcvtv4hfv4sf): Likewise.
4739 * config/arm/neon-gen.ml: Handle half-precision floating point
4741 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
4742 * config/arm/arm_neon.h: Regenerate.
4743 * config/arm/neon.ml (type elts): Add F16.
4744 (type vectype): Add T_float16x4, T_floatHF.
4745 (type vecmode): Add V4HF.
4746 (type features): Add Requires_FP_bit feature.
4747 (elt_width): Handle F16.
4748 (elt_class): Likewise.
4749 (elt_of_class_width): Likewise.
4750 (mode_of_elt): Refactor.
4751 (type_for_elt): Handle F16, fix error messages.
4752 (vectype_size): Handle T_float16x4.
4753 (vcvt_sh): New function.
4754 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
4755 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
4756 (string_of_mode): Handle V4HF.
4757 * doc/arm-neon-intrinsics.texi: Regenerate.
4759 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4761 Backport from trunk r198136-198137,198142,198176.
4762 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
4764 * coretypes.h (gimple_stmt_iterator): Add struct to make
4767 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
4769 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
4770 (gimple_stmt_iterator): New typedef.
4771 * gimple.h (gimple_stmt_iterator): Rename to...
4772 (gimple_stmt_iterator_d): ... This.
4773 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
4774 trees be valid for GIMPLE and GENERIC.
4775 (TARGET_GIMPLE_FOLD_BUILTIN): New.
4776 * gimple-fold.c (gimple_fold_call): Call target hook
4777 gimple_fold_builtin.
4778 * hooks.c (hook_bool_gsiptr_false): New.
4779 * hooks.h (hook_bool_gsiptr_false): New.
4780 * target.def (fold_stmt): New.
4781 * doc/tm.texi: Regenerate.
4783 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
4785 * config/aarch64/aarch64-builtins.c
4787 (CF0, CF1, CF2, CF3, CF4, CF10): New.
4788 (VAR<1-12>): Add MAP parameter.
4789 (BUILTIN_*): Likewise.
4790 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
4791 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
4792 (aarch64_ushl_n<mode>): Likewise.
4793 (aarch64_sshr_n<mode>): Likewise.
4794 (aarch64_ushr_n<mode>): Likewise.
4795 (aarch64_<maxmin><mode>): Likewise.
4796 (aarch64_sqrt<mode>): Likewise.
4797 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
4798 (vshr<q>_n_*): Likewise.
4800 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
4802 * config/aarch64/aarch64-builtins.c
4803 (aarch64_simd_builtin_type_mode): Handle SF types.
4805 (BUILTIN_GPF): Define.
4806 (aarch64_init_simd_builtins): Handle SF types.
4807 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
4810 * config/aarch64/aarch64-simd.md
4811 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
4812 (aarch64_frecpe<mode>): New.
4813 (aarch64_frecps<mode>): Likewise.
4814 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
4815 (v8type): Add frecp<esx>.
4816 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
4817 (aarch64_frecps<mode>): Likewise.
4818 * config/aarch64/iterators.md (FRECP): New.
4819 (frecp_suffix): Likewise.
4820 * config/aarch64/arm_neon.h
4821 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
4823 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4825 Backport from trunk r198030.
4826 2013-04-17 Greta Yorsh <Greta.Yorsh at arm.com>
4828 * config/arm/arm.md (movsicc_insn): Convert define_insn into
4829 define_insn_and_split.
4830 (and_scc,ior_scc,negscc): Likewise.
4831 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
4833 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4835 Backport from trunk r198020.
4836 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4838 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
4840 (*subs_<optab><mode>_multp2): New pattern.
4841 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
4842 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
4844 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4846 Backport from trunk r198004,198029.
4847 2013-04-17 Greta Yorsh <Greta.Yorsh at arm.com>
4849 * config/arm/arm.c (use_return_insn): Return 0 for targets that
4850 can benefit from using a sequence of LDRD instructions in epilogue
4851 instead of a single LDM instruction.
4853 2013-04-16 Greta Yorsh <Greta.Yorsh at arm.com>
4855 * config/arm/arm.c (emit_multi_reg_push): New declaration
4856 for an existing function.
4857 (arm_emit_strd_push): New function.
4858 (arm_expand_prologue): Used here.
4859 (arm_emit_ldrd_pop): New function.
4860 (arm_expand_epilogue): Used here.
4861 (arm_get_frame_offsets): Update condition.
4862 (arm_emit_multi_reg_pop): Add a special case for load of a single
4863 register with writeback.
4865 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4867 Backport from trunk r197965.
4868 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4870 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
4871 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
4872 * config/arm/constraints.md (De): New constraint.
4873 * config/arm/neon.md (anddi3_neon): Delete.
4874 (neon_vand<mode>): Expand to standard anddi3 pattern.
4875 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
4876 Move earlier in the file.
4877 (neon_inv_logic_op2): Likewise.
4878 (arm_anddi_operand_neon): New predicate.
4880 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4882 Backport from trunk r197925.
4883 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
4885 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
4886 define_insn into define_insn_and_split and emit movsicc patterns.
4888 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4890 Backport from trunk r197807.
4891 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4893 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
4895 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4897 Backport from trunk r197642.
4898 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4900 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
4902 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4904 Backport from trunk r197530,197921.
4905 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
4907 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
4909 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4911 * config/arm/constraints.md (q): New constraint.
4912 * config/arm/ldrdstrd.md: New file.
4913 * config/arm/arm.md (ldrdstrd.md) New include.
4914 (arm_movdi): Use "q" instead of "r" constraint
4915 for double-word memory access.
4916 (movdf_soft_insn): Likewise.
4917 * config/arm/vfp.md (movdi_vfp): Likewise.
4918 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
4919 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4920 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
4921 (mem_ok_for_ldrd_strd): Likewise.
4922 (output_move_double): Update assertion.
4924 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4926 Backport of trunk r197518-197522,197526-197528.
4927 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4929 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
4930 define_insn_and_split.
4931 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
4933 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4935 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
4936 define_insn_and_split.
4937 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
4938 (shiftsi3_compare): New pattern.
4940 * config/arm/unspecs.md (UNSPEC_RRX): New.
4942 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4944 * config/arm/arm.md (negdi_extendsidi): New pattern.
4945 (negdi_zero_extendsidi): Likewise.
4947 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4949 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
4950 define_insn_and_split.
4951 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
4952 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
4954 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4956 * config/arm/arm.md (arm_subdi3): Convert define_insn into
4957 define_insn_and_split.
4958 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
4959 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
4961 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4963 * config/arm/arm.md (subsi3_carryin): New pattern.
4964 (subsi3_carryin_const): Likewise.
4965 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
4966 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
4968 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4970 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
4972 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
4974 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
4975 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
4977 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4979 Backport of trunk r197517.
4980 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4982 * config/arm/arm.c (arm_expand_builtin): Change fcode
4983 type to unsigned int.
4985 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4987 Backport of trunk r197513.
4988 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4990 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
4992 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4994 Backport of trunk r197489-197491.
4995 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4997 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
4998 New function prototype.
4999 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
5000 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
5001 (arm_builtin_vectorized_function): New function.
5003 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5005 * config/arm/arm_neon_builtins.def: New file.
5006 * config/arm/arm.c (neon_builtin_data): Move contents to
5007 arm_neon_builtins.def.
5008 (enum arm_builtins): Include neon builtin definitions.
5009 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
5010 * config/arm/t-arm (arm.o): Add dependency on
5011 arm_neon_builtins.def.
5013 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5015 Backport of trunk 196795-196797,196957
5016 2013-03-19 Ian Bolton <ian.bolton@arm.com>
5018 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
5019 (*subsi3_carryin_uxtw): Likewise.
5021 2013-03-19 Ian Bolton <ian.bolton@arm.com>
5023 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
5024 (*rorsi3_insn_uxtw): Likewise.
5026 2013-03-19 Ian Bolton <ian.bolton@arm.com>
5028 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
5029 (*extrsi5_insn_uxtw): Likewise.
5031 2013-04-10 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5033 * LINARO-VERSION: Bump version number.
5035 2013-04-09 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5037 GCC Linaro 4.8-2013.04 released.
5038 * LINARO-VERSION: New file.
5039 * configure.ac: Add Linaro version string.
5040 * configure: Regenerate.
5042 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5044 Backport of trunk r197346.
5045 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
5046 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5048 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
5049 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
5050 * config/arm/cortex-a53.md: New file.
5051 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
5052 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
5053 * config/arm/arm.c (arm_issue_rate): Likewise.
5054 * config/arm/arm-tune.md: Regenerate
5055 * config/arm/arm-tables.opt: Regenerate.
5056 * config/arm/arm-cores.def: Add cortex-a53.
5058 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5060 Backport of trunk r197342.
5061 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
5063 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
5064 scalar load/store operations using B/H registers.
5065 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
5067 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5069 Backport of trunk r197341.
5070 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
5072 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
5074 * config/aarch64/aarch64.c
5075 (aarch64_simd_scalar_immediate_valid_for_move): New.
5076 * config/aarch64/aarch64-protos.h
5077 (aarch64_simd_scalar_immediate_valid_for_move): New.
5078 * config/aarch64/constraints.md (Dh, Dq): New.
5079 * config/aarch64/iterators.md (hq): New.
5081 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5083 Backport from trunk r197207.
5084 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
5086 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
5087 (*andsi3_compare0_uxtw): New pattern.
5088 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
5089 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
5091 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5093 Backport from trunk r197153.
5094 2013-03-27 Terry Guo <terry.guo@arm.com>
5096 * config/arm/arm-cores.def: Added core cortex-r7.
5097 * config/arm/arm-tune.md: Regenerated.
5098 * config/arm/arm-tables.opt: Regenerated.
5099 * doc/invoke.texi: Added entry for core cortex-r7.
5101 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5103 Backport from trunk r197052.
5104 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5106 * config/arm/arm.md (f_sels, f_seld): New types.
5107 (*cmov<mode>): New pattern.
5108 * config/arm/predicates.md (arm_vsel_comparison_operator): New
5111 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5113 Backport from trunk r197046.
5114 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5116 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
5117 Emit load-acquire versions when acq is true.
5118 (arm_emit_store_exclusive): Add rel parameter.
5119 Emit store-release versions when rel is true.
5120 (arm_split_compare_and_swap): Use acquire-release instructions
5122 of barriers when appropriate.
5123 (arm_split_atomic_op): Likewise.
5124 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
5125 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
5126 (VUNSPEC_SLX): Likewise.
5127 (VUNSPEC_LDA): Likewise.
5128 (VUNSPEC_STL): Likewise.
5129 * config/arm/sync.md (atomic_load<mode>): New pattern.
5130 (atomic_store<mode>): Likewise.
5131 (arm_load_acquire_exclusive<mode>): Likewise.
5132 (arm_load_acquire_exclusivesi): Likewise.
5133 (arm_load_acquire_exclusivedi): Likewise.
5134 (arm_store_release_exclusive<mode>): Likewise.
5136 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5138 Backport from trunk r196876.
5139 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
5141 * config/arm/arm-protos.h (tune_params): Add
5142 prefer_neon_for_64bits field.
5143 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
5144 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
5145 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
5146 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
5147 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
5148 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
5149 (arm_option_override): Handle -mneon-for-64bits new option.
5150 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
5151 (prefer_neon_for_64bits): Declare new variable.
5152 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
5153 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
5155 (arch_enabled): Handle new arch types. Remove support for onlya8
5157 (one_cmpldi2): Use new arch names.
5158 * config/arm/arm.opt (mneon-for-64bits): Add option.
5159 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
5160 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
5161 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
5163 * doc/invoke.texi (-mneon-for-64bits): Document.
5165 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5167 Backport from trunk r196858.
5168 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
5170 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
5171 (abd<mode>_3): New pattern.
5172 (aba<mode>_3): New pattern.
5173 (fabd<mode>_3): New pattern.
5175 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5177 Backport from trunk r196856.
5178 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
5180 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
5181 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
5182 occurrence of REGISTER_PREFIX as its empty string.