Hi, This patch maintains iWMMXT intrinsics code, adds WMMX pipeline description and supports iWMMXT auto-vectorization. Ran Arm testsuite on arm-linux-gnueabi.
*gcc/config/arm/elf.h: Add option -mwmmxt. *gcc/config/arm/arm.opt: Same. *gcc/config/arm/arm.c (arm_option_override): Same. (arm_coproc_mem_operand2): Add/fix iWMMXT/iWMMXT2 intrinsic. (enum arm_builtins): Same. (builtin_description bdesc_2arg): Same. (builtin_description bdesc_1arg): Same. (arm_init_iwmmxt_builtins): Same. (arm_expand_binop_builtin): Same. (arm_expand_builtin): Same. (arm_output_load_gr): Same. (arm_output_iwmmxt_shift_immediate): New function. Same. (arm_output_iwmmxt_tinsr): New function. Same. (iwmmxt_expand_vector_init): New function. Serving for iWMMXT auto-vectorization. (iwmmxt_expand_vector_mov): New function. Same. *gcc/config/arm/mmintrin.h: Add/fix iWMMXT/iWMMXT2 intrinsic. *gcc/config/arm/constraints.md: Same. *gcc/config/arm/predicates.md: Same. *gcc/config/arm/iterators.md: Same. *gcc/config/arm/iwmmxt.md: Same. *gcc/config/arm/iwmmxt2.md: New file. Same. *gcc/config/arm/arm-protos.h: Add new functions protos. *gcc/config/arm/marvell-f-iwmmxt.md: New file. Add Marvell WMMX pipeline description. *gcc/config/arm/arm.md: Fix iWMMXT/iWMMXT2 intrinsic. Add wtype for Marvell WMMX pipeline description. *gcc/config/arm/iwmmxt-autovec.md: New file. Support iWMMXT auto-vectorization. *gcc/config/arm/vec-common.md: Make iWMMXT and NEON co-exist. *gcc/config/arm/neon.md: Same.
iWMMXT_maintenance.patch.gz
Description: iWMMXT_maintenance.patch.gz