diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2020-05-14 13:47:33 +0200 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2020-05-14 13:47:33 +0200 |
commit | 365e3cde4978c6a7dbfa50865720226254c016be (patch) | |
tree | 14752db76d0680b55bbda53a957b13b353e558f8 /gcc/testsuite/gcc.target | |
parent | 2c814af65ef9f146519cba657890a4fd93c5be38 (diff) | |
download | gcc-365e3cde4978c6a7dbfa50865720226254c016be.zip gcc-365e3cde4978c6a7dbfa50865720226254c016be.tar.gz gcc-365e3cde4978c6a7dbfa50865720226254c016be.tar.bz2 |
i386: Add V2DFmode conversion functions [PR95046]
gcc/ChangeLog:
PR target/95046
* config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
(floatv2siv2df2): New expander.
(floatunsv2siv2df2): New insn pattern.
(fix_truncv2dfv2si2): New expander.
(fixuns_truncv2dfv2si2): New insn pattern.
testsuite/ChangeLog:
PR target/95046
* gcc.target/i386/pr95046-6.c: New test.
Diffstat (limited to 'gcc/testsuite/gcc.target')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr95046-6.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr95046-6.c b/gcc/testsuite/gcc.target/i386/pr95046-6.c new file mode 100644 index 0000000..dcc8999 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr95046-6.c @@ -0,0 +1,44 @@ +/* PR target/95046 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O3 -mavx512vl" } */ + + +double r[2]; +int s[2]; +unsigned int u[2]; + +void +test_float (void) +{ + for (int i = 0; i < 2; i++) + r[i] = s[i]; +} + +/* { dg-final { scan-assembler "\tvcvtdq2pd" } } */ + +void +test_ufloat (void) +{ + for (int i = 0; i < 2; i++) + r[i] = u[i]; +} + +/* { dg-final { scan-assembler "\tvcvtudq2pd" } } */ + +void +test_fix (void) +{ + for (int i = 0; i < 2; i++) + s[i] = r[i]; +} + +/* { dg-final { scan-assembler "\tvcvttpd2dqx" } } */ + +void +test_ufix (void) +{ + for (int i = 0; i < 2; i++) + u[i] = r[i]; +} + +/* { dg-final { scan-assembler "\tvcvttpd2udqx" } } */ |