re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent upon...
authorKelvin Nilsen <kelvin@gcc.gnu.org>
Fri, 12 Apr 2019 12:51:58 +0000 (12:51 +0000)
committerKelvin Nilsen <kelvin@gcc.gnu.org>
Fri, 12 Apr 2019 12:51:58 +0000 (12:51 +0000)
commit34f02c07fb1a9d966fb7af5a8c28c213e84d89c5
tree76090c0d534433bf16832feef3c752ccbc4f7adf
parenta847875139b261e04e829db6e5f0bbe5420be183
re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent upon function inline)

gcc/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
mode of vector rather than mode of destination for move instruction.
* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
Use QI inner mode with V16QI vector mode.

gcc/testsuite/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* gcc.target/powerpc/fold-vec-extract-char.p8.c: Adjust expected
instruction counts.
* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.

From-SVN: r270313
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/vsx.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c
gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c
gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c