]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Optimize code generation of __mm256_zextsi128_si256(__mm_set1_epi8(-1))
authorHu, Lin1 <lin1.hu@intel.com>
Tue, 13 Sep 2022 08:28:54 +0000 (16:28 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 23 Sep 2022 05:28:12 +0000 (13:28 +0800)
commita282f086ef26d90e9785e992cd09a0d118b24695
treee43e7408f14a7fb49518ab2031ef81edbbca40ad
parent8b449dcd84334068c769a2f427812dadb95e61de
i386: Optimize code generation of __mm256_zextsi128_si256(__mm_set1_epi8(-1))

gcc/ChangeLog:

PR target/94962
* config/i386/constraints.md (BH): New define_constraint.
* config/i386/i386.cc (standard_sse_constant_p): Add return
3/4 when operand matches new predicate.
(standard_sse_constant_opcode): Add new alternative branch to
return "vpcmpeqd".
* config/i386/predicates.md
(vector_all_ones_zero_extend_half_operand): New define_predicate.
(vector_all_ones_zero_extend_quarter_operand): Ditto.
* config/i386/sse.md: Add constraint to insn "mov<mode>_internal".

gcc/testsuite/ChangeLog:

PR target/94962
* gcc.target/i386/avx256-unaligned-load-1.c: Modify test.
* gcc.target/i386/avx256-unaligned-store-1.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-3.c: Ditto.
* gcc.target/i386/pr94962-1.c: New test.
* gcc.target/i386/pr94962-2.c: Ditto.
* gcc.target/i386/pr94962-3.c: Ditto.
* gcc.target/i386/pr94962-4.c: Ditto.
12 files changed:
gcc/config/i386/constraints.md
gcc/config/i386/i386.cc
gcc/config/i386/predicates.md
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx256-unaligned-load-1.c
gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c
gcc/testsuite/gcc.target/i386/avx256-unaligned-store-2.c
gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c
gcc/testsuite/gcc.target/i386/pr94962-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr94962-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr94962-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr94962-4.c [new file with mode: 0644]