1 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
3 Backport from trunk r202164.
4 2013-09-02 Bin Cheng <bin.cheng@arm.com>
6 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7 Find auto-increment use both before and after candidate.
9 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
11 Backport from trunk r202279.
12 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
14 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
16 * thumb2.md (thumb2_storewb_parisi): New pattern.
18 2013-10-03 Christophe Lyon <christophe.lyon@linaro.org>
20 Backport from trunk r202275.
21 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
23 * config/aarch64/aarch64-option-extensions.def: Add
24 AARCH64_OPT_EXTENSION of 'crc'.
25 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
26 (AARCH64_ISA_CRC): Ditto.
27 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
28 description of the CRC extension.
30 2013-10-01 Christophe Lyon <christophe.lyon@linaro.org>
32 Backport from trunk r201250.
33 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
36 addsi3_carryin_alt2_<optab>): Correct output template.
38 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
40 Backport from trunk r203059,203116.
41 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
45 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
46 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
47 define_insn_and_split.
48 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
49 (shiftsi3_compare): New pattern.
51 * config/arm/unspecs.md (UNSPEC_RRX): New.
53 2013-09-11 Christophe Lyon <christophe.lyon@linaro.org>
55 * LINARO-VERSION: Bump version.
57 2013-09-10 Christophe Lyon <christophe.lyon@linaro.org>
59 GCC Linaro 4.8-2013.09 released.
61 2013-09-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
63 Backport from trunk r200197, 201411.
64 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
66 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
67 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
68 pattern. Use more efficient sequences on ARMv5 and Thumb2.
70 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
72 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
73 Generate canonical plus rtx with negated immediate instead of minus
75 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
77 2013-09-10 Christophe Lyon <christophe.lyon@linaro.org>
79 Backport from trunk r200593,201024,201025,201122,201124,201126.
80 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
82 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
84 (iorsi3_insn): Likewise.
85 (arm_xorsi3): Likewise.
87 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
89 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
90 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift" to
91 "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
92 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
93 in alphabetical order.
94 (attribute "core_cycles"): Update for attribute changes.
95 (arm_addsi3): Likewise.
96 (addsi3_compare0): Likewise.
97 (addsi3_compare0_scratch): Likewise.
98 (addsi3_compare_op1): Likewise.
99 (addsi3_compare_op2): Likewise.
100 (compare_addsi2_op0): Likewise.
101 (compare_addsi2_op1): Likewise.
102 (addsi3_carryin_shift_<optab>): Likewise.
103 (subsi3_carryin_shift): Likewise.
104 (rsbsi3_carryin_shift): Likewise.
105 (arm_subsi3_insn): Likewise.
106 (subsi3_compare0): Likewise.
107 (subsi3_compare): Likewise.
108 (arm_andsi3_insn): Likewise.
109 (thumb1_andsi3_insn): Likewise.
110 (andsi3_compare0): Likewise.
111 (andsi3_compare0_scratch): Likewise.
112 (zeroextractsi_compare0_scratch
113 (andsi_not_shiftsi_si): Likewise.
114 (iorsi3_insn): Likewise.
115 (iorsi3_compare0): Likewise.
116 (iorsi3_compare0_scratch): Likewise.
117 (arm_xorsi3): Likewise.
118 (thumb1_xorsi3_insn): Likewise.
119 (xorsi3_compare0): Likewise.
120 (xorsi3_compare0_scratch): Likewise.
121 (satsi_<SAT:code>_shift): Likewise.
123 (arm_shiftsi3): Likewise.
124 (shiftsi3_compare0): Likewise.
125 (not_shiftsi): Likewise.
126 (not_shiftsi_compare0): Likewise.
127 (not_shiftsi_compare0_scratch): Likewise.
128 (arm_one_cmplsi2): Likewise.
129 (thumb_one_complsi2): Likewise.
130 (notsi_compare0): Likewise.
131 (notsi_compare0_scratch): Likewise.
132 (thumb1_zero_extendhisi2): Likewise.
133 (arm_zero_extendhisi2): Likewise.
134 (arm_zero_extendhisi2_v6): Likewise.
135 (arm_zero_extendhisi2addsi): Likewise.
136 (thumb1_zero_extendqisi2): Likewise.
137 (thumb1_zero_extendqisi2_v6): Likewise.
138 (arm_zero_extendqisi2): Likewise.
139 (arm_zero_extendqisi2_v6): Likewise.
140 (arm_zero_extendqisi2addsi): Likewise.
141 (thumb1_extendhisi2): Likewise.
142 (arm_extendhisi2): Likewise.
143 (arm_extendhisi2_v6): Likewise.
144 (arm_extendqisi): Likewise.
145 (arm_extendqisi_v6): Likewise.
146 (arm_extendqisi2addsi): Likewise.
147 (thumb1_extendqisi2): Likewise.
148 (thumb1_movdi_insn): Likewise.
149 (arm_movsi_insn): Likewise.
150 (movsi_compare0): Likewise.
151 (movhi_insn_arch4): Likewise.
152 (movhi_bytes): Likewise.
153 (arm_movqi_insn): Likewise.
154 (thumb1_movqi_insn): Likewise.
155 (arm32_movhf): Likewise.
156 (thumb1_movhf): Likewise.
157 (arm_movsf_soft_insn): Likewise.
158 (thumb1_movsf_insn): Likewise.
159 (movdf_soft_insn): Likewise.
160 (thumb_movdf_insn): Likewise.
161 (arm_cmpsi_insn): Likewise.
162 (cmpsi_shiftsi): Likewise.
163 (cmpsi_shiftsi_swp): Likewise.
164 (arm_cmpsi_negshiftsi_si): Likewise.
165 (movsicc_insn): Likewise.
166 (movsfcc_soft_insn): Likewise.
167 (arith_shiftsi): Likewise.
168 (arith_shiftsi_compare0
169 (arith_shiftsi_compare0_scratch
170 (sub_shiftsi): Likewise.
171 (sub_shiftsi_compare0
172 (sub_shiftsi_compare0_scratch
174 (cond_move): Likewise.
175 (if_plus_move): Likewise.
176 (if_move_plus): Likewise.
177 (if_move_not): Likewise.
178 (if_not_move): Likewise.
179 (if_shift_move): Likewise.
180 (if_move_shift): Likewise.
181 (if_shift_shift): Likewise.
182 (if_not_arith): Likewise.
183 (if_arith_not): Likewise.
184 (cond_move_not): Likewise.
185 (thumb1_ashlsi3): Set type attribute.
186 (thumb1_ashrsi3): Likewise.
187 (thumb1_lshrsi3): Likewise.
188 (thumb1_rotrsi3): Likewise.
189 (shiftsi3_compare0_scratch): Likewise.
190 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
191 (neon_mov<mode>): Likewise.
192 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for attribute
194 (thumb2_movsi_insn): Likewise.
195 (thumb2_cmpsi_neg_shiftsi): Likewise.
196 (thumb2_extendqisi_v6): Likewise.
197 (thumb2_zero_extendhisi2_v6): Likewise.
198 (thumb2_zero_extendqisi2_v6): Likewise.
199 (thumb2_shiftsi3_short): Likewise.
200 (thumb2_addsi3_compare0_scratch): Likewise.
201 (orsi_not_shiftsi_si): Likewise.
202 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
203 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
205 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
206 (1020alu_shift_op): Likewise.
207 (1020alu_shift_reg_op): Likewise.
208 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
209 (alu_shift_op): Likewise.
210 (alu_shift_reg_op): Likewise.
211 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
212 (11_alu_shift_op): Likewise.
213 (11_alu_shift_reg_op): Likewise.
214 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
215 (9_alu_shift_reg_op): Likewise.
216 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute changes.
217 (cortex_a15_alu_shift): Likewise.
218 (cortex_a15_alu_shift_reg): Likewise.
219 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute changes.
220 (cortex_a5_alu_shift): Likewise.
221 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
223 (cortex_a53_alu_shift): Likewise.
224 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
226 (cortex_a7_alu_reg): Likewise.
227 (cortex_a7_alu_shift): Likewise.
228 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute changes.
229 (cortex_a8_alu_shift): Likewise.
230 (cortex_a8_alu_shift_reg): Likewise.
231 (cortex_a8_mov): Likewise.
232 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
233 (cortex_a9_dp_shift): Likewise.
234 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute changes.
235 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute changes.
236 (cortex_r4_mov): Likewise.
237 (cortex_r4_alu_shift): Likewise.
238 (cortex_r4_alu_shift_reg): Likewise.
239 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
240 (526_alu_shift_op): Likewise.
241 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
242 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
243 (626te_alu_shift_op): Likewise.
244 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
245 (726te_alu_op): Likewise.
246 (726te_alu_shift_op): Likewise.
247 (726te_alu_shift_reg_op): Likewise.
248 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
249 (mp626_alu_shift_op): Likewise.
250 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
251 (pj4_alu_e1_conds): Likewise.
253 (pj4_alu_conds): Likewise.
254 (pj4_shift): Likewise.
255 (pj4_shift_conds): Likewise.
256 (pj4_alu_shift): Likewise.
257 (pj4_alu_shift_conds): Likewise.
258 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute changes.
259 (cortexa7_older_only): Likewise.
260 (cortexa7_younger): Likewise.
262 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
264 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
265 "xtab" and "sat". Move value "clz" from here to ...
266 (attriubte "type"): ... here.
267 (satsi_<SAT:code>): Delete "insn" attribute.
268 (satsi_<SAT:code>_shift): Likewise.
269 (arm_zero_extendqisi2addsi): Likewise.
270 (arm_extendqisi2addsi): Likewise.
271 (clzsi2): Update for attribute changes.
273 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" attribute.
274 (arm_usatsihi): Likewise.
275 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
277 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
279 * config/arm/predicates.md (shiftable_operator_strict_it):
281 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
282 Disable cond_exec version for arm_restrict_it.
283 (thumb2_smaxsi3): Convert to generate cond_exec.
284 (thumb2_sminsi3): Likewise.
285 (thumb32_umaxsi3): Likewise.
286 (thumb2_uminsi3): Likewise.
287 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
288 (thumb2_neg_abssi2): Likewise.
289 (thumb2_mov_scc): Add alternative for 16-bit encoding.
290 (thumb2_movsicc_insn): Adjust alternatives.
291 (thumb2_mov_negscc): Disable for arm_restrict_it.
292 (thumb2_mov_negscc_strict_it): New pattern.
293 (thumb2_mov_notscc_strict_it): New pattern.
294 (thumb2_mov_notscc): Disable for arm_restrict_it.
295 (thumb2_ior_scc): Likewise.
296 (thumb2_ior_scc_strict_it): New pattern.
297 (thumb2_cond_move): Adjust for arm_restrict_it.
298 (thumb2_cond_arith): Disable for arm_restrict_it.
299 (thumb2_cond_arith_strict_it): New pattern.
300 (thumb2_cond_sub): Adjust for arm_restrict_it.
301 (thumb2_movcond): Likewise.
302 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
303 (thumb2_zero_extendhisi2_v6): Likewise.
304 (thumb2_zero_extendqisi2_v6): Likewise.
305 (orsi_notsi_si): Likewise.
306 (orsi_not_shiftsi_si): Likewise.
308 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
310 * config/arm/arm.md (attribute "insn"): Delete.
311 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
312 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
313 (not_shiftsi): Update for attribute change.
314 (not_shiftsi_compare0): Likewise.
315 (not_shiftsi_compare0_scratch): Likewise.
316 (arm_one_cmplsi2): Likewise.
317 (thumb1_one_cmplsi2): Likewise.
318 (notsi_compare0): Likewise.
319 (notsi_compare0_scratch): Likewise.
320 (thumb1_movdi_insn): Likewise.
321 (arm_movsi_insn): Likewise.
322 (movhi_insn_arch4): Likewise.
323 (movhi_bytes): Likewise.
324 (arm_movqi_insn): Likewise.
325 (thumb1_movqi_insn): Likewise.
326 (arm32_movhf): Likewise.
327 (thumb1_movhf): Likewise.
328 (arm_movsf_soft_insn): Likewise.
329 (thumb1_movsf_insn): Likewise.
330 (thumb_movdf_insn): Likewise.
331 (movsicc_insn): Likewise.
332 (movsfcc_soft_insn): Likewise.
334 (cond_move): Likewise.
335 (if_move_not): Likewise.
336 (if_not_move): Likewise.
337 (if_shift_move): Likewise.
338 (if_move_shift): Likewise.
339 (if_shift_shift): Likewise.
340 (if_not_arith): Likewise.
341 (if_arith_not): Likewise.
342 (cond_move_not): Likewise.
343 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
344 (neon_mov<mode>): Likewise.
345 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
346 (thumb2_movsi_vfp): Likewise.
347 (movsf_vfp): Likewise.
348 (thumb2_movsf_vfp): Likewise.
349 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute change.
350 (cortexa7_older_only): Likewise.
351 (cortexa7_younger): Likewise.
352 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
353 (1020alu_shift_op): Likewise.
354 (1020alu_shift_reg_op): Likewise.
355 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
356 (alu_shift_op): Likewise.
357 (alu_shift_reg_op): Likewise.
358 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
359 (11_alu_shift_op): Likewise.
360 (11_alu_shift_reg_op): Likewise.
361 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
362 (9_alu_shift_reg_op): Likewise.
363 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute change.
364 (cortex_a15_alu_shift): Likewise.
365 (cortex_a15_alu_shift_reg): Likewise.
366 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
367 (cortex_a5_alu_shift): Likewise.
368 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute change.
369 (cortex_a53_alu_shift): Likewise.
370 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute change.
371 (cortex_a7_alu_reg): Likewise.
372 (cortex_a7_alu_shift): Likewise.
373 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
374 (cortex_a8_alu_shift): Likewise.
375 (cortex_a8_alu_shift_reg): Likewise.
376 (cortex_a8_mov): Likewise.
377 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
378 (cortex_a9_dp_shift): Likewise.
379 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
380 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
381 (cortex_r4_mov): Likewise.
382 (cortex_r4_alu_shift): Likewise.
383 (cortex_r4_alu_shift_reg): Likewise.
384 * config/arm/fa526.md (526_alu_op): Update for attribute change.
385 (526_alu_shift_op): Likewise.
386 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
387 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
388 (626te_alu_shift_op): Likewise.
389 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
390 (726te_alu_op): Likewise.
391 (726te_alu_shift_op): Likewise.
392 (726te_alu_shift_reg_op): Likewise.
393 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
394 (mp626_alu_shift_op): Likewise.
395 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
396 (pj4_alu_e1_conds): Likewise.
398 (pj4_alu_conds): Likewise.
399 (pj4_shift): Likewise.
400 (pj4_shift_conds): Likewise.
401 (pj4_alu_shift): Likewise.
402 (pj4_alu_shift_conds): Likewise.
404 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
406 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
407 instead of TARGET_THUMB1.
408 (Pz): New constraint.
409 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
411 (compare_negsi_si): Likewise.
412 (compare_addsi2_op0): Likewise.
413 (compare_addsi2_op1): Likewise.
414 (addsi3_carryin_<optab>): Likewise.
415 (addsi3_carryin_alt2_<optab>): Likewise.
416 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
418 (subsi3_carryin): Likewise.
419 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
420 (minmax_arithsi): Disable for arm_restrict_it.
421 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
422 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
423 (satsi_<SAT:code>_shift): Likewise.
424 (arm_shiftsi3): Add alternative for 16-bit encoding.
425 (arm32_movhf): Disable for arm_restrict_it.
426 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
427 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
429 2013-09-09 Kugan Vivekanandarajah <kuganv@linaro.org>
431 Backport from trunk r201412.
432 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
434 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical RTL form
435 when subtracting a constant.
437 2013-09-05 Yvan Roux <yvan.roux@linaro.org>
439 Backport from trunk r201249.
440 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
442 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
443 Adjust for arm_restrict_it.
444 Remove trailing whitespace.
446 2013-09-05 Yvan Roux <yvan.roux@linaro.org>
448 Backport from trunk r201342.
449 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
451 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
454 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
456 Backport from trunk r199527,199792,199814.
457 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
460 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
461 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
462 * config/arm/neon.md (iordi3_neon): Remove.
463 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
464 * config/arm/predicates.md (imm_for_neon_logic_operand):
465 Move to earlier in the file.
466 (neon_logic_op2): Likewise.
467 (arm_iordi_operand_neon): New predicate.
469 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
471 * config/arm/constraints.md (Df): New constraint.
472 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
473 Correct length attribute for last two alternatives.
475 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
478 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
479 (xordi3): Change operand 2 constraint to arm_xordi_operand.
480 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
481 * config/arm/constraints.md (Dg): New constraint.
482 * config/arm/neon.md (xordi3_neon): Remove.
483 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
484 * config/arm/predicates.md (arm_xordi_operand): New predicate.
486 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
488 Backport from trunk r201599.
489 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
492 * arm/neon.md (neon_vld1_dupdi): New expand pattern.
493 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
495 2013-09-05 Christophe Lyon <christophe.lyon@linaro.org>
497 Backport from trunk r201589.
498 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
501 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
503 2013-09-03 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
507 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
509 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
510 (get_lane_unsigned): Likewise.
511 (dup_lane_scalar): Likewise.
512 (get_lane): enable for VALL.
513 * config/aarch64/aarch64-simd.md
514 (aarch64_dup_lane_scalar<mode>): Remove.
515 (aarch64_get_lane_signed<mode>): Likewise.
516 (aarch64_get_lane_unsigned<mode>): Likewise.
517 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
518 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
519 (aarch64_get_lane<mode>): Enable for all vector modes.
520 (aarch64_get_lanedi): Remove misleading constraints.
521 * config/aarch64/arm_neon.h
522 (__aarch64_vget_lane_any): Define.
523 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
524 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
525 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
526 * config/aarch64/iterators.md (VDQQH): New.
530 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
532 * config/aarch64/arm_none.h
533 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
535 2013-08-26 Kugan Vivekanandarajah <kuganv@linaro.org>
537 Backport from trunk r201341.
538 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
540 * arm.md (mulhi3): New expand pattern.
542 2013-08-16 Christophe Lyon <christophe.lyon@linaro.org>
544 * LINARO-VERSION: Bump version.
546 2013-08-14 Christophe Lyon <christophe.lyon@linaro.org>
548 GCC Linaro 4.8-2013.08 released.
550 2013-08-08 Christophe Lyon <christophe.lyon@linaro.org>
553 r198489,200167,200199,200510,200513,200515,200576.
554 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
556 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
557 define_insn to define_insn_and_split.
558 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
559 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
560 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
561 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
562 (thumb2_negscc): Likewise.
564 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
566 * config/arm/arm.md (attribute "insn"): Move multiplication and division
568 (attribute "type"): ... here. Remove mult.
569 (attribute "mul32"): New attribute.
570 (attribute "mul64"): Add umaal.
571 (*arm_mulsi3): Update attributes.
572 (*arm_mulsi3_v6): Likewise.
573 (*thumb_mulsi3): Likewise.
574 (*thumb_mulsi3_v6): Likewise.
575 (*mulsi3_compare0): Likewise.
576 (*mulsi3_compare0_v6): Likewise.
577 (*mulsi_compare0_scratch): Likewise.
578 (*mulsi_compare0_scratch_v6): Likewise.
579 (*mulsi3addsi): Likewise.
580 (*mulsi3addsi_v6): Likewise.
581 (*mulsi3addsi_compare0): Likewise.
582 (*mulsi3addsi_compare0_v6): Likewise.
583 (*mulsi3addsi_compare0_scratch): Likewise.
584 (*mulsi3addsi_compare0_scratch_v6): Likewise.
585 (*mulsi3subsi): Likewise.
586 (*mulsidi3adddi): Likewise.
587 (*mulsi3addsi_v6): Likewise.
588 (*mulsidi3adddi_v6): Likewise.
589 (*mulsidi3_nov6): Likewise.
590 (*mulsidi3_v6): Likewise.
591 (*umulsidi3_nov6): Likewise.
592 (*umulsidi3_v6): Likewise.
593 (*umulsidi3adddi): Likewise.
594 (*umulsidi3adddi_v6): Likewise.
595 (*smulsi3_highpart_nov6): Likewise.
596 (*smulsi3_highpart_v6): Likewise.
597 (*umulsi3_highpart_nov6): Likewise.
598 (*umulsi3_highpart_v6): Likewise.
599 (mulhisi3): Likewise.
600 (*mulhisi3tb): Likewise.
601 (*mulhisi3bt): Likewise.
602 (*mulhisi3tt): Likewise.
603 (maddhisi4): Likewise.
604 (*maddhisi4tb): Likewise.
605 (*maddhisi4tt): Likewise.
606 (maddhidi4): Likewise.
607 (*maddhidi4tb): Likewise.
608 (*maddhidi4tt): Likewise.
611 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
612 (thumb2_mulsi_short_compare0): Likewise.
613 (thumb2_mulsi_short_compare0_scratch): Likewise.
614 * config/arm/arm1020e.md (1020mult1): Update attribute change.
615 (1020mult2): Likewise.
616 (1020mult3): Likewise.
617 (1020mult4): Likewise.
618 (1020mult5): Likewise.
619 (1020mult6): Likewise.
620 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute change.
621 (cortex_a15_mult64): Likewise.
622 (cortex_a15_sdiv): Likewise.
623 (cortex_a15_udiv): Likewise.
624 * config/arm/arm1026ejs.md (mult1): Update attribute change.
630 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
631 (pj4_ir_div): Likewise.
632 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
633 (11_mult2): Likewise.
634 (11_mult3): Likewise.
635 (11_mult4): Likewise.
636 (11_mult5): Likewise.
637 (11_mult6): Likewise.
638 (11_mult7): Likewise.
639 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
640 (cortex_a8_mla): Likewise.
641 (cortex_a8_mull): Likewise.
642 (cortex_a8_smulwy): Likewise.
643 (cortex_a8_smlald): Likewise.
644 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
645 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
646 (cortex_r4_mul_3): Likewise.
647 (cortex_r4_mla_4): Likewise.
648 (cortex_r4_mla_3): Likewise.
649 (cortex_r4_smlald): Likewise.
650 (cortex_r4_mull): Likewise.
651 (cortex_r4_sdiv): Likewise.
652 (cortex_r4_udiv): Likewise.
653 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
654 (cortex_a7_idiv): Likewise.
655 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
661 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
662 (cortex_a53_sdiv): Likewise.
663 (cortex_a53_udiv): Likewise.
664 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
665 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
666 (mp626_mult2): Likewise.
667 (mp626_mult3): Likewise.
668 (mp626_mult4): Likewise.
669 * config/arm/fa526.md (526_mult1): Update attribute change.
670 (526_mult2): Likewise.
671 * config/arm/arm-generic.md (mult): Update attribute change.
672 (mult_ldsched_strongarm): Likewise.
673 (mult_ldsched): Likewise.
674 (multi_cycle): Likewise.
675 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
676 * config/arm/fa606te.md (606te_mult1): Update attribute change.
677 (606te_mult2): Likewise.
678 (606te_mult3): Likewise.
679 (606te_mult4): Likewise.
680 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
681 (cortex_a9_mac16): Likewise.
682 (cortex_a9_multiply): Likewise.
683 (cortex_a9_mac): Likewise.
684 (cortex_a9_multiply_long): Likewise.
685 * config/arm/fa626te.md (626te_mult1): Update attribute change.
686 (626te_mult2): Likewise.
687 (626te_mult3): Likewise.
688 (626te_mult4): Likewise.
690 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
692 * config/arm/vfp.md: Move VFP instruction classification documentation
694 * config/arm/arm.md: ... here. Update instruction classification
697 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
699 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
700 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
702 * config/arm/vfp.md (*thumb2_movsf_vfp):
703 Disable predication for arm_restrict_it.
704 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
705 (*thumb2_movdfcc_vfp): Likewise.
706 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
707 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
708 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
709 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
710 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
711 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
712 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
713 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
714 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
715 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
716 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
717 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
718 Disable predication for arm_restrict_it.
720 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
722 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
724 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
725 (mulsi3subsi): Likewise.
726 (mulsidi3adddi): Likewise.
727 (mulsidi3_v6): Likewise.
728 (umulsidi3_v6): Likewise.
729 (umulsidi3adddi_v6): Likewise.
730 (smulsi3_highpart_v6): Likewise.
731 (umulsi3_highpart_v6): Likewise.
732 (mulhisi3tb): Likewise.
733 (mulhisi3bt): Likewise.
734 (mulhisi3tt): Likewise.
735 (maddhisi4): Likewise.
736 (maddhisi4tb): Likewise.
737 (maddhisi4tt): Likewise.
738 (maddhidi4): Likewise.
739 (maddhidi4tb): Likewise.
740 (maddhidi4tt): Likewise.
741 (zeroextractsi_compare0_scratch): Likewise.
742 (insv_zero): Likewise.
744 (anddi_notzesidi_di): Likewise.
745 (anddi_notsesidi_di): Likewise.
746 (andsi_notsi_si): Likewise.
747 (iordi_zesidi_di): Likewise.
748 (xordi_zesidi_di): Likewise.
749 (andsi_iorsi3_notsi): Likewise.
753 (not_shiftsi): Likewise.
754 (unaligned_loadsi): Likewise.
755 (unaligned_loadhis): Likewise.
756 (unaligned_loadhiu): Likewise.
757 (unaligned_storesi): Likewise.
758 (unaligned_storehi): Likewise.
759 (extv_reg): Likewise.
760 (extzv_t2): Likewise.
763 (arm_zero_extendhisi2addsi): Likewise.
764 (arm_zero_extendqisi2addsi): Likewise.
765 (compareqi_eq0): Likewise.
766 (arm_extendhisi2_v6): Likewise.
767 (arm_extendqisi2addsi): Likewise.
768 (arm_movt): Likewise.
769 (thumb2_ldrd): Likewise.
770 (thumb2_ldrd_base): Likewise.
771 (thumb2_ldrd_base_neg): Likewise.
772 (thumb2_strd): Likewise.
773 (thumb2_strd_base): Likewise.
774 (thumb2_strd_base_neg): Likewise.
775 (arm_negsi2): Add alternative for 16-bit encoding.
776 (arm_one_cmplsi2): Likewise.
778 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
780 * config/arm/constraints.md (Ts): New constraint.
781 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
783 (compare_scc): Use "Ts" constraint for operand 0.
784 (ior_scc_scc): Likewise.
785 (and_scc_scc): Likewise.
786 (and_scc_scc_nodom): Likewise.
787 (ior_scc_scc_cmp): Likewise for operand 7.
788 (and_scc_scc_cmp): Likewise.
789 * config/arm/thumb2.md (thumb2_movsi_insn):
790 Add alternatives for 16-bit encodings.
791 (thumb2_movhi_insn): Likewise.
792 (thumb2_movsicc_insn): Likewise.
793 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
794 (thumb2_negscc): Use "Ts" constraint.
795 Move mvn instruction outside cond_exec block.
796 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
797 for 16-bit encodings.
799 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
801 * arm.md (attribute "wtype"): Delete. Move attribute values from here
803 (attribute "type"): ... here, and prefix with "wmmx_".
804 (attribute "core_cycles"): Update for attribute changes.
805 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
806 (tbcstv4hi): Likewise.
807 (tbcstv2si): Likewise.
808 (iwmmxt_iordi3): Likewise.
809 (iwmmxt_xordi3): Likewise.
810 (iwmmxt_anddi3): Likewise.
811 (iwmmxt_nanddi3): Likewise.
812 (iwmmxt_arm_movdi): Likewise.
813 (iwmmxt_movsi_insn): Likewise.
814 (mov<mode>_internal): Likewise.
815 (and<mode>3_iwmmxt): Likewise.
816 (ior<mode>3_iwmmxt): Likewise.
817 (xor<mode>3_iwmmxt): Likewise.
818 (add<mode>3_iwmmxt): Likewise.
819 (ssaddv8qi3): Likewise.
820 (ssaddv4hi3): Likewise.
821 (ssaddv2si3): Likewise.
822 (usaddv8qi3): Likewise.
823 (usaddv4hi3): Likewise.
824 (usaddv2si3): Likewise.
825 (sub<mode>3_iwmmxt): Likewise.
826 (sssubv8qi3): Likewise.
827 (sssubv4hi3): Likewise.
828 (sssubv2si3): Likewise.
829 (ussubv8qi3): Likewise.
830 (ussubv4hi3): Likewise.
831 (ussubv2si3): Likewise.
832 (mulv4hi3_iwmmxt): Likewise.
833 (smulv4hi3_highpart): Likewise.
834 (umulv4hi3_highpart): Likewise.
835 (iwmmxt_wmacs): Likewise.
836 (iwmmxt_wmacsz): Likewise.
837 (iwmmxt_wmacu): Likewise.
838 (iwmmxt_wmacuz): Likewise.
839 (iwmmxt_clrdi): Likewise.
840 (iwmmxt_clrv8qi): Likewise.
841 (iwmmxt_clr4hi): Likewise.
842 (iwmmxt_clr2si): Likewise.
843 (iwmmxt_uavgrndv8qi3): Likewise.
844 (iwmmxt_uavgrndv4hi3): Likewise.
845 (iwmmxt_uavgv8qi3): Likewise.
846 (iwmmxt_uavgv4hi3): Likewise.
847 (iwmmxt_tinsrb): Likewise.
848 (iwmmxt_tinsrh): Likewise.
849 (iwmmxt_tinsrw): Likewise.
850 (iwmmxt_textrmub): Likewise.
851 (iwmmxt_textrmsb): Likewise.
852 (iwmmxt_textrmuh): Likewise.
853 (iwmmxt_textrmsh): Likewise.
854 (iwmmxt_textrmw): Likewise.
855 (iwmxxt_wshufh): Likewise.
859 (gtuv8qi3): Likewise.
860 (gtuv4hi3): Likewise.
861 (gtuv2si3): Likewise.
865 (smax<mode>3_iwmmxt): Likewise.
866 (umax<mode>3_iwmmxt): Likewise.
867 (smin<mode>3_iwmmxt): Likewise.
868 (umin<mode>3_iwmmxt): Likewise.
869 (iwmmxt_wpackhss): Likewise.
870 (iwmmxt_wpackwss): Likewise.
871 (iwmmxt_wpackdss): Likewise.
872 (iwmmxt_wpackhus): Likewise.
873 (iwmmxt_wpackwus): Likewise.
874 (iwmmxt_wpackdus): Likewise.
875 (iwmmxt_wunpckihb): Likewise.
876 (iwmmxt_wunpckihh): Likewise.
877 (iwmmxt_wunpckihw): Likewise.
878 (iwmmxt_wunpckilb): Likewise.
879 (iwmmxt_wunpckilh): Likewise.
880 (iwmmxt_wunpckilw): Likewise.
881 (iwmmxt_wunpckehub): Likewise.
882 (iwmmxt_wunpckehuh): Likewise.
883 (iwmmxt_wunpckehuw): Likewise.
884 (iwmmxt_wunpckehsb): Likewise.
885 (iwmmxt_wunpckehsh): Likewise.
886 (iwmmxt_wunpckehsw): Likewise.
887 (iwmmxt_wunpckelub): Likewise.
888 (iwmmxt_wunpckeluh): Likewise.
889 (iwmmxt_wunpckeluw): Likewise.
890 (iwmmxt_wunpckelsb): Likewise.
891 (iwmmxt_wunpckelsh): Likewise.
892 (iwmmxt_wunpckelsw): Likewise.
893 (ror<mode>3): Likewise.
894 (ashr<mode>3_iwmmxt): Likewise.
895 (lshr<mode>3_iwmmxt): Likewise.
896 (ashl<mode>3_iwmmxt): Likewise.
897 (ror<mode>3_di): Likewise.
898 (ashr<mode>3_di): Likewise.
899 (lshr<mode>3_di): Likewise.
900 (ashl<mode>3_di): Likewise.
901 (iwmmxt_wmadds): Likewise.
902 (iwmmxt_wmaddu): Likewise.
903 (iwmmxt_tmia): Likewise.
904 (iwmmxt_tmiaph): Likewise.
905 (iwmmxt_tmiabb): Likewise.
906 (iwmmxt_tmiatb): Likewise.
907 (iwmmxt_tmiabt): Likewise.
908 (iwmmxt_tmiatt): Likewise.
909 (iwmmxt_tmovmskb): Likewise.
910 (iwmmxt_tmovmskh): Likewise.
911 (iwmmxt_tmovmskw): Likewise.
912 (iwmmxt_waccb): Likewise.
913 (iwmmxt_wacch): Likewise.
914 (iwmmxt_waccw): Likewise.
915 (iwmmxt_waligni): Likewise.
916 (iwmmxt_walignr): Likewise.
917 (iwmmxt_walignr0): Likewise.
918 (iwmmxt_walignr1): Likewise.
919 (iwmmxt_walignr2): Likewise.
920 (iwmmxt_walignr3): Likewise.
921 (iwmmxt_wsadb): Likewise.
922 (iwmmxt_wsadh): Likewise.
923 (iwmmxt_wsadbz): Likewise.
924 (iwmmxt_wsadhz): Likewise.
925 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
926 (iwmmxt_wabsdiffb): Likewise.
927 (iwmmxt_wabsdiffh): Likewise.
928 (iwmmxt_wabsdiffw): Likewise.
929 (iwmmxt_waddsubhx): Likewise
930 (iwmmxt_wsubaddhx): Likewise.
931 (addc<mode>3): Likewise.
932 (iwmmxt_avg4): Likewise.
933 (iwmmxt_avg4r): Likewise.
934 (iwmmxt_wmaddsx): Likewise.
935 (iwmmxt_wmaddux): Likewise.
936 (iwmmxt_wmaddsn): Likewise.
937 (iwmmxt_wmaddun): Likewise.
938 (iwmmxt_wmulwsm): Likewise.
939 (iwmmxt_wmulwum): Likewise.
940 (iwmmxt_wmulsmr): Likewise.
941 (iwmmxt_wmulumr): Likewise.
942 (iwmmxt_wmulwsmr): Likewise.
943 (iwmmxt_wmulwumr): Likewise.
944 (iwmmxt_wmulwl): Likewise.
945 (iwmmxt_wqmulm): Likewise.
946 (iwmmxt_wqmulwm): Likewise.
947 (iwmmxt_wqmulmr): Likewise.
948 (iwmmxt_wqmulwmr): Likewise.
949 (iwmmxt_waddbhusm): Likewise.
950 (iwmmxt_waddbhusl): Likewise.
951 (iwmmxt_wqmiabb): Likewise.
952 (iwmmxt_wqmiabt): Likewise.
953 (iwmmxt_wqmiatb): Likewise.
954 (iwmmxt_wqmiatt): Likewise.
955 (iwmmxt_wqmiabbn): Likewise.
956 (iwmmxt_wqmiabtn): Likewise.
957 (iwmmxt_wqmiatbn): Likewise.
958 (iwmmxt_wqmiattn): Likewise.
959 (iwmmxt_wmiabb): Likewise.
960 (iwmmxt_wmiabt): Likewise.
961 (iwmmxt_wmiatb): Likewise.
962 (iwmmxt_wmiatt): Likewise.
963 (iwmmxt_wmiabbn): Likewise.
964 (iwmmxt_wmiabtn): Likewise.
965 (iwmmxt_wmiatbn): Likewise.
966 (iwmmxt_wmiattn): Likewise.
967 (iwmmxt_wmiawbb): Likewise.
968 (iwmmxt_wmiawbt): Likewise.
969 (iwmmxt_wmiawtb): Likewise.
970 (iwmmxt_wmiawtt): Likewise.
971 (iwmmxt_wmiawbbn): Likewise.
972 (iwmmxt_wmiawbtn): Likewise.
973 (iwmmxt_wmiawtbn): Likewise.
974 (iwmmxt_wmiawttn): Likewise.
975 (iwmmxt_wmerge): Likewise.
976 (iwmmxt_tandc<mode>3): Likewise.
977 (iwmmxt_torc<mode>3): Likewise.
978 (iwmmxt_torvsc<mode>3): Likewise.
979 (iwmmxt_textrc<mode>3): Likewise.
980 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
981 (wmmxt_pack): Likewise.
982 (wmmxt_mult_c1): Likewise.
983 (wmmxt_mult_c2): Likewise.
984 (wmmxt_alu_c1): Likewise.
985 (wmmxt_alu_c2): Likewise.
986 (wmmxt_alu_c3): Likewise.
987 (wmmxt_transfer_c1): Likewise.
988 (wmmxt_transfer_c2): Likewise.
989 (wmmxt_transfer_c3): Likewise.
990 (marvell_f_iwmmxt_wstr): Likewise.
991 (marvell_f_iwmmxt_wldr): Likewise.
993 2013-08-07 Christophe Lyon <christophe.lyon@linaro.org>
995 Backport from trunk r201237.
996 2013-07-25 Terry Guo <terry.guo@arm.com>
998 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
999 shift_add/shift_sub0/shift_sub1 RTXs.
1001 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
1003 Backport from trunk r200596,201067,201083.
1004 2013-07-02 Ian Bolton <ian.bolton@arm.com>
1006 * config/aarch64/aarch64-simd.md (absdi2): Support abs for
1009 2013-07-19 Ian Bolton <ian.bolton@arm.com>
1011 * config/aarch64/arm_neon.h (vabs_s64): New function
1013 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
1015 * config/aarch64/aarch64-builtins.c
1016 (aarch64_fold_builtin): Fold abs in all modes.
1017 * config/aarch64/aarch64-simd-builtins.def
1018 (abs): Enable for all modes.
1019 * config/aarch64/arm_neon.h
1020 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
1021 (vabs_f64): Add missing intrinsic.
1023 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
1025 Backport from trunk r198735,198831,199959.
1026 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
1028 * config/aarch64/aarch64.md: New movtf split.
1029 (*movtf_aarch64): Update.
1030 (aarch64_movdi_tilow): Handle TF modes and rename to
1031 aarch64_movdi_<mode>low.
1032 (aarch64_movdi_tihigh): Handle TF modes and rename to
1033 aarch64_movdi_<mode>high
1034 (aarch64_movtihigh_di): Handle TF modes and rename to
1035 aarch64_mov<mode>high_di
1036 (aarch64_movtilow_di): Handle TF modes and rename to
1037 aarch64_mov<mode>low_di
1038 (aarch64_movtilow_tilow): Remove spurious whitespace.
1039 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
1041 (aarch64_print_operand): Update.
1043 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
1045 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
1046 similar switch cases.
1047 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
1048 (aarch64_simd_mov_to_<mode>low): Delete.
1049 (aarch64_simd_mov_to_<mode>high): Delete.
1050 (move_lo_quad_<mode>): Add w<-r alternative.
1051 (aarch64_simd_move_hi_quad_<mode>): Likewise.
1052 (aarch64_simd_mov_from_*): Update type attribute.
1053 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
1056 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
1058 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
1060 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
1062 Backport from trunk r199438,199439,201326.
1064 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1066 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1067 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1068 (arm_emit_vfp_multi_reg_pop): Likewise.
1069 (thumb2_emit_ldrd_pop): Likewise.
1070 (arm_expand_epilogue): Add misc REG_CFA notes.
1071 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1073 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1074 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1076 * config/arm/arm-protos.h: Add and update function protos.
1077 * config/arm/arm.c (use_simple_return_p): New added.
1078 (thumb2_expand_return): Check simple_return flag.
1079 * config/arm/arm.md: Add simple_return and conditional simple_return.
1080 * config/arm/iterators.md: Add iterator for return and simple_return.
1082 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1084 PR rtl-optimization/57637
1085 * function.c (move_insn_for_shrink_wrap): Also check the
1086 GEN set of the LIVE problem for the liveness analysis
1087 if it exists, otherwise give up.
1089 2013-08-06 Christophe Lyon <christophe.lyon@linaro.org>
1091 Backport from trunk r198928,198973,199203,201240,201241,201307.
1092 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1095 * config/arm/predicates.md (call_insn_operand): New predicate.
1096 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
1097 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1098 if insn is not a tail call.
1099 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1101 * config/arm/arm.h (enum reg_class): New caller save register class.
1102 (REG_CLASS_NAMES): Likewise.
1103 (REG_CLASS_CONTENTS): Likewise.
1104 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1107 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1110 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1113 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1117 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1118 (any_sibcall_could_use_r3): this and handle indirect calls.
1119 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1121 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1126 * config/arm/arm.md ("*sibcall_value_insn): Replace use of
1127 Ss with US. Adjust output for v5 and v4t.
1128 (*sibcall_value_insn): Likewise and loosen predicate on
1130 * config/arm/constraints.md ("Ss"): Rename to US.
1132 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1134 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
1136 2013-07-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1137 Fix incorrect changelog entry.
1144 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1146 Backport from trunk r200922.
1147 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
1149 * config/aarch64/aarch64-protos.h
1150 (aarch64_simd_immediate_valid_for_move): Remove.
1151 * config/aarch64/aarch64.c (simd_immediate_info): New member.
1152 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
1154 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
1156 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1158 Backport from trunk r200670.
1159 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
1161 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
1162 (tune_params): New member 'const vec_costs'.
1163 * config/aarch64/aarch64.c (generic_vector_cost): New.
1164 (generic_tunings): New member 'generic_vector_cost'.
1165 (aarch64_builtin_vectorization_cost): New.
1166 (aarch64_add_stmt_cost): New.
1167 (TARGET_VECTORIZE_ADD_STMT_COST): New.
1168 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
1170 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1172 Backport from trunk r200637.
1173 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
1175 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
1176 (ARM_ABI_AAPCS64): Ditto.
1178 (ARM_DEFAULT_ABI): Ditto.
1180 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1182 Backport from trunk r200532, r200565.
1183 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
1185 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
1188 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
1190 * config/aarch64/aarch64.c: Remove junk from the beginning of the
1193 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1195 Backport from trunk r200531.
1196 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
1198 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
1199 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
1201 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1203 Backport from trunk r200519.
1204 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
1206 * config/aarch64/aarch64-protos.h
1207 aarch64_classify_symbol_expression): Define.
1208 (aarch64_symbolic_constant_p): Remove.
1209 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
1210 static. Fix line length and white space.
1211 (aarch64_symbolic_constant_p): Remove.
1212 * config/aarch64/predicates.md (aarch64_valid_symref):
1213 Use aarch64_classify_symbol_expression.
1215 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1217 Backport from trunk r200466, r200467.
1218 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
1220 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
1221 parameter 'mode' of type 'enum machine_mode mode'; change to pass
1222 'mode' to force_reg.
1223 (aarch64_add_offset): Update calls to aarch64_force_temporary.
1224 (aarch64_expand_mov_immediate): Likewise.
1226 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
1228 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
1229 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
1231 2013-08-05 Yvan Roux <yvan.roux@linaro.org>
1233 Backport from trunk r200419.
1234 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
1236 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
1237 * config/arm/arm-protos.h (arm_max_conditional_execute): New
1239 (tune_params): Update comment.
1240 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
1241 (arm_max_conditional_execute): New function.
1242 (thumb2_final_prescan_insn): Use max_insn_skipped and
1243 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
1245 2013-07-24 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1247 * LINARO-VERSION: Bump version.
1249 2013-07-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1251 GCC Linaro 4.8-2013.07-1 released.
1253 2013-07-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1255 Backport from trunk r201005.
1256 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
1259 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
1262 2013-07-05 Christophe Lyon <christophe.lyon@linaro.org>
1264 GCC Linaro 4.8-2013.07 released.
1266 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
1268 Revert backport from trunk r198928,198973,199203.
1269 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1273 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1274 (any_sibcall_could_use_r3): this and handle indirect calls.
1275 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1277 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1280 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1283 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1286 * config/arm/predicates.md (call_insn_operand): New predicate.
1287 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
1288 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1289 if insn is not a tail call.
1290 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1292 * config/arm/arm.h (enum reg_class): New caller save register class.
1293 (REG_CLASS_NAMES): Likewise.
1294 (REG_CLASS_CONTENTS): Likewise.
1295 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1298 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
1300 Revert backport from mainline (r199438, r199439)
1301 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1303 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1304 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1305 (arm_emit_vfp_multi_reg_pop): Likewise.
1306 (thumb2_emit_ldrd_pop): Likewise.
1307 (arm_expand_epilogue): Add misc REG_CFA notes.
1308 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1310 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1311 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1313 * config/arm/arm-protos.h: Add and update function protos.
1314 * config/arm/arm.c (use_simple_return_p): New added.
1315 (thumb2_expand_return): Check simple_return flag.
1316 * config/arm/arm.md: Add simple_return and conditional simple_return.
1317 * config/arm/iterators.md: Add iterator for return and simple_return.
1318 * gcc.dg/shrink-wrap-alloca.c: New added.
1319 * gcc.dg/shrink-wrap-pretend.c: New added.
1320 * gcc.dg/shrink-wrap-sibcall.c: New added.
1322 2013-07-03 Christophe Lyon <christophe.lyon@linaro.org>
1324 Backport from trunk r199640, 199705, 199733, 199734, 199739.
1325 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1327 * rtl.def: Add extra fourth optional field to define_cond_exec.
1328 * gensupport.c (process_one_cond_exec): Process attributes from
1330 * doc/md.texi: Document fourth field in define_cond_exec.
1332 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1334 * config/arm/arm.md (enabled_for_depr_it): New attribute.
1335 (predicable_short_it): Likewise.
1336 (predicated): Likewise.
1337 (enabled): Handle above.
1338 (define_cond_exec): Set predicated attribute to yes.
1340 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1342 * config/arm/sync.md (atomic_loaddi_1):
1343 Disable predication for arm_restrict_it.
1344 (arm_load_exclusive<mode>): Likewise.
1345 (arm_load_exclusivesi): Likewise.
1346 (arm_load_exclusivedi): Likewise.
1347 (arm_load_acquire_exclusive<mode>): Likewise.
1348 (arm_load_acquire_exclusivesi): Likewise.
1349 (arm_load_acquire_exclusivedi): Likewise.
1350 (arm_store_exclusive<mode>): Likewise.
1351 (arm_store_exclusive<mode>): Likewise.
1352 (arm_store_release_exclusivedi): Likewise.
1353 (arm_store_release_exclusive<mode>): Likewise.
1355 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1357 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
1359 * config/arm/ldmstm.md: Regenerate.
1361 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1363 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
1364 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
1365 arm_usatsihi): Adjust alternatives for arm_restrict_it.
1367 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
1369 Backport from trunk 200096
1371 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
1373 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
1375 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
1376 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
1377 (aarch64_<su>mlsl<mode>): Likewise.
1379 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
1381 Backport from trunk 200062
1383 2013-06-13 Bin Cheng <bin.cheng@arm.com>
1384 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
1385 CONVERT_EXPR as equal nodes.
1387 2013-07-02 Rob Savoye <rob.savoye@linaro.org>
1388 Backport from trunk 199810
1390 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1392 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
1393 Clean up alternatives.
1395 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
1397 Backport from trunk 200152
1398 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
1400 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
1401 alternative and update.
1402 (aarch64_dup_lanedi): Delete.
1403 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
1404 * config/aarch64/aarch64-simd-builtins.def: Update.
1406 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
1408 Backport from trunk 200061
1409 2013-06-13 Bin Cheng <bin.cheng@arm.com>
1411 * rtlanal.c (noop_move_p): Check the code to be executed for
1414 2013-06-20 Rob Savoye <rob.savoye@linaro.org>
1416 Backport from trunk 199694
1417 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1419 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
1420 (arm_option_override): Override arm_restrict_it where appropriate.
1421 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
1422 * config/arm/arm.opt (mrestrict-it): New command-line option.
1423 * doc/invoke.texi: Document -mrestrict-it.
1425 2013-06-20 Christophe Lyon <christophe.lyon@linaro.org>
1427 Backport from trunk r198683.
1428 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
1430 * config/arm/arm.c (arm_asan_shadow_offset): New function.
1431 (TARGET_ASAN_SHADOW_OFFSET): Define.
1432 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
1433 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
1435 2013-06-11 Rob Savoye <rob.savoye@linaro.org>
1437 GCC Linaro gcc-linaro-4.8-2013.06 released.
1439 2013-06-06 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1441 Backport from mainline (r199438, r199439)
1442 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1444 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1445 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1446 (arm_emit_vfp_multi_reg_pop): Likewise.
1447 (thumb2_emit_ldrd_pop): Likewise.
1448 (arm_expand_epilogue): Add misc REG_CFA notes.
1449 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1451 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
1452 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1454 * config/arm/arm-protos.h: Add and update function protos.
1455 * config/arm/arm.c (use_simple_return_p): New added.
1456 (thumb2_expand_return): Check simple_return flag.
1457 * config/arm/arm.md: Add simple_return and conditional simple_return.
1458 * config/arm/iterators.md: Add iterator for return and simple_return.
1459 * gcc.dg/shrink-wrap-alloca.c: New added.
1460 * gcc.dg/shrink-wrap-pretend.c: New added.
1461 * gcc.dg/shrink-wrap-sibcall.c: New added.
1463 2013-06-06 Kugan Vivekanandarajah <kuganv@linaro.org>
1465 Backport from mainline r198879:
1467 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
1469 * config/arm/arm.h (EPILOGUE_USES): Only return true
1470 for LR_REGNUM after epilogue_completed.
1472 2013-06-05 Christophe Lyon <christophe.lyon@linaro.org>
1474 Backport from trunk r199652,199653,199656,199657,199658.
1476 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1478 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
1479 into function to generate MOVI instruction.
1480 * config/aarch64/aarch64.c (aarch64_simd_container_mode):
1482 (aarch64_preferred_simd_mode): Turn into wrapper.
1483 (aarch64_output_scalar_simd_mov_immediate): New function.
1484 * config/aarch64/aarch64-protos.h: Add prototype for above.
1486 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1488 * config/aarch64/aarch64.c (simd_immediate_info): Remove
1489 element_char member.
1490 (sizetochar): Return signed char.
1491 (aarch64_simd_valid_immediate): Remove elchar and other
1492 unnecessary variables.
1493 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
1494 Calculate element_char as required.
1495 * config/aarch64/aarch64-protos.h: Update and move prototype
1496 for aarch64_output_simd_mov_immediate.
1497 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
1500 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1502 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
1503 information completed by aarch64_simd_valid_immediate.
1504 (aarch64_legitimate_constant_p): Update arguments.
1505 (aarch64_simd_valid_immediate): Work with struct rather than many
1507 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
1508 (aarch64_simd_make_constant): Update arguments.
1509 (aarch64_output_simd_mov_immediate): Work with struct rather than
1510 many pointers. Output immediate directly rather than as operand.
1511 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1513 * config/aarch64/constraints.md (Dn): Update arguments.
1515 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1517 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
1519 (aarch64_simd_immediate_valid_for_move): Remove.
1520 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
1521 (aarch64_simd_make_constant): Update call.
1522 (aarch64_output_simd_mov_immediate): Update call.
1523 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1525 * config/aarch64/constraints.md (Dn): Update call.
1527 2013-06-04 Ian Bolton <ian.bolton@arm.com>
1529 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
1530 return type to bool for prototype.
1531 (aarch64_legitimate_constant_p): Check for true instead of not -1.
1532 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
1533 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
1535 2013-06-04 Christophe Lyon <christophe.lyon@linaro.org>
1537 Backport from trunk r199261.
1538 2013-05-23 Christian Bruel <christian.bruel@st.com>
1541 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
1543 2013-06-03 Christophe Lyon <christophe.lyon@linaro.org>
1546 r198890,199254,199259,199260,199293,199407,199408,199454,199544,199545.
1548 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1550 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1551 Remove un-necessary braces.
1553 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
1555 * config/aarch64/aarch64.c (aarch64_classify_symbol):
1556 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1558 2013-05-30 Ian Bolton <ian.bolton@arm.com>
1560 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1561 (*insv_reg<mode>): New define_insn.
1563 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1564 Marcus Shawcroft <marcus.shawcroft@arm.com>
1566 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
1567 SYMBOL_TINY_ABSOLUTE.
1568 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
1569 SYMBOL_TINY_ABSOLUTE.
1570 (aarch64_expand_mov_immediate): Likewise.
1571 (aarch64_classify_symbol): Likewise.
1572 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
1573 Permit SYMBOL_TINY_ABSOLUTE.
1574 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
1576 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1577 Marcus Shawcroft <marcus.shawcroft@arm.com>
1579 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
1580 Refactor if/switch. Replace gcc_assert with if.
1582 2013-05-24 Ian Bolton <ian.bolton@arm.com>
1584 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
1585 X format specifier to only display bottom 16 bits.
1586 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
1587 immediate to match for operand 2, since it will be masked.
1589 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1590 Marcus Shawcroft <marcus.shawcroft@arm.com>
1592 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
1593 * config/aarch64/constraints.md (Usa): Remove.
1594 * doc/md.texi (AArch64 Usa): Remove.
1596 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1597 Marcus Shawcroft <marcus.shawcroft@arm.com>
1599 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
1600 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
1601 * config/aarch64/predicates.md (aarch64_const_address): Remove.
1602 (aarch64_mov_operand): Use aarch64_mov_operand_p.
1604 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
1606 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
1607 instruction (AdvSIMD).
1608 * config/aarch64/aarch64-builtins.c
1609 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
1610 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
1612 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
1614 * config/aarch64/aarch64-simd.md
1615 (aarch64_vcond_internal<mode>): Rename to...
1616 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
1617 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
1618 float modes. Clarify all iterator modes.
1619 (vcond<mode><mode>): Use new name for vcond expanders.
1620 (vcond<v_cmp_result><mode>): Likewise.
1621 (vcondu<mode><mode>: Likewise.
1622 * config/aarch64/iterators.md (VDQF_COND): New.
1624 2013-05-29 Christophe Lyon <christophe.lyon@linaro.org>
1626 Backport from trunk r198928,198973,199203.
1627 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1631 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1632 (any_sibcall_could_use_r3): this and handle indirect calls.
1633 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1635 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1638 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1641 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1644 * config/arm/predicates.md (call_insn_operand): New predicate.
1645 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
1646 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1647 if insn is not a tail call.
1648 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1650 * config/arm/arm.h (enum reg_class): New caller save register class.
1651 (REG_CLASS_NAMES): Likewise.
1652 (REG_CLASS_CONTENTS): Likewise.
1653 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1656 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
1658 Backport from trunk r198680.
1659 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
1661 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
1662 (aarch64_simd_mov<mode>): New expander.
1663 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
1664 (aarch64_simd_mov_to_<mode>high): Likewise.
1665 (aarch64_simd_mov_from_<mode>low): Likewise.
1666 (aarch64_simd_mov_from_<mode>high): Likewise.
1667 (aarch64_dup_lane<mode>): Update.
1668 (aarch64_dup_lanedi): New instruction pattern.
1669 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
1670 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
1672 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
1674 Backport from trunk r198497-198500.
1675 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1677 * config/aarch64/aarch64-builtins.c
1678 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
1679 * config/aarch64/aarch64-simd-builtins.def
1680 (reduc_splus_): Add new modes.
1681 (reduc_uplus_): New.
1682 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
1683 (reduc_uplus_v4sf): Likewise.
1684 (reduc_splus_v4sf): Likewise.
1685 (aarch64_addv<mode>): Likewise.
1686 (reduc_uplus_<mode>): Likewise.
1687 (reduc_splus_<mode>): Likewise.
1688 (aarch64_addvv2di): Likewise.
1689 (reduc_uplus_v2di): Likewise.
1690 (reduc_splus_v2di): Likewise.
1691 (aarch64_addvv2si): Likewise.
1692 (reduc_uplus_v2si): Likewise.
1693 (reduc_splus_v2si): Likewise.
1694 (reduc_<sur>plus_<mode>): New.
1695 (reduc_<sur>plus_v2di): Likewise.
1696 (reduc_<sur>plus_v2si): Likewise.
1697 (reduc_<sur>plus_v4sf): Likewise.
1698 (aarch64_addpv4sf): Likewise.
1699 * config/aarch64/arm_neon.h
1700 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
1701 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
1702 add UNSPEC_SADDV, UNSPEC_UADDV.
1704 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
1706 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1708 * config/aarch64/arm_neon.h
1709 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
1711 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1713 * config/aarch64/aarch64-builtins
1714 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
1716 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1718 * config/aarch64/aarch64-simd-builtins.def
1720 (reduc_smin_): Likewise.
1721 (reduc_umax_): Likewise.
1722 (reduc_umin_): Likewise.
1723 (reduc_smax_nan_): Likewise.
1724 (reduc_smin_nan_): Likewise.
1727 (smax): Update for V2SF, V4SF and V2DF modes.
1730 (smin_nan): Likewise.
1731 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
1732 (<su><maxmin><mode>3): ...This, refactor.
1733 (s<maxmin><mode>3): New.
1734 (<maxmin_uns><mode>3): Likewise.
1735 (reduc_<maxmin_uns>_<mode>): Refactor.
1736 (reduc_<maxmin_uns>_v4sf): Likewise.
1737 (reduc_<maxmin_uns>_v2si): Likewise.
1738 (aarch64_<fmaxmin><mode>: Remove.
1739 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
1741 (vmin<q>_f<32,64>): Likewise.
1742 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1744 (su): Add mappings for smax, smin, umax, umin.
1746 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1747 (FMAXMIN): Rename as...
1748 (FMAXMIN_UNS): ...This.
1750 (fmaxminv): Likewise.
1751 (fmaxmin): Likewise.
1753 (maxmin_uns_op): Likewise.
1755 2013-05-28 Christophe Lyon <christophe.lyon@linaro.org>
1757 Backport from trunk r199241.
1758 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
1760 * config/aarch64/aarch64-simd.md
1761 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
1763 2013-05-23 Christophe Lyon <christophe.lyon@linaro.org>
1765 Backport from trunk r198970.
1766 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
1768 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
1769 * config/arm/arm.c (next_consecutive_mem): New function.
1770 (gen_movmem_ldrd_strd): Likewise.
1771 * config/arm/arm.md (movmemqi): Update condition and code.
1772 (unaligned_loaddi, unaligned_storedi): New patterns.
1774 2013-05-19 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1776 * LINARO-VERSION: Bump version number.
1778 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1780 GCC Linaro 4.8-2013.05 released.
1782 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1784 Backport from trunk r198677.
1785 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1787 * config/aarch64/aarch64.md
1788 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
1789 shift value between 0-4.
1791 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1793 Backport from trunk r198574-198575.
1794 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
1796 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
1798 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
1800 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
1801 scalar form of FABD instruction.
1803 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1805 Backport from trunk r198490-198496
1806 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1808 * config/aarch64/arm_neon.h
1809 (vac<ge, gt><sd>_f<32, 64>): Rename to...
1810 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
1811 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
1813 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1815 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
1816 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
1818 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1820 * config/aarch64/aarch64-simd.md
1821 (vcond<mode>_internal): Handle special cases for constant masks.
1822 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
1823 (vcondu<mode><mode>): Likewise.
1824 (vcond<v_cmp_result><mode>): New.
1826 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1828 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
1829 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
1830 * config/aarch64/aarch64-simd-builtins.def
1831 (cmeq): Update to BUILTIN_VALLDI.
1836 * config/aarch64/arm_neon.h
1837 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
1838 to builtins or C as appropriate.
1840 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
1842 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
1844 (cmhi): Rename to...
1846 * config/aarch64/aarch64-simd.md
1847 (simd_mode): Add SF.
1848 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
1849 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
1850 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
1851 (cstore<mode>_neg): ...This.
1852 * config/aarch64/iterators.md
1854 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
1856 (UCOMPARISONS): Likewise.
1857 (optab): Add missing comparisons.
1865 (V_cmp_result): Add DF, SF modes.
1866 (v_cmp_result): Likewise.
1869 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
1871 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1873 Backport from trunk r198191.
1874 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
1876 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
1878 2013-05-14 Matthew Gretton-Dann <matthew.gretton-dann@lianro.org>
1880 Backport from trunk r197838.
1881 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1883 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
1885 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
1888 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1890 Backport from trunk r198019.
1891 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1893 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
1894 (*subs_mul_imm_<mode>): New pattern.
1896 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1898 Backport from trunk r198424-198425.
1899 2013-04-29 Ian Bolton <ian.bolton@arm.com>
1901 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
1903 (movdi_aarch64): Support LDR/STR from/to D register.
1905 2013-04-29 Ian Bolton <ian.bolton@arm.com>
1907 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
1908 or higher by default.
1910 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1912 Backport from trunk r198412.
1913 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1915 * config/arm/arm.md (store_minmaxsi): Use only when
1916 optimize_insn_for_size_p.
1918 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
1920 Backport from trunk 198394,198396-198400,198402-198404.
1921 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1923 * config/aarch64/arm_neon.h
1924 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
1925 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
1926 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
1927 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
1928 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
1929 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
1930 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
1931 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
1933 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1935 * config/aarch64/aarch64-simd.md
1936 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
1937 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
1938 fix_trunc, fixuns_trunc.
1939 (ftrunc<VDQF:mode>2): New.
1940 * config/aarch64/iterators.md (optab): Add fix, fixuns.
1941 (fix_trunc_optab): New.
1943 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1945 * config/aarch64/aarch64-builtins.c
1946 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
1947 iceilf, lround, iroundf.
1949 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1951 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
1952 (float_truncate_hi_): Likewise.
1953 (float_extend_lo_): Likewise.
1954 (float_truncate_lo_): Likewise.
1955 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
1956 (aarch64_float_extend_lo_v2df): Likewise.
1957 (vec_unpacks_hi_v4sf): Likewise.
1958 (aarch64_float_truncate_lo_v2sf): Likewise.
1959 (aarch64_float_truncate_hi_v4sf): Likewise.
1960 (vec_pack_trunc_v2df): Likewise.
1961 (vec_pack_trunc_df): Likewise.
1963 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1965 * config/aarch64/aarch64-builtins.c
1966 (aarch64_fold_builtin): Fold float conversions.
1967 * config/aarch64/aarch64-simd-builtins.def
1968 (floatv2si, floatv4si, floatv2di): New.
1969 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
1970 * config/aarch64/aarch64-simd.md
1971 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
1972 * config/aarch64/iterators.md (FLOATUORS): New.
1973 (optab): Add float, floatuns.
1974 (su_optab): Likewise.
1976 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
1978 * config/aarch64/aarch64-builtins.c
1979 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
1980 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
1981 (frintz): Rename to...
1983 (frintp): Rename to...
1985 (frintm): Rename to...
1987 (frinti): Rename to...
1988 (nearbyint): ...this.
1989 (frintx): Rename to...
1991 (frinta): Rename to...
1993 * config/aarch64/aarch64-simd.md
1994 (aarch64_frint<frint_suffix><mode>): Delete.
1995 (<frint_pattern><mode>2): Convert to insn.
1996 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
1997 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
1998 (frint_pattern): Likewise.
1999 (frint_suffix): Likewise.
2001 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2003 Backport from trunk r198302-198306,198316.
2004 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
2006 * config/aarch64/aarch64-simd.md
2007 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
2008 (aarch64_simd_bsl<mode>): Likewise.
2009 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
2011 2013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
2013 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
2015 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
2017 * config/aarch64/aarch64-builtins.c
2018 (aarch64_fold_builtin): New.
2019 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
2020 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
2021 * config/aarch64/aarch64-simd-builtins.def (abs): New.
2022 * config/aarch64/arm_neon.h
2023 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
2025 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
2026 Tejas Belagod <tejas.belagod@arm.com>
2028 * config/aarch64/aarch64-builtins.c
2029 (aarch64_gimple_fold_builtin): New.
2030 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
2031 * config/aarch64/aarch64-simd-builtins.def (addv): New.
2032 * config/aarch64/aarch64-simd.md (addpv4sf): New.
2034 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
2036 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2038 * config/aarch64/aarch64.md
2039 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
2041 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2043 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
2044 (*ngcsi_uxtw): New pattern.
2046 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2048 Backport from trunk 198298.
2049 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2050 Julian Brown <julian@codesourcery.com>
2052 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
2053 (TB_DREG): Add T_V4HF.
2054 (v4hf_UP): New macro.
2055 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
2056 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
2058 Handle initialisation of V4HF. Adjust initialisation of reinterpret
2060 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
2062 (arm_vector_mode_supported_p): Handle V4HF.
2063 (arm_mangle_map): Handle V4HFmode.
2064 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
2065 * config/arm/arm_neon_builtins.def: Add entries for
2066 vcvtv4hfv4sf, vcvtv4sfv4hf.
2067 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
2068 (neon_vcvtv4hfv4sf): Likewise.
2069 * config/arm/neon-gen.ml: Handle half-precision floating point
2071 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
2072 * config/arm/arm_neon.h: Regenerate.
2073 * config/arm/neon.ml (type elts): Add F16.
2074 (type vectype): Add T_float16x4, T_floatHF.
2075 (type vecmode): Add V4HF.
2076 (type features): Add Requires_FP_bit feature.
2077 (elt_width): Handle F16.
2078 (elt_class): Likewise.
2079 (elt_of_class_width): Likewise.
2080 (mode_of_elt): Refactor.
2081 (type_for_elt): Handle F16, fix error messages.
2082 (vectype_size): Handle T_float16x4.
2083 (vcvt_sh): New function.
2084 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
2085 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
2086 (string_of_mode): Handle V4HF.
2087 * doc/arm-neon-intrinsics.texi: Regenerate.
2089 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2091 Backport from trunk r198136-198137,198142,198176.
2092 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
2094 * coretypes.h (gimple_stmt_iterator): Add struct to make
2097 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
2099 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
2100 (gimple_stmt_iterator): New typedef.
2101 * gimple.h (gimple_stmt_iterator): Rename to...
2102 (gimple_stmt_iterator_d): ... This.
2103 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
2104 trees be valid for GIMPLE and GENERIC.
2105 (TARGET_GIMPLE_FOLD_BUILTIN): New.
2106 * gimple-fold.c (gimple_fold_call): Call target hook
2107 gimple_fold_builtin.
2108 * hooks.c (hook_bool_gsiptr_false): New.
2109 * hooks.h (hook_bool_gsiptr_false): New.
2110 * target.def (fold_stmt): New.
2111 * doc/tm.texi: Regenerate.
2113 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
2115 * config/aarch64/aarch64-builtins.c
2117 (CF0, CF1, CF2, CF3, CF4, CF10): New.
2118 (VAR<1-12>): Add MAP parameter.
2119 (BUILTIN_*): Likewise.
2120 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
2121 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
2122 (aarch64_ushl_n<mode>): Likewise.
2123 (aarch64_sshr_n<mode>): Likewise.
2124 (aarch64_ushr_n<mode>): Likewise.
2125 (aarch64_<maxmin><mode>): Likewise.
2126 (aarch64_sqrt<mode>): Likewise.
2127 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
2128 (vshr<q>_n_*): Likewise.
2130 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
2132 * config/aarch64/aarch64-builtins.c
2133 (aarch64_simd_builtin_type_mode): Handle SF types.
2135 (BUILTIN_GPF): Define.
2136 (aarch64_init_simd_builtins): Handle SF types.
2137 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
2140 * config/aarch64/aarch64-simd.md
2141 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
2142 (aarch64_frecpe<mode>): New.
2143 (aarch64_frecps<mode>): Likewise.
2144 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
2145 (v8type): Add frecp<esx>.
2146 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
2147 (aarch64_frecps<mode>): Likewise.
2148 * config/aarch64/iterators.md (FRECP): New.
2149 (frecp_suffix): Likewise.
2150 * config/aarch64/arm_neon.h
2151 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
2153 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2155 Backport from trunk r198030.
2156 2013-04-17 Greta Yorsh <Greta.Yorsh at arm.com>
2158 * config/arm/arm.md (movsicc_insn): Convert define_insn into
2159 define_insn_and_split.
2160 (and_scc,ior_scc,negscc): Likewise.
2161 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
2163 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2165 Backport from trunk r198020.
2166 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2168 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
2170 (*subs_<optab><mode>_multp2): New pattern.
2171 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2172 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2174 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2176 Backport from trunk r198004,198029.
2177 2013-04-17 Greta Yorsh <Greta.Yorsh at arm.com>
2179 * config/arm/arm.c (use_return_insn): Return 0 for targets that
2180 can benefit from using a sequence of LDRD instructions in epilogue
2181 instead of a single LDM instruction.
2183 2013-04-16 Greta Yorsh <Greta.Yorsh at arm.com>
2185 * config/arm/arm.c (emit_multi_reg_push): New declaration
2186 for an existing function.
2187 (arm_emit_strd_push): New function.
2188 (arm_expand_prologue): Used here.
2189 (arm_emit_ldrd_pop): New function.
2190 (arm_expand_epilogue): Used here.
2191 (arm_get_frame_offsets): Update condition.
2192 (arm_emit_multi_reg_pop): Add a special case for load of a single
2193 register with writeback.
2195 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2197 Backport from trunk r197965.
2198 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2200 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
2201 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
2202 * config/arm/constraints.md (De): New constraint.
2203 * config/arm/neon.md (anddi3_neon): Delete.
2204 (neon_vand<mode>): Expand to standard anddi3 pattern.
2205 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
2206 Move earlier in the file.
2207 (neon_inv_logic_op2): Likewise.
2208 (arm_anddi_operand_neon): New predicate.
2210 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2212 Backport from trunk r197925.
2213 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
2215 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
2216 define_insn into define_insn_and_split and emit movsicc patterns.
2218 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2220 Backport from trunk r197807.
2221 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2223 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
2225 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2227 Backport from trunk r197642.
2228 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2230 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
2232 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2234 Backport from trunk r197530,197921.
2235 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
2237 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
2239 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2241 * config/arm/constraints.md (q): New constraint.
2242 * config/arm/ldrdstrd.md: New file.
2243 * config/arm/arm.md (ldrdstrd.md) New include.
2244 (arm_movdi): Use "q" instead of "r" constraint
2245 for double-word memory access.
2246 (movdf_soft_insn): Likewise.
2247 * config/arm/vfp.md (movdi_vfp): Likewise.
2248 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
2249 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
2250 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
2251 (mem_ok_for_ldrd_strd): Likewise.
2252 (output_move_double): Update assertion.
2254 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2256 Backport of trunk r197518-197522,197526-197528.
2257 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2259 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
2260 define_insn_and_split.
2261 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
2263 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2265 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
2266 define_insn_and_split.
2267 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2268 (shiftsi3_compare): New pattern.
2270 * config/arm/unspecs.md (UNSPEC_RRX): New.
2272 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2274 * config/arm/arm.md (negdi_extendsidi): New pattern.
2275 (negdi_zero_extendsidi): Likewise.
2277 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2279 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
2280 define_insn_and_split.
2281 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
2282 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
2284 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2286 * config/arm/arm.md (arm_subdi3): Convert define_insn into
2287 define_insn_and_split.
2288 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
2289 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
2291 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2293 * config/arm/arm.md (subsi3_carryin): New pattern.
2294 (subsi3_carryin_const): Likewise.
2295 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
2296 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
2298 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2300 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
2302 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2304 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
2305 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
2307 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2309 Backport of trunk r197517.
2310 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2312 * config/arm/arm.c (arm_expand_builtin): Change fcode
2313 type to unsigned int.
2315 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2317 Backport of trunk r197513.
2318 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2320 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
2322 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2324 Backport of trunk r197489-197491.
2325 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2327 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
2328 New function prototype.
2329 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
2330 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
2331 (arm_builtin_vectorized_function): New function.
2333 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2335 * config/arm/arm_neon_builtins.def: New file.
2336 * config/arm/arm.c (neon_builtin_data): Move contents to
2337 arm_neon_builtins.def.
2338 (enum arm_builtins): Include neon builtin definitions.
2339 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
2340 * config/arm/t-arm (arm.o): Add dependency on
2341 arm_neon_builtins.def.
2343 2013-05-02 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2345 Backport of trunk 196795-196797,196957
2346 2013-03-19 Ian Bolton <ian.bolton@arm.com>
2348 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
2349 (*subsi3_carryin_uxtw): Likewise.
2351 2013-03-19 Ian Bolton <ian.bolton@arm.com>
2353 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
2354 (*rorsi3_insn_uxtw): Likewise.
2356 2013-03-19 Ian Bolton <ian.bolton@arm.com>
2358 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
2359 (*extrsi5_insn_uxtw): Likewise.
2361 2013-04-10 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2363 * LINARO-VERSION: Bump version number.
2365 2013-04-09 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2367 * GCC Linaro 4.8-2013.04 released.
2369 * LINARO-VERSION: New file.
2370 * configure.ac: Add Linaro version string.
2371 * configure: Regenerate.
2373 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2375 Backport of trunk r197346.
2376 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
2377 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2379 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
2380 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
2381 * config/arm/cortex-a53.md: New file.
2382 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
2383 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
2384 * config/arm/arm.c (arm_issue_rate): Likewise.
2385 * config/arm/arm-tune.md: Regenerate
2386 * config/arm/arm-tables.opt: Regenerate.
2387 * config/arm/arm-cores.def: Add cortex-a53.
2389 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2391 Backport of trunk r197342.
2392 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
2394 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
2395 scalar load/store operations using B/H registers.
2396 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
2398 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2400 Backport of trunk r197341.
2401 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
2403 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
2405 * config/aarch64/aarch64.c
2406 (aarch64_simd_scalar_immediate_valid_for_move): New.
2407 * config/aarch64/aarch64-protos.h
2408 (aarch64_simd_scalar_immediate_valid_for_move): New.
2409 * config/aarch64/constraints.md (Dh, Dq): New.
2410 * config/aarch64/iterators.md (hq): New.
2412 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2414 Backport from trunk r197207.
2415 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2417 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
2418 (*andsi3_compare0_uxtw): New pattern.
2419 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
2420 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
2422 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2424 Backport from trunk r197153.
2425 2013-03-27 Terry Guo <terry.guo@arm.com>
2427 * config/arm/arm-cores.def: Added core cortex-r7.
2428 * config/arm/arm-tune.md: Regenerated.
2429 * config/arm/arm-tables.opt: Regenerated.
2430 * doc/invoke.texi: Added entry for core cortex-r7.
2432 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2434 Backport from trunk r197052.
2435 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2437 * config/arm/arm.md (f_sels, f_seld): New types.
2438 (*cmov<mode>): New pattern.
2439 * config/arm/predicates.md (arm_vsel_comparison_operator): New
2442 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2444 Backport from trunk r197046.
2445 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2447 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
2448 Emit load-acquire versions when acq is true.
2449 (arm_emit_store_exclusive): Add rel parameter.
2450 Emit store-release versions when rel is true.
2451 (arm_split_compare_and_swap): Use acquire-release instructions
2453 of barriers when appropriate.
2454 (arm_split_atomic_op): Likewise.
2455 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
2456 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
2457 (VUNSPEC_SLX): Likewise.
2458 (VUNSPEC_LDA): Likewise.
2459 (VUNSPEC_STL): Likewise.
2460 * config/arm/sync.md (atomic_load<mode>): New pattern.
2461 (atomic_store<mode>): Likewise.
2462 (arm_load_acquire_exclusive<mode>): Likewise.
2463 (arm_load_acquire_exclusivesi): Likewise.
2464 (arm_load_acquire_exclusivedi): Likewise.
2465 (arm_store_release_exclusive<mode>): Likewise.
2467 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2469 Backport from trunk r196876.
2470 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
2472 * config/arm/arm-protos.h (tune_params): Add
2473 prefer_neon_for_64bits field.
2474 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
2475 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
2476 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2477 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2478 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
2479 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2480 (arm_option_override): Handle -mneon-for-64bits new option.
2481 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
2482 (prefer_neon_for_64bits): Declare new variable.
2483 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
2484 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
2486 (arch_enabled): Handle new arch types. Remove support for onlya8
2488 (one_cmpldi2): Use new arch names.
2489 * config/arm/arm.opt (mneon-for-64bits): Add option.
2490 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
2491 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
2492 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
2494 * doc/invoke.texi (-mneon-for-64bits): Document.
2496 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2498 Backport from trunk r196858.
2499 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2501 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
2502 (abd<mode>_3): New pattern.
2503 (aba<mode>_3): New pattern.
2504 (fabd<mode>_3): New pattern.
2506 2013-04-08 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2508 Backport from trunk r196856.
2509 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2511 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
2512 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
2513 occurrence of REGISTER_PREFIX as its empty string.