2013-08-05 Yvan Roux <yvan.roux@linaro.org>
[official-gcc.git] / gcc-4_8-branch / gcc / ChangeLog.linaro
blob50ba54af37b5056650078be48db1ac1f199fc3ee
1 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
3         Backport from trunk r200519.
4         2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6         * config/aarch64/aarch64-protos.h
7         aarch64_classify_symbol_expression): Define.
8         (aarch64_symbolic_constant_p): Remove.
9         * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
10         static.  Fix line length and white space.
11         (aarch64_symbolic_constant_p): Remove.
12         * config/aarch64/predicates.md (aarch64_valid_symref):
13         Use aarch64_classify_symbol_expression.
15 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
17         Backport from trunk r200466, r200467.
18         2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
20         * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
21         parameter 'mode' of type 'enum machine_mode mode'; change to pass
22         'mode' to force_reg.
23         (aarch64_add_offset): Update calls to aarch64_force_temporary.
24         (aarch64_expand_mov_immediate): Likewise.
26         2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
28         * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
29         'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
31 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
33         Backport from trunk r200419.
34         2013-06-26  Greta Yorsh  <Greta.Yorsh@arm.com>
36         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
37         * config/arm/arm-protos.h (arm_max_conditional_execute): New
38         declaration.
39         (tune_params): Update comment.
40         * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
41         (arm_max_conditional_execute): New function.
42         (thumb2_final_prescan_insn): Use max_insn_skipped and
43         MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
45 2013-07-24  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
47         * LINARO-VERSION: Bump version.
49 2013-07-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
51         GCC Linaro 4.8-2013.07-1 released.
53 2013-07-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
55         Backport from trunk r201005.
56         2013-07-17  Yvan Roux  <yvan.roux@linaro.org>
58         PR target/57909
59         * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
60         usage in HI mode.
62 2013-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
64         GCC Linaro 4.8-2013.07 released.
66 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
68         Revert backport from trunk r198928,198973,199203.
69         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
71         PR target/19599
72         PR target/57340
73         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
74         (any_sibcall_could_use_r3): this and handle indirect calls.
75         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
77         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
79         PR target/19599
80         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
81         for NULL decl.
83         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
85         PR target/19599
86         * config/arm/predicates.md (call_insn_operand): New predicate.
87         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
88         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
89         if insn is not a tail call.
90         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
91         registers.
92         * config/arm/arm.h (enum reg_class): New caller save register class.
93         (REG_CLASS_NAMES): Likewise.
94         (REG_CLASS_CONTENTS): Likewise.
95         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
96         without decls.
98 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
100         Revert backport from mainline (r199438, r199439)
101         2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
103         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
104         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
105         (arm_emit_vfp_multi_reg_pop): Likewise.
106         (thumb2_emit_ldrd_pop): Likewise.
107         (arm_expand_epilogue): Add misc REG_CFA notes.
108         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
110         2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
111                     Zhenqiang Chen  <zhenqiang.chen@linaro.org>
113         * config/arm/arm-protos.h: Add and update function protos.
114         * config/arm/arm.c (use_simple_return_p): New added.
115         (thumb2_expand_return): Check simple_return flag.
116         * config/arm/arm.md: Add simple_return and conditional simple_return.
117         * config/arm/iterators.md: Add iterator for return and simple_return.
118         * gcc.dg/shrink-wrap-alloca.c: New added.
119         * gcc.dg/shrink-wrap-pretend.c: New added.
120         * gcc.dg/shrink-wrap-sibcall.c: New added.
122 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
124         Backport from trunk r199640, 199705, 199733, 199734, 199739.
125         2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
127         * rtl.def: Add extra fourth optional field to define_cond_exec.
128         * gensupport.c (process_one_cond_exec): Process attributes from
129         define_cond_exec.
130         * doc/md.texi: Document fourth field in define_cond_exec.
132         2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
134         * config/arm/arm.md (enabled_for_depr_it): New attribute.
135         (predicable_short_it): Likewise.
136         (predicated): Likewise.
137         (enabled): Handle above.
138         (define_cond_exec): Set predicated attribute to yes.
140         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
142         * config/arm/sync.md (atomic_loaddi_1):
143         Disable predication for arm_restrict_it.
144         (arm_load_exclusive<mode>): Likewise.
145         (arm_load_exclusivesi): Likewise.
146         (arm_load_exclusivedi): Likewise.
147         (arm_load_acquire_exclusive<mode>): Likewise.
148         (arm_load_acquire_exclusivesi): Likewise.
149         (arm_load_acquire_exclusivedi): Likewise.
150         (arm_store_exclusive<mode>): Likewise.
151         (arm_store_exclusive<mode>): Likewise.
152         (arm_store_release_exclusivedi): Likewise.
153         (arm_store_release_exclusive<mode>): Likewise.
155         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
157         * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
158         where appropriate.
159         * config/arm/ldmstm.md: Regenerate.
161         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
163         * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
164         sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
165         arm_usatsihi): Adjust alternatives for arm_restrict_it.
167 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
169         Backport from trunk 200096
171         2013-06-14  Vidya Praveen <vidyapraveen@arm.com>
173         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
174         New pattern.
175         (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
176         (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
177         (aarch64_<su>mlsl<mode>): Likewise.
179 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
181         Backport from trunk 200062
183         2013-06-13  Bin Cheng  <bin.cheng@arm.com>
184         * fold-const.c (operand_equal_p): Consider NOP_EXPR and
185         CONVERT_EXPR as equal nodes.
187 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
188         Backport from trunk 199810
190         2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
192         * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
193         Clean up alternatives.
195 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
197         Backport from trunk 200152
198         2013-06-17  Sofiane Naci  <sofiane.naci@arm.com>
200         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
201         alternative and update.
202         (aarch64_dup_lanedi): Delete.
203         * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
204         * config/aarch64/aarch64-simd-builtins.def: Update.
206 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
208         Backport from trunk 200061
209         2013-06-13  Bin Cheng  <bin.cheng@arm.com>
211         * rtlanal.c (noop_move_p): Check the code to be executed for
212         COND_EXEC.
214 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
216         Backport from trunk 199694
217         2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
219         * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
220         (arm_option_override): Override arm_restrict_it where appropriate.
221         (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
222         * config/arm/arm.opt (mrestrict-it): New command-line option.
223         * doc/invoke.texi: Document -mrestrict-it.
225 2013-06-20  Christophe Lyon  <christophe.lyon@linaro.org>
227         Backport from trunk r198683.
228         2013-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
230         * config/arm/arm.c (arm_asan_shadow_offset): New function.
231         (TARGET_ASAN_SHADOW_OFFSET): Define.
232         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
233         (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
235 2013-06-11  Rob Savoye  <rob.savoye@linaro.org>
237         GCC Linaro gcc-linaro-4.8-2013.06 released.
239 2013-06-06  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
241         Backport from mainline (r199438, r199439)
242         2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
244         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
245         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
246         (arm_emit_vfp_multi_reg_pop): Likewise.
247         (thumb2_emit_ldrd_pop): Likewise.
248         (arm_expand_epilogue): Add misc REG_CFA notes.
249         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
251         2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
252                     Zhenqiang Chen  <zhenqiang.chen@linaro.org>
254         * config/arm/arm-protos.h: Add and update function protos.
255         * config/arm/arm.c (use_simple_return_p): New added.
256         (thumb2_expand_return): Check simple_return flag.
257         * config/arm/arm.md: Add simple_return and conditional simple_return.
258         * config/arm/iterators.md: Add iterator for return and simple_return.
259         * gcc.dg/shrink-wrap-alloca.c: New added.
260         * gcc.dg/shrink-wrap-pretend.c: New added.
261         * gcc.dg/shrink-wrap-sibcall.c: New added.
263 2013-06-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
265         Backport from mainline r198879:
267         2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
268         PR target/42017
269         * config/arm/arm.h (EPILOGUE_USES): Only return true
270         for LR_REGNUM after epilogue_completed.
272 2013-06-05  Christophe Lyon  <christophe.lyon@linaro.org>
274         Backport from trunk r199652,199653,199656,199657,199658.
276         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
278         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
279         into function to generate MOVI instruction.
280         * config/aarch64/aarch64.c (aarch64_simd_container_mode):
281         New function.
282         (aarch64_preferred_simd_mode): Turn into wrapper.
283         (aarch64_output_scalar_simd_mov_immediate): New function.
284         * config/aarch64/aarch64-protos.h: Add prototype for above.
286         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
288         * config/aarch64/aarch64.c (simd_immediate_info): Remove
289         element_char member.
290         (sizetochar): Return signed char.
291         (aarch64_simd_valid_immediate): Remove elchar and other
292         unnecessary variables.
293         (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
294         Calculate element_char as required.
295         * config/aarch64/aarch64-protos.h: Update and move prototype
296         for aarch64_output_simd_mov_immediate.
297         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
298         Update arguments.
300         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
302         * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
303         information completed by aarch64_simd_valid_immediate.
304         (aarch64_legitimate_constant_p): Update arguments.
305         (aarch64_simd_valid_immediate): Work with struct rather than many
306         pointers.
307         (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
308         (aarch64_simd_make_constant): Update arguments.
309         (aarch64_output_simd_mov_immediate): Work with struct rather than
310         many pointers.  Output immediate directly rather than as operand.
311         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
312         Update prototype.
313         * config/aarch64/constraints.md (Dn): Update arguments.
315         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
317         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
318         longer static.
319         (aarch64_simd_immediate_valid_for_move): Remove.
320         (aarch64_simd_scalar_immediate_valid_for_move): Update call.
321         (aarch64_simd_make_constant): Update call.
322         (aarch64_output_simd_mov_immediate): Update call.
323         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
324         Add prototype.
325         * config/aarch64/constraints.md (Dn): Update call.
327         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
329         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
330         return type to bool for prototype.
331         (aarch64_legitimate_constant_p): Check for true instead of not -1.
332         (aarch64_simd_valid_immediate): Fix up each return to return a bool.
333         (aarch64_simd_immediate_valid_for_move): Update retval for bool.
335 2013-06-04  Christophe Lyon  <christophe.lyon@linaro.org>
337         Backport from trunk r199261.
338         2013-05-23  Christian Bruel  <christian.bruel@st.com>
340         PR debug/57351
341         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
343 2013-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
345         Backport from trunk
346         r198890,199254,199259,199260,199293,199407,199408,199454,199544,199545.
348         2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
350         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
351         Remove un-necessary braces.
353         2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
355         * config/aarch64/aarch64.c (aarch64_classify_symbol):
356         Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
358         2013-05-30  Ian Bolton  <ian.bolton@arm.com>
360         * config/aarch64/aarch64.md (insv<mode>): New define_expand.
361         (*insv_reg<mode>): New define_insn.
363         2012-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
364             Marcus Shawcroft  <marcus.shawcroft@arm.com>
366         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
367         SYMBOL_TINY_ABSOLUTE.
368         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
369         SYMBOL_TINY_ABSOLUTE.
370         (aarch64_expand_mov_immediate): Likewise.
371         (aarch64_classify_symbol): Likewise.
372         (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
373         Permit SYMBOL_TINY_ABSOLUTE.
374         * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
376         2013-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
377             Marcus Shawcroft  <marcus.shawcroft@arm.com>
379         * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
380         Refactor if/switch.  Replace gcc_assert with if.
382         2013-05-24  Ian Bolton  <ian.bolton@arm.com>
384         * config/aarch64/aarch64.c (aarch64_print_operand): Change the
385         X format specifier to only display bottom 16 bits.
386         * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
387         immediate to match for operand 2, since it will be masked.
389         2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
390             Marcus Shawcroft  <marcus.shawcroft@arm.com>
392         * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
393         * config/aarch64/constraints.md (Usa): Remove.
394         * doc/md.texi (AArch64 Usa): Remove.
396         2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
397             Marcus Shawcroft  <marcus.shawcroft@arm.com>
399         * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
400         * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
401         * config/aarch64/predicates.md (aarch64_const_address): Remove.
402         (aarch64_mov_operand): Use aarch64_mov_operand_p.
404         2013-05-23  Vidya Praveen <vidyapraveen@arm.com>
406         * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
407         instruction (AdvSIMD).
408         * config/aarch64/aarch64-builtins.c
409         (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
410         * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
412         2013-05-14  James Greenhalgh  <james.greenhalgh@arm.com>
414         * config/aarch64/aarch64-simd.md
415         (aarch64_vcond_internal<mode>): Rename to...
416         (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
417         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
418         float modes. Clarify all iterator modes.
419         (vcond<mode><mode>): Use new name for vcond expanders.
420         (vcond<v_cmp_result><mode>): Likewise.
421         (vcondu<mode><mode>: Likewise.
422         * config/aarch64/iterators.md (VDQF_COND): New.
424 2013-05-29  Christophe Lyon  <christophe.lyon@linaro.org>
426         Backport from trunk r198928,198973,199203.
427         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
429         PR target/19599
430         PR target/57340
431         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
432         (any_sibcall_could_use_r3): this and handle indirect calls.
433         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
435         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
437         PR target/19599
438         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
439         for NULL decl.
441         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
443         PR target/19599
444         * config/arm/predicates.md (call_insn_operand): New predicate.
445         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
446         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
447         if insn is not a tail call.
448         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
449         registers.
450         * config/arm/arm.h (enum reg_class): New caller save register class.
451         (REG_CLASS_NAMES): Likewise.
452         (REG_CLASS_CONTENTS): Likewise.
453         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
454         without decls.
456 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
458         Backport from trunk r198680.
459         2013-05-07  Sofiane Naci  <sofiane.naci@arm.com>
461         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
462         (aarch64_simd_mov<mode>): New expander.
463         (aarch64_simd_mov_to_<mode>low): New instruction pattern.
464         (aarch64_simd_mov_to_<mode>high): Likewise.
465         (aarch64_simd_mov_from_<mode>low): Likewise.
466         (aarch64_simd_mov_from_<mode>high): Likewise.
467         (aarch64_dup_lane<mode>): Update.
468         (aarch64_dup_lanedi): New instruction pattern.
469         * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
470         * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
472 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
474         Backport from trunk r198497-198500.
475         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
477         * config/aarch64/aarch64-builtins.c
478         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
479         * config/aarch64/aarch64-simd-builtins.def
480         (reduc_splus_): Add new modes.
481         (reduc_uplus_): New.
482         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
483         (reduc_uplus_v4sf): Likewise.
484         (reduc_splus_v4sf): Likewise.
485         (aarch64_addv<mode>): Likewise.
486         (reduc_uplus_<mode>): Likewise.
487         (reduc_splus_<mode>): Likewise.
488         (aarch64_addvv2di): Likewise.
489         (reduc_uplus_v2di): Likewise.
490         (reduc_splus_v2di): Likewise.
491         (aarch64_addvv2si): Likewise.
492         (reduc_uplus_v2si): Likewise.
493         (reduc_splus_v2si): Likewise.
494         (reduc_<sur>plus_<mode>): New.
495         (reduc_<sur>plus_v2di): Likewise.
496         (reduc_<sur>plus_v2si): Likewise.
497         (reduc_<sur>plus_v4sf): Likewise.
498         (aarch64_addpv4sf): Likewise.
499         * config/aarch64/arm_neon.h
500         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
501         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
502         add UNSPEC_SADDV, UNSPEC_UADDV.
503         (SUADDV): New.
504         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
506         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
508         * config/aarch64/arm_neon.h
509         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
511         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
513         * config/aarch64/aarch64-builtins
514         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
516         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
518         * config/aarch64/aarch64-simd-builtins.def
519         (reduc_smax_): New.
520         (reduc_smin_): Likewise.
521         (reduc_umax_): Likewise.
522         (reduc_umin_): Likewise.
523         (reduc_smax_nan_): Likewise.
524         (reduc_smin_nan_): Likewise.
525         (fmax): Remove.
526         (fmin): Likewise.
527         (smax): Update for V2SF, V4SF and V2DF modes.
528         (smin): Likewise.
529         (smax_nan): New.
530         (smin_nan): Likewise.
531         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
532         (<su><maxmin><mode>3): ...This, refactor.
533         (s<maxmin><mode>3): New.
534         (<maxmin_uns><mode>3): Likewise.
535         (reduc_<maxmin_uns>_<mode>): Refactor.
536         (reduc_<maxmin_uns>_v4sf): Likewise.
537         (reduc_<maxmin_uns>_v2si): Likewise.
538         (aarch64_<fmaxmin><mode>: Remove.
539         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
540         new builtin names.
541         (vmin<q>_f<32,64>): Likewise.
542         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
543         (FMAXMIN): New.
544         (su): Add mappings for smax, smin, umax, umin.
545         (maxmin): New.
546         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
547         (FMAXMIN): Rename as...
548         (FMAXMIN_UNS): ...This.
549         (maxminv): Remove.
550         (fmaxminv): Likewise.
551         (fmaxmin): Likewise.
552         (maxmin_uns): New.
553         (maxmin_uns_op): Likewise.
555 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
557         Backport from trunk r199241.
558         2013-05-23  James Greenhalgh  <james.greenhalgh@arm.com>
560         * config/aarch64/aarch64-simd.md
561         (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
563 2013-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
565         Backport from trunk r198970.
566         2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>
568         * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
569         * config/arm/arm.c (next_consecutive_mem): New function.
570         (gen_movmem_ldrd_strd): Likewise.
571         * config/arm/arm.md (movmemqi): Update condition and code.
572         (unaligned_loaddi, unaligned_storedi): New patterns.
574 2013-05-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
576         * LINARO-VERSION: Bump version number.
578 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
580         GCC Linaro 4.8-2013.05 released.
582 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
584         Backport from trunk r198677.
585         2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
587         * config/aarch64/aarch64.md
588         (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
589         shift value between 0-4.
591 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
593         Backport from trunk r198574-198575.
594         2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
596         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
598         2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
600         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
601         scalar form of FABD instruction.
603 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
605         Backport from trunk r198490-198496
606         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
608         * config/aarch64/arm_neon.h
609         (vac<ge, gt><sd>_f<32, 64>): Rename to...
610         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
611         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
613         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
615         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
616         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
618         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
620         * config/aarch64/aarch64-simd.md
621         (vcond<mode>_internal): Handle special cases for constant masks.
622         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
623         (vcondu<mode><mode>): Likewise.
624         (vcond<v_cmp_result><mode>): New.
626         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
628         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
629         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
630         * config/aarch64/aarch64-simd-builtins.def
631         (cmeq): Update to BUILTIN_VALLDI.
632         (cmgt): Likewise.
633         (cmge): Likewise.
634         (cmle): Likewise.
635         (cmlt): Likewise.
636         * config/aarch64/arm_neon.h
637         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
638         to builtins or C as appropriate.
640         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
642         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
643         (cmgeu): ...This.
644         (cmhi): Rename to...
645         (cmgtu): ...This.
646         * config/aarch64/aarch64-simd.md
647         (simd_mode): Add SF.
648         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
649         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
650         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
651         (cstore<mode>_neg): ...This.
652         * config/aarch64/iterators.md
653         (VALLF): new.
654         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
655         (COMPARISONS): New.
656         (UCOMPARISONS): Likewise.
657         (optab): Add missing comparisons.
658         (n_optab): New.
659         (cmp_1): Likewise.
660         (cmp_2): Likewise.
661         (CMP): Likewise.
662         (cmp): Remove.
663         (VCMP_S): Likewise.
664         (VCMP_U): Likewise.
665         (V_cmp_result): Add DF, SF modes.
666         (v_cmp_result): Likewise.
667         (v): Likewise.
668         (vmtype): Likewise.
669         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
671 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
673         Backport from trunk r198191.
674         2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
676         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
678 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@lianro.org>
680         Backport from trunk r197838.
681         2013-04-11   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
683         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
684         code in CC_NZ mode.
685         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
686         pattern.
688 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
690         Backport from trunk r198019.
691         2013-04-16   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
693         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
694         (*subs_mul_imm_<mode>): New pattern.
696 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
698         Backport from trunk r198424-198425.
699         2013-04-29  Ian Bolton  <ian.bolton@arm.com>
701         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
702         from/to S register.
703         (movdi_aarch64): Support LDR/STR from/to D register.
705         2013-04-29  Ian Bolton  <ian.bolton@arm.com>
707         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
708         or higher by default.
710 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
712         Backport from trunk r198412.
713         2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
715         * config/arm/arm.md (store_minmaxsi): Use only when
716         optimize_insn_for_size_p.
718 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
720         Backport from trunk 198394,198396-198400,198402-198404.
721         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
723         * config/aarch64/arm_neon.h
724         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
725         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
726         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
727         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
728         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
729         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
730         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
731         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
733         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
735         * config/aarch64/aarch64-simd.md
736         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
737         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
738         fix_trunc, fixuns_trunc.
739         (ftrunc<VDQF:mode>2): New.
740         * config/aarch64/iterators.md (optab): Add fix, fixuns.
741         (fix_trunc_optab): New.
743         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
745         * config/aarch64/aarch64-builtins.c
746         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
747         iceilf, lround, iroundf.
749         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
751         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
752         (float_truncate_hi_): Likewise.
753         (float_extend_lo_): Likewise.
754         (float_truncate_lo_): Likewise.
755         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
756         (aarch64_float_extend_lo_v2df): Likewise.
757         (vec_unpacks_hi_v4sf): Likewise.
758         (aarch64_float_truncate_lo_v2sf): Likewise.
759         (aarch64_float_truncate_hi_v4sf): Likewise.
760         (vec_pack_trunc_v2df): Likewise.
761         (vec_pack_trunc_df): Likewise.
763         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
765         * config/aarch64/aarch64-builtins.c
766         (aarch64_fold_builtin): Fold float conversions.
767         * config/aarch64/aarch64-simd-builtins.def
768         (floatv2si, floatv4si, floatv2di): New.
769         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
770         * config/aarch64/aarch64-simd.md
771         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
772         * config/aarch64/iterators.md (FLOATUORS): New.
773         (optab): Add float, floatuns.
774         (su_optab): Likewise.
776         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
778         * config/aarch64/aarch64-builtins.c
779         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
780         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
781         (frintz): Rename to...
782         (btrunc): ...this.
783         (frintp): Rename to...
784         (ceil): ...this.
785         (frintm): Rename to...
786         (floor): ...this.
787         (frinti): Rename to...
788         (nearbyint): ...this.
789         (frintx): Rename to...
790         (rint): ...this.
791         (frinta): Rename to...
792         (round): ...this.
793         * config/aarch64/aarch64-simd.md
794         (aarch64_frint<frint_suffix><mode>): Delete.
795         (<frint_pattern><mode>2): Convert to insn.
796         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
797         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
798         (frint_pattern): Likewise.
799         (frint_suffix): Likewise.
801 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
803         Backport from trunk r198302-198306,198316.
804         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
806         * config/aarch64/aarch64-simd.md
807         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
808         (aarch64_simd_bsl<mode>): Likewise.
809         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
811         2013-04-25  James Greenhalgh  <jame.greenhalgh@arm.com>
813         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
815         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
817         * config/aarch64/aarch64-builtins.c
818         (aarch64_fold_builtin): New.
819         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
820         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
821         * config/aarch64/aarch64-simd-builtins.def (abs): New.
822         * config/aarch64/arm_neon.h
823         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
825         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
826             Tejas Belagod  <tejas.belagod@arm.com>
828         * config/aarch64/aarch64-builtins.c
829         (aarch64_gimple_fold_builtin): New.
830         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
831         * config/aarch64/aarch64-simd-builtins.def (addv): New.
832         * config/aarch64/aarch64-simd.md (addpv4sf): New.
833         (addvv4sf): Update.
834         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
836         2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
838         * config/aarch64/aarch64.md 
839         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
841         2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
843         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
844         (*ngcsi_uxtw): New pattern.
846 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
848         Backport from trunk 198298.
849         2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
850             Julian Brown  <julian@codesourcery.com>
852         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
853         (TB_DREG): Add T_V4HF.
854         (v4hf_UP): New macro.
855         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
856         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
857         NEON_FLOAT_NARROW.
858         Handle initialisation of V4HF. Adjust initialisation of reinterpret
859         built-ins.
860         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
861         NEON_FLOAT_NARROW.
862         (arm_vector_mode_supported_p): Handle V4HF.
863         (arm_mangle_map): Handle V4HFmode.
864         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
865         * config/arm/arm_neon_builtins.def: Add entries for
866         vcvtv4hfv4sf, vcvtv4sfv4hf.
867         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
868         (neon_vcvtv4hfv4sf): Likewise.
869         * config/arm/neon-gen.ml: Handle half-precision floating point
870         features.
871         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
872         * config/arm/arm_neon.h: Regenerate.
873         * config/arm/neon.ml (type elts): Add F16.
874         (type vectype): Add T_float16x4, T_floatHF.
875         (type vecmode): Add V4HF.
876         (type features): Add Requires_FP_bit feature.
877         (elt_width): Handle F16.
878         (elt_class): Likewise.
879         (elt_of_class_width): Likewise.
880         (mode_of_elt): Refactor.
881         (type_for_elt): Handle F16, fix error messages.
882         (vectype_size): Handle T_float16x4.
883         (vcvt_sh): New function.
884         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
885         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
886         (string_of_mode): Handle V4HF.
887         * doc/arm-neon-intrinsics.texi: Regenerate.
889 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
891         Backport from trunk r198136-198137,198142,198176.
892         2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
894         * coretypes.h (gimple_stmt_iterator): Add struct to make
895         compatible with C.
897         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
899         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
900         (gimple_stmt_iterator): New typedef.
901         * gimple.h (gimple_stmt_iterator): Rename to...
902         (gimple_stmt_iterator_d): ... This.
903         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
904         trees be valid for GIMPLE and GENERIC.
905         (TARGET_GIMPLE_FOLD_BUILTIN): New.
906         * gimple-fold.c (gimple_fold_call): Call target hook
907         gimple_fold_builtin.
908         * hooks.c (hook_bool_gsiptr_false): New.
909         * hooks.h (hook_bool_gsiptr_false): New.
910         * target.def (fold_stmt): New.
911         * doc/tm.texi: Regenerate.
913         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
915         * config/aarch64/aarch64-builtins.c
916         (CF): Remove.
917         (CF0, CF1, CF2, CF3, CF4, CF10): New.
918         (VAR<1-12>): Add MAP parameter.
919         (BUILTIN_*): Likewise.
920         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
921         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
922         (aarch64_ushl_n<mode>): Likewise.
923         (aarch64_sshr_n<mode>): Likewise.
924         (aarch64_ushr_n<mode>): Likewise.
925         (aarch64_<maxmin><mode>): Likewise.
926         (aarch64_sqrt<mode>): Likewise.
927         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
928         (vshr<q>_n_*): Likewise.
930         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
932         * config/aarch64/aarch64-builtins.c
933         (aarch64_simd_builtin_type_mode): Handle SF types.
934         (sf_UP): Define.
935         (BUILTIN_GPF): Define.
936         (aarch64_init_simd_builtins): Handle SF types.
937         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
938         (frecps): Likewise.
939         (frecpx): Likewise.
940         * config/aarch64/aarch64-simd.md
941         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
942         (aarch64_frecpe<mode>): New.
943         (aarch64_frecps<mode>): Likewise.
944         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
945         (v8type): Add frecp<esx>.
946         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
947         (aarch64_frecps<mode>): Likewise.
948         * config/aarch64/iterators.md (FRECP): New.
949         (frecp_suffix): Likewise.
950         * config/aarch64/arm_neon.h
951         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
953 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
955         Backport from trunk r198030.
956         2013-04-17  Greta Yorsh  <Greta.Yorsh at arm.com>
958         * config/arm/arm.md (movsicc_insn): Convert define_insn into
959         define_insn_and_split.
960         (and_scc,ior_scc,negscc): Likewise.
961         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
963 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
965         Backport from trunk r198020.
966         2013-04-16   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
968         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
969         New pattern.
970         (*subs_<optab><mode>_multp2): New pattern.
971         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
972         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
974 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
976         Backport from trunk r198004,198029.
977         2013-04-17  Greta Yorsh  <Greta.Yorsh at arm.com>
979         * config/arm/arm.c (use_return_insn): Return 0 for targets that
980         can benefit from using a sequence of LDRD instructions in epilogue
981         instead of a single LDM instruction.
983         2013-04-16  Greta Yorsh  <Greta.Yorsh at arm.com>
985         * config/arm/arm.c (emit_multi_reg_push): New declaration
986         for an existing function.
987         (arm_emit_strd_push): New function.
988         (arm_expand_prologue): Used here.
989         (arm_emit_ldrd_pop): New function.
990         (arm_expand_epilogue): Used here.
991         (arm_get_frame_offsets): Update condition.
992         (arm_emit_multi_reg_pop): Add a special case for load of a single
993         register with writeback.
995 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
997         Backport from trunk r197965.
998         2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1000         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
1001         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
1002         * config/arm/constraints.md (De): New constraint.
1003         * config/arm/neon.md (anddi3_neon): Delete.
1004         (neon_vand<mode>): Expand to standard anddi3 pattern.
1005         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
1006         Move earlier in the file.
1007         (neon_inv_logic_op2): Likewise.
1008         (arm_anddi_operand_neon): New predicate.
1010 2013-05-02  Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1012         Backport from trunk r197925.
1013         2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
1015         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
1016         define_insn into define_insn_and_split and emit movsicc patterns.
1018 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1020         Backport from trunk r197807.
1021         2013-04-11   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1023         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
1025 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1027         Backport from trunk r197642.
1028         2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1030         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
1032 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1034         Backport from trunk r197530,197921.
1035         2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
1037         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
1039         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1041         * config/arm/constraints.md (q): New constraint.
1042         * config/arm/ldrdstrd.md: New file.
1043         * config/arm/arm.md (ldrdstrd.md) New include.
1044         (arm_movdi): Use "q" instead of "r" constraint
1045         for double-word memory access.
1046         (movdf_soft_insn): Likewise.
1047         * config/arm/vfp.md (movdi_vfp): Likewise.
1048         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
1049         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
1050         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
1051         (mem_ok_for_ldrd_strd): Likewise.
1052         (output_move_double): Update assertion.
1054 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1056         Backport of trunk r197518-197522,197526-197528.
1057         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1059         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
1060         define_insn_and_split.
1061         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
1063         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1065         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
1066         define_insn_and_split.
1067         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
1068         (shiftsi3_compare): New pattern.
1069         (rrx): New pattern.
1070         * config/arm/unspecs.md (UNSPEC_RRX): New.
1072         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1074         * config/arm/arm.md (negdi_extendsidi): New pattern.
1075         (negdi_zero_extendsidi): Likewise.
1077         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1079         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
1080         define_insn_and_split.
1081         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
1082         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
1084         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1086         * config/arm/arm.md (arm_subdi3): Convert define_insn into
1087         define_insn_and_split.
1088         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
1089         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
1091         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1093         * config/arm/arm.md (subsi3_carryin): New pattern.
1094         (subsi3_carryin_const): Likewise.
1095         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
1096         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
1098         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1100         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
1102         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
1104         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
1105         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
1107 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1109         Backport of trunk r197517.
1110         2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1112         * config/arm/arm.c (arm_expand_builtin): Change fcode
1113         type to unsigned int.
1115 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1117         Backport of trunk r197513.
1118         2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1120         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
1122 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1124         Backport of trunk r197489-197491.
1125         2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1127         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
1128         New function prototype.
1129         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
1130         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
1131         (arm_builtin_vectorized_function): New function.
1133         2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1135         * config/arm/arm_neon_builtins.def: New file.
1136         * config/arm/arm.c (neon_builtin_data): Move contents to
1137         arm_neon_builtins.def.
1138         (enum arm_builtins): Include neon builtin definitions.
1139         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
1140         * config/arm/t-arm (arm.o): Add dependency on
1141         arm_neon_builtins.def.
1143 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1145         Backport of trunk 196795-196797,196957
1146         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
1148         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
1149         (*subsi3_carryin_uxtw): Likewise.
1151         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
1153         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
1154         (*rorsi3_insn_uxtw): Likewise.
1156         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
1158         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
1159         (*extrsi5_insn_uxtw): Likewise.
1161 2013-04-10  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1163         * LINARO-VERSION: Bump version number.
1165 2013-04-09  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1167         * GCC Linaro 4.8-2013.04 released.
1168         
1169         * LINARO-VERSION: New file.
1170         * configure.ac: Add Linaro version string.
1171         * configure: Regenerate.
1173 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1175         Backport of trunk r197346.
1176         2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
1177             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1179         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
1180         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
1181         * config/arm/cortex-a53.md: New file.
1182         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
1183         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
1184         * config/arm/arm.c (arm_issue_rate): Likewise.
1185         * config/arm/arm-tune.md: Regenerate
1186         * config/arm/arm-tables.opt: Regenerate.
1187         * config/arm/arm-cores.def: Add cortex-a53.
1189 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1191         Backport of trunk r197342.
1192         2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
1194         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
1195         scalar load/store operations using B/H registers.
1196         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
1198 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1200         Backport of trunk r197341.
1201         2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
1203         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
1204         scalar move.
1205         * config/aarch64/aarch64.c
1206         (aarch64_simd_scalar_immediate_valid_for_move): New.
1207         * config/aarch64/aarch64-protos.h
1208         (aarch64_simd_scalar_immediate_valid_for_move): New.
1209         * config/aarch64/constraints.md (Dh, Dq): New.
1210         * config/aarch64/iterators.md (hq): New.
1212 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1214         Backport from trunk r197207.
1215         2013-03-28   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1217         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
1218         (*andsi3_compare0_uxtw): New pattern.
1219         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
1220         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
1222 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1224         Backport from trunk r197153.
1225         2013-03-27  Terry Guo  <terry.guo@arm.com>
1227         * config/arm/arm-cores.def: Added core cortex-r7.
1228         * config/arm/arm-tune.md: Regenerated.
1229         * config/arm/arm-tables.opt: Regenerated.
1230         * doc/invoke.texi: Added entry for core cortex-r7.
1232 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1234         Backport from trunk r197052.
1235         2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1237         * config/arm/arm.md (f_sels, f_seld): New types.
1238         (*cmov<mode>): New pattern.
1239         * config/arm/predicates.md (arm_vsel_comparison_operator): New
1240         predicate.
1242 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1244         Backport from trunk r197046.
1245         2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1247         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
1248         Emit load-acquire versions when acq is true.
1249         (arm_emit_store_exclusive): Add rel parameter.
1250         Emit store-release versions when rel is true.
1251         (arm_split_compare_and_swap): Use acquire-release instructions
1252         instead.
1253         of barriers when appropriate.
1254         (arm_split_atomic_op): Likewise.
1255         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
1256         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
1257         (VUNSPEC_SLX): Likewise.
1258         (VUNSPEC_LDA): Likewise.
1259         (VUNSPEC_STL): Likewise.
1260         * config/arm/sync.md (atomic_load<mode>): New pattern.
1261         (atomic_store<mode>): Likewise.
1262         (arm_load_acquire_exclusive<mode>): Likewise.
1263         (arm_load_acquire_exclusivesi): Likewise.
1264         (arm_load_acquire_exclusivedi): Likewise.
1265         (arm_store_release_exclusive<mode>): Likewise.
1267 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1269         Backport from trunk r196876.
1270         2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
1272         * config/arm/arm-protos.h (tune_params): Add
1273         prefer_neon_for_64bits field.
1274         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
1275         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
1276         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
1277         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
1278         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
1279         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
1280         (arm_option_override): Handle -mneon-for-64bits new option.
1281         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
1282         (prefer_neon_for_64bits): Declare new variable.
1283         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
1284         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
1285         nota8.
1286         (arch_enabled): Handle new arch types. Remove support for onlya8
1287         and nota8.
1288         (one_cmpldi2): Use new arch names.
1289         * config/arm/arm.opt (mneon-for-64bits): Add option.
1290         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
1291         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
1292         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
1293         of onlya8.
1294         * doc/invoke.texi (-mneon-for-64bits): Document.
1296 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1298         Backport from trunk r196858.
1299         2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1301         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
1302         (abd<mode>_3): New pattern.
1303         (aba<mode>_3): New pattern.
1304         (fabd<mode>_3): New pattern.
1306 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1308         Backport from trunk r196856.
1309         2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1311         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
1312         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
1313         occurrence of REGISTER_PREFIX as its empty string.