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