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