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