Bump version number, post release.
[official-gcc.git] / gcc-4_8-branch / gcc / ChangeLog.linaro
blob6586abdb3f8938d39d4bcaf561abec158c48112d
1 2015-06-30  Christophe Lyon  <christophe.lyon@linaro.org>
3         * LINARO-VERSION: Bump version.
4         
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>
85         PR target/59744
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>
98         PR sanitizer/58543
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
117         from all insns.
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
139         patterns.
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
166         relative path.
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
205         neon-schedgen.ml.
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):
245         Likewise.
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):
387         Likewise.
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):
391         Likewise.
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):
459         Likewise.
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):
463         Likewise.
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.
507         (fp): New.
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.
694         (q): Likewise.
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.
976         (nonload): Likewise.
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".
997         * config/arm/arm.md
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.
1020         * config/arm/arm.md
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.
1032         * config/arm/vfp.md
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
1048         * config/arm/arm.c
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
1110         new attributes.
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.
1114         * config/arm/vfp.md
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"
1143         types.
1144         * config/arm/arm-fixed.md: Add type attribute to all insn
1145         patterns.
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.
1157         * config/arm/vfp.md
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.
1278         (nop): 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"):
1425         Expand "arlo_imm"
1426         into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
1427         Expand "arlo_reg"
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".
1431         Expand "arlo_shift"
1432         into "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
1433         "logics_shift_imm".
1434         Expand "arlo_shift_reg"
1435         into "alu_shift_reg", "alus_shift_reg", "logic_shift_reg",
1436         "logics_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
1440         changes.
1441         Update for attribute changes all occurrences of arlo_* and
1442         shift* types.
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
1446         of arlo_* types.
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
1457         attribute changes.
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
1463         attribute changes.
1464         (cortex_a15_alu_shift): Likewise.
1465         (cortex_a15_alu_shift_reg): Likewise.
1466         * config/arm/cortex-a5.md (cortex_a5_alu): Update for
1467         attribute changes.
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
1764         attribute change.
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
1825         change.
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
1838         change.
1839         (cortex_a5_f2r): Likewise.
1840         * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
1841         change.
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):
1893         Likewise.
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
1941         change.
1942         * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
1943         change.
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):
1958         Likewise.
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
2008         change.
2009         (cortex_m4_fmuls): Likewise.
2010         * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2011         change.
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
2021         attribute change.
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
2033         changes.
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
2055         attribute changes.
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>
2110         PR target/60264
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.
2223         instead of:
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
2270         poly64x2_t mangler.
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>):
2286         New.
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>):
2304         New.
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,
2315         TYPES_BINOPU): New.
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,
2319         vaesimcq_u8): New.
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
2382         qualifiers pointer.
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
2406         model for FDO.
2407         targhooks.c (default_add_stmt_cost): Compute stmt cost
2408         unconditionally.
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
2414         function.
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
2420         unconditionally.
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
2432         if it's available.
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>
2501         PR target/58423
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):
2545         New pattern.
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
2561         function prototype.
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
2587         for Android.
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
2618         debug_line test.
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
2638         stdint.h's macros.
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
2647         where appropriate.
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
2655         RTL form.
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
2671         initial store.
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>
2699         PR target/58578
2700         Revert
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.
2706         (rrx): 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
2731         where appropriate.
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
2740         encoding.
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.
2779         (rrx): 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
2850         changes.
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
2861         changes.
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
2879         changes.
2880         (cortex_a53_alu_shift): Likewise.
2881         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
2882         changes.
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):
2937         New predicate.
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
3067         encodings.
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
3109         configs.
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>
3116         PR target/56315
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>
3134         PR target/56315
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>
3148         PR target/57431
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>
3157         PR target/58065
3158         * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
3160 2013-09-03  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
3162         Backport from trunk
3163         r201624, r201666.
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.
3184         (VDQQHS): Likewise.
3185         (vwcore): Likewise.
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>
3210         Backport from trunk
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
3225         attributes to...
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.
3267         (divsi3): 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.
3283         (mult2): Likewise.
3284         (mult3): Likewise.
3285         (mult4): Likewise.
3286         (mult5): Likewise.
3287         (mult6): Likewise.
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
3351         to ...
3352         * config/arm/arm.md: ... here.  Update instruction classification
3353         documentation.
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
3381         encoding.
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.
3408         (smax_0): Likewise.
3409         (smax_m1): Likewise.
3410         (smin_0): 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.
3419         (divsi3): 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
3440         16-bit encodings.
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
3460         to ...
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
3665         DI mode.
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
3698         splits.
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
3712         statement.
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>
3752         PR target/19599
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
3758         registers.
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
3763         without decls.
3765         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3767         PR target/19599
3768         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3769         for NULL decl.
3771         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3773         PR target/19599
3774         PR target/57340
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>
3781         PR target/19599
3782         PR target/57731
3783         PR target/57748
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
3787         operand0.
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.
3797         Replace
3798         PR target/57748
3799         with
3800         PR target/57837
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
3811         cases.
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.
3835         (arm_abi): 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
3844         layout.
3846         2013-06-29  Yufeng Zhang  <yufeng.zhang@arm.com>
3848         * config/aarch64/aarch64.c: Remove junk from the beginning of the
3849         file.
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
3896         declaration.
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>
3917         PR target/57909
3918         * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
3919         usage in HI mode.
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>
3935         PR target/19599
3936         PR target/57340
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>
3943         PR target/19599
3944         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
3945         for NULL decl.
3947         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3949         PR target/19599
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
3955         registers.
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
3960         without decls.
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
3993         define_cond_exec.
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"
4022         where appropriate.
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>):
4038         New pattern.
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
4076         COND_EXEC.
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>
4137         PR target/42017
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):
4150         New function.
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>):
4167         Update arguments.
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
4175         pointers.
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):
4181         Update prototype.
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
4187         longer static.
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):
4193         Add prototype.
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>
4209         PR debug/57351
4210         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
4212 2013-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
4214         Backport from trunk
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>
4298         PR target/19599
4299         PR target/57340
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>
4306         PR target/19599
4307         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
4308         for NULL decl.
4310         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4312         PR target/19599
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
4318         registers.
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
4323         without decls.
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.
4372         (SUADDV): New.
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
4388         (reduc_smax_): New.
4389         (reduc_smin_): Likewise.
4390         (reduc_umax_): Likewise.
4391         (reduc_umin_): Likewise.
4392         (reduc_smax_nan_): Likewise.
4393         (reduc_smin_nan_): Likewise.
4394         (fmax): Remove.
4395         (fmin): Likewise.
4396         (smax): Update for V2SF, V4SF and V2DF modes.
4397         (smin): Likewise.
4398         (smax_nan): New.
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
4409         new builtin names.
4410         (vmin<q>_f<32,64>): Likewise.
4411         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4412         (FMAXMIN): New.
4413         (su): Add mappings for smax, smin, umax, umin.
4414         (maxmin): New.
4415         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
4416         (FMAXMIN): Rename as...
4417         (FMAXMIN_UNS): ...This.
4418         (maxminv): Remove.
4419         (fmaxminv): Likewise.
4420         (fmaxmin): Likewise.
4421         (maxmin_uns): New.
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.
4502         (cmgt): Likewise.
4503         (cmge): Likewise.
4504         (cmle): Likewise.
4505         (cmlt): Likewise.
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...
4513         (cmgeu): ...This.
4514         (cmhi): Rename to...
4515         (cmgtu): ...This.
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
4523         (VALLF): new.
4524         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
4525         (COMPARISONS): New.
4526         (UCOMPARISONS): Likewise.
4527         (optab): Add missing comparisons.
4528         (n_optab): New.
4529         (cmp_1): Likewise.
4530         (cmp_2): Likewise.
4531         (CMP): Likewise.
4532         (cmp): Remove.
4533         (VCMP_S): Likewise.
4534         (VCMP_U): Likewise.
4535         (V_cmp_result): Add DF, SF modes.
4536         (v_cmp_result): Likewise.
4537         (v): Likewise.
4538         (vmtype): 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
4554         code in CC_NZ mode.
4555         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
4556         pattern.
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
4572         from/to S register.
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...
4652         (btrunc): ...this.
4653         (frintp): Rename to...
4654         (ceil): ...this.
4655         (frintm): Rename to...
4656         (floor): ...this.
4657         (frinti): Rename to...
4658         (nearbyint): ...this.
4659         (frintx): Rename to...
4660         (rint): ...this.
4661         (frinta): Rename to...
4662         (round): ...this.
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.
4703         (addvv4sf): Update.
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,
4727         NEON_FLOAT_NARROW.
4728         Handle initialisation of V4HF. Adjust initialisation of reinterpret
4729         built-ins.
4730         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
4731         NEON_FLOAT_NARROW.
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
4740         features.
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
4765         compatible with C.
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
4786         (CF): Remove.
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.
4804         (sf_UP): Define.
4805         (BUILTIN_GPF): Define.
4806         (aarch64_init_simd_builtins): Handle SF types.
4807         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
4808         (frecps): Likewise.
4809         (frecpx): Likewise.
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):
4839         New pattern.
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.
4939         (rrx): 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
5073         scalar move.
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
5109         predicate.
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
5121         instead.
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
5154         nota8.
5155         (arch_enabled): Handle new arch types. Remove support for onlya8
5156         and nota8.
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
5162         of onlya8.
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.