]> git.ipfire.org Git - thirdparty/gcc.git/commit
ICE: QImode(not SImode) operand should be passed to gen_vec_initv16qiqi in ashlv16qi3.
authorliuhongt <hongtao.liu@intel.com>
Wed, 9 Feb 2022 05:14:43 +0000 (13:14 +0800)
committerliuhongt <hongtao.liu@intel.com>
Wed, 9 Feb 2022 09:14:35 +0000 (17:14 +0800)
commit59b31f0e2d187ebdb3d399661e22b28e4ebd8099
tree2c5f75ed7718e3de03be1a6bb0f36afd88c2527d
parent871afdc512be0510cbd4fa0928e5a1bd0681766e
ICE: QImode(not SImode) operand should be passed to gen_vec_initv16qiqi in ashlv16qi3.

ix86_expand_vector_init expects vals to be a parallel containing
values of individual fields which should be either element mode of the
vector mode, or a vector mode with the same element mode and smaller
number of elements.

But in the expander ashlv16qi3, the second operand is SImode which
can't be directly passed to gen_vec_initv16qiqi.

gcc/ChangeLog:

PR target/104451
* config/i386/sse.md (<insn><mode>3): lowpart_subreg
operands[2] from SImode to QImode.

gcc/testsuite/ChangeLog:

PR target/104451
* gcc.target/i386/pr104451.c: New test.
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/pr104451.c [new file with mode: 0644]