[gcc] 2015-11-08 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/constraints.md (wF constraint): New constraints for power9/toc fusion. (wG constraint): Likewise. * config/rs6000/predicates.md (u6bit_cint_operand): New predicate, recognize 0..63. (upper16_cint_operand): New predicate for power9 and toc fusion. (fpr_reg_operand): Likewise. (toc_fusion_or_p9_reg_operand): Likewise. (toc_fusion_mem_raw): Likewise. (toc_fusion_mem_wrapped): Likewise. (fusion_gpr_addis): If power9 fusion, allow fusion for a larger address range. (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load instead. (fusion_addis_mem_combo_load): Add support for power9 fusion of floating point loads, floating point stores, and gpr stores. (fusion_addis_mem_combo_store): Likewise. (fusion_offsettable_mem_operand): Likewise. * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations. (emit_fusion_load_store): Likewise. (fusion_p9_p): Likewise. (expand_fusion_p9_load): Likewise. (expand_fusion_p9_store): Likewise. (emit_fusion_p9_load): Likewise. (emit_fusion_p9_store): Likewise. (fusion_wrap_memory_address): Likewise. * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new elements for power9 fusion. (rs6000_debug_print_mode): Rework debug information to print more information about fusion. (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support. (rs6000_legitimate_address_p): Recognize toc fusion as a valid offsettable memory address. (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions. (emit_fusion_gpr_load): Move most of the code from emit_fusion_gpr_load into emit_fusion-addis that handles both power8 and power9 fusion. (emit_fusion_addis): Likewise. (emit_fusion_load_store): Likewise. (fusion_wrap_memory_address): Add support for TOC fusion. (fusion_split_address): Likewise. (fusion_p9_p): Add support for power9 fusion. (expand_fusion_p9_load): Likewise. (expand_fusion_p9_store): Likewise. (emit_fusion_p9_load): Likewise. (emit_fusion_p9_store): Likewise. * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for new instructions in ISA 3.0. (TARGET_CTZ): Likewise. (TARGET_TOC_FUSION_INT): Macros for power9 fusion support. (TARGET_TOC_FUSION_FP): Likewise. * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc fusion unspecs. (UNSPEC_FUSION_ADDIS): Likewise. (QHSI mode iterator): New iterator for power9 fusion. (GPR_FUSION): Likewise. (FPR_FUSION): Likewise. (mod<mode>3): Add support for ISA 3.0 modulus instructions. (umod<mode>3): Likewise. (divmod peephole): Likewise. (udivmod peephole): Likewise. (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar instructions. (ctz<mode>2_h): Likewise. (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction. (ashdi3_extswsli_dot): Likewise. (ashdi3_extswsli_dot2): Likewise. (power9 fusion splitter): New power9/toc fusion support. (toc_fusionload_<mode>): Likewise. (toc_fusionload_di): Likewise. (fusion_gpr_load_<mode>): Update predicate function. (power9 fusion peephole2s): New power9/toc fusion support. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise. (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise. (fusion_p9_<mode>_constant): Likewise. [gcc/testsuite] 2015-11-08 Michael Meissner <meissner@linux.vnet.ibm.com> * lib/target-supports.exp (check_p8vector_hw_available): Split long line. (check_vsx_hw_available): Likewise. (check_p9vector_hw_available): Add new checks for ISA 3.0 hardware support and for PowerPC float128 support. (check_p9modulo_hw_available): Likewise. (check_ppc_float128_sw_available): Likewise. (check_ppc_float128_hw_available): Likewise. (check_effective_target_powerpc_p9vector_ok): Likewise. (check_effective_target_powerpc_p9modulo_ok): Likewise. (check_effective_target_powerpc_float128_sw_ok): Likewise. (check_effective_target_powerpc_float128_hw_ok): Likewise. (is-effective-target): Add new PowerPc targets. (is-effective-target-keyword): Likewise. (check_vect_support_and_set_flags): If we have ISA 3.0 vector instructions, use it. * gcc.target/powerpc/mod-1.c: New test for ISA 3.0 instructions. * gcc.target/powerpc/mod-2.c: Likewise. * gcc.target/powerpc/ctz-1.c: Likewise. * gcc.target/powerpc/ctz-2.c: Likewise. * gcc.target/powerpc/extswsli-1.c: Likewise. * gcc.target/powerpc/extswsli-2.c: Likewise. * gcc.target/powerpc/extswsli-3.c: Likewise. * gcc.target/powerpc/fusion.c (fusion_vector): Move to fusion2.c and allow the test on PowerPC LE. * gcc.target/powerpc/fusion2.c (fusion_vector): Likewise. * gcc.target/powerpc/fusion3.c: New file, test power9 fusion. * gcc.target/powerpc/float128-call.c: Use powerpc_float128_sw_ok check instead of powerpc_vsx_ok. * gcc.target/powerpc/float128-mix.c: Likewise. From-SVN: r230066
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
40x.md | Loading commit data... | |
440.md | Loading commit data... | |
476.h | Loading commit data... | |
476.md | Loading commit data... | |
476.opt | Loading commit data... | |
601.md | Loading commit data... | |
603.md | Loading commit data... | |
6xx.md | Loading commit data... | |
7450.md | Loading commit data... | |
750cl.h | Loading commit data... | |
7xx.md | Loading commit data... | |
8540.md | Loading commit data... | |
a2.md | Loading commit data... | |
aix-stdint.h | Loading commit data... | |
aix.h | Loading commit data... | |
aix43.h | Loading commit data... | |
aix51.h | Loading commit data... | |
aix52.h | Loading commit data... | |
aix53.h | Loading commit data... | |
aix61.h | Loading commit data... | |
aix64.opt | Loading commit data... | |
aix71.h | Loading commit data... | |
altivec.h | Loading commit data... | |
altivec.md | Loading commit data... | |
biarch64.h | Loading commit data... | |
cell.md | Loading commit data... | |
constraints.md | Loading commit data... | |
crypto.md | Loading commit data... | |
darwin.h | Loading commit data... | |
darwin.md | Loading commit data... | |
darwin.opt | Loading commit data... | |
darwin64.h | Loading commit data... | |
darwin7.h | Loading commit data... | |
darwin8.h | Loading commit data... | |
default64.h | Loading commit data... | |
dfp.md | Loading commit data... | |
driver-rs6000.c | Loading commit data... | |
e300c2c3.md | Loading commit data... | |
e500.h | Loading commit data... | |
e500mc.md | Loading commit data... | |
e500mc64.md | Loading commit data... | |
e5500.md | Loading commit data... | |
e6500.md | Loading commit data... | |
eabi.h | Loading commit data... | |
eabialtivec.h | Loading commit data... | |
eabisim.h | Loading commit data... | |
eabispe.h | Loading commit data... | |
freebsd.h | Loading commit data... | |
freebsd64.h | Loading commit data... | |
genopt.sh | Loading commit data... | |
host-darwin.c | Loading commit data... | |
host-ppc64-darwin.c | Loading commit data... | |
htm.md | Loading commit data... | |
htmintrin.h | Loading commit data... | |
htmxlintrin.h | Loading commit data... | |
linux.h | Loading commit data... | |
linux64.h | Loading commit data... | |
linux64.opt | Loading commit data... | |
linuxaltivec.h | Loading commit data... | |
linuxspe.h | Loading commit data... | |
lynx.h | Loading commit data... | |
milli.exp | Loading commit data... | |
mpc.md | Loading commit data... | |
netbsd.h | Loading commit data... | |
option-defaults.h | Loading commit data... | |
paired.h | Loading commit data... | |
paired.md | Loading commit data... | |
power4.md | Loading commit data... | |
power5.md | Loading commit data... | |
power6.md | Loading commit data... | |
power7.md | Loading commit data... | |
power8.md | Loading commit data... | |
ppc-asm.h | Loading commit data... | |
ppu_intrinsics.h | Loading commit data... | |
predicates.md | Loading commit data... | |
rs6000-builtin.def | Loading commit data... | |
rs6000-c.c | Loading commit data... | |
rs6000-cpus.def | Loading commit data... | |
rs6000-linux.c | Loading commit data... | |
rs6000-modes.def | Loading commit data... | |
rs6000-opts.h | Loading commit data... | |
rs6000-protos.h | Loading commit data... | |
rs6000-tables.opt | Loading commit data... | |
rs6000.c | Loading commit data... | |
rs6000.h | Loading commit data... | |
rs6000.md | Loading commit data... | |
rs6000.opt | Loading commit data... | |
rs64.md | Loading commit data... | |
rtems.h | Loading commit data... | |
secureplt.h | Loading commit data... | |
si2vmx.h | Loading commit data... | |
singlefp.h | Loading commit data... | |
spe.h | Loading commit data... | |
spe.md | Loading commit data... | |
spu2vmx.h | Loading commit data... | |
sync.md | Loading commit data... | |
sysv4.h | Loading commit data... | |
sysv4.opt | Loading commit data... | |
sysv4le.h | Loading commit data... | |
t-aix43 | Loading commit data... | |
t-aix52 | Loading commit data... | |
t-darwin64 | Loading commit data... | |
t-darwin8 | Loading commit data... | |
t-fprules | Loading commit data... | |
t-freebsd64 | Loading commit data... | |
t-linux | Loading commit data... | |
t-linux64 | Loading commit data... | |
t-linux64bele | Loading commit data... | |
t-linux64le | Loading commit data... | |
t-linux64lebe | Loading commit data... | |
t-lynx | Loading commit data... | |
t-netbsd | Loading commit data... | |
t-ppccomm | Loading commit data... | |
t-ppcendian | Loading commit data... | |
t-ppcgas | Loading commit data... | |
t-ppcos | Loading commit data... | |
t-rs6000 | Loading commit data... | |
t-rtems | Loading commit data... | |
t-spe | Loading commit data... | |
t-vxworks | Loading commit data... | |
t-vxworksae | Loading commit data... | |
t-vxworksmils | Loading commit data... | |
t-xilinx | Loading commit data... | |
titan.md | Loading commit data... | |
vec_types.h | Loading commit data... | |
vector.md | Loading commit data... | |
vsx.md | Loading commit data... | |
vxworks.h | Loading commit data... | |
vxworksae.h | Loading commit data... | |
vxworksmils.h | Loading commit data... | |
x-aix | Loading commit data... | |
x-darwin | Loading commit data... | |
x-darwin64 | Loading commit data... | |
x-linux-relax | Loading commit data... | |
x-rs6000 | Loading commit data... | |
xcoff.h | Loading commit data... | |
xfpu.h | Loading commit data... | |
xfpu.md | Loading commit data... | |
xilinx.h | Loading commit data... | |
xilinx.opt | Loading commit data... |