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
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
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>
59 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
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>
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>
80 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
83 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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
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
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
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"
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>):
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
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>
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):
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
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>):
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
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):
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
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):
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>
341 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
343 2013-06-03 Christophe Lyon <christophe.lyon@linaro.org>
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>
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>
438 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
441 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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
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
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.
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.
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
520 (reduc_smin_): Likewise.
521 (reduc_umax_): Likewise.
522 (reduc_umin_): Likewise.
523 (reduc_smax_nan_): Likewise.
524 (reduc_smin_nan_): Likewise.
527 (smax): Update for V2SF, V4SF and V2DF modes.
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
541 (vmin<q>_f<32,64>): Likewise.
542 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
544 (su): Add mappings for smax, smin, umax, umin.
546 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
547 (FMAXMIN): Rename as...
548 (FMAXMIN_UNS): ...This.
550 (fmaxminv): Likewise.
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.
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...
646 * config/aarch64/aarch64-simd.md
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
654 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
656 (UCOMPARISONS): Likewise.
657 (optab): Add missing comparisons.
665 (V_cmp_result): Add DF, SF modes.
666 (v_cmp_result): 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
685 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
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
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...
783 (frintp): Rename to...
785 (frintm): Rename to...
787 (frinti): Rename to...
788 (nearbyint): ...this.
789 (frintx): Rename to...
791 (frinta): Rename to...
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.
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,
858 Handle initialisation of V4HF. Adjust initialisation of reinterpret
860 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
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
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
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
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
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.
935 (BUILTIN_GPF): Define.
936 (aarch64_init_simd_builtins): Handle SF types.
937 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
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):
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.
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.
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
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
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
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
1286 (arch_enabled): Handle new arch types. Remove support for onlya8
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
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.