aboutsummaryrefslogtreecommitdiff
path: root/gcc/coverage.c
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2021-06-11 02:43:40 -0500
committerKewen Lin <linkw@linux.ibm.com>2021-06-11 02:43:40 -0500
commit2f5ab546e2be8e42b00416b2e5860d04a881beab (patch)
tree79f25bdb5d52ac9094f39b98bf00d5ed464922cb /gcc/coverage.c
parente9d322ced1433da8e7c69243cfa941ea462d6290 (diff)
downloadgcc-2f5ab546e2be8e42b00416b2e5860d04a881beab.zip
gcc-2f5ab546e2be8e42b00416b2e5860d04a881beab.tar.gz
gcc-2f5ab546e2be8e42b00416b2e5860d04a881beab.tar.bz2
rs6000: Support more short/char to float conversion
For some cases that when we load unsigned char/short values from the appropriate unsigned char/short memories and convert them to double/single precision floating point value, there would be implicit conversions to int first. It makes GCC not leverage the P9 instructions lxsibzx/lxsihzx. This patch is to add the related define_insn_and_split to support this kind of scenario. Bootstrapped/regtested on powerpc64le-linux-gnu P9 and powerpc64-linux-gnu P8. gcc/ChangeLog: * config/rs6000/rs6000.md (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New define_insn_and_split. gcc/testsuite/ChangeLog: * gcc.target/powerpc/p9-fpcvt-3.c: New test.
Diffstat (limited to 'gcc/coverage.c')
0 files changed, 0 insertions, 0 deletions