diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2020-05-25 16:11:18 +0200 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2020-05-25 16:11:18 +0200 |
commit | 14cd049afcb992ac334b4a2ad7be42ee78fe31eb (patch) | |
tree | 7f035729f52218faf7718c67333be9e841e5ca82 /gcc/tree.c | |
parent | a42cc1f883f7a4aabd7f29e2fb842a51a213e37d (diff) | |
download | gcc-14cd049afcb992ac334b4a2ad7be42ee78fe31eb.zip gcc-14cd049afcb992ac334b4a2ad7be42ee78fe31eb.tar.gz gcc-14cd049afcb992ac334b4a2ad7be42ee78fe31eb.tar.bz2 |
i386: Remove broadcasts from TARGET_MMX_WITH_SSE vec_dup insn patterns
XMM broadcast instructions broadcast value from general reg to all
elements of the vector. This is not allowed for TARGET_MMX_WITH_SSE,
where it is expected that bits outside lower 64bits load or retain
zero value. Following testcases expect broadcast, and are thus invalid:
FAIL: gcc.target/i386/sse2-mmx-18b.c scan-assembler-not movd
FAIL: gcc.target/i386/sse2-mmx-18b.c scan-assembler-times pbroadcastd 1
FAIL: gcc.target/i386/sse2-mmx-19b.c scan-assembler-not movd
FAIL: gcc.target/i386/sse2-mmx-19b.c scan-assembler-times pbroadcastw 1
FAIL: gcc.target/i386/sse2-mmx-19d.c scan-assembler-times pbroadcastw 1
FAIL: gcc.target/i386/sse2-mmx-19e.c scan-assembler-times pbroadcastw 1
These testcases are removed entirely.
2020-05-25 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
* config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn.
(mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute.
(*vec_dupv4hi): Redefine as define_insn.
Remove alternative with general register input.
(*vec_dupv2si): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/i386/sse2-mmx-18a.c (dg-options): Remove -mno-avx512vl.
* gcc.target/i386/sse2-mmx-19a.c (dg-options): Remove -mno-avx.
* gcc.target/i386/sse2-mmx-18b.c: Remove.
* gcc.target/i386/sse2-mmx-18c.c: Ditto.
* gcc.target/i386/sse2-mmx-19b.c: Ditto.
* gcc.target/i386/sse2-mmx-19c.c: Ditto.
* gcc.target/i386/sse2-mmx-19d.c: Ditto.
* gcc.target/i386/sse2-mmx-19e.c: Ditto.
Diffstat (limited to 'gcc/tree.c')
0 files changed, 0 insertions, 0 deletions