diff options
author | Sergey Shalnov <Sergey.Shalnov@intel.com> | 2017-12-01 06:22:06 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2017-12-01 06:22:06 +0000 |
commit | 1d1e69e934d629a1cf0cfa728cd13bd9a43b7ffe (patch) | |
tree | 9f9df5d8002f2972f96f3881361f5293efcbabc0 /gcc | |
parent | b7f47ecdde00d836765f15c0c5dbec927e8933c9 (diff) | |
download | gcc-1d1e69e934d629a1cf0cfa728cd13bd9a43b7ffe.zip gcc-1d1e69e934d629a1cf0cfa728cd13bd9a43b7ffe.tar.gz gcc-1d1e69e934d629a1cf0cfa728cd13bd9a43b7ffe.tar.bz2 |
Fix wrong instruction vpcmpeqd generation
gcc/
* config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
vpcmpeqd instruction.
From-SVN: r255291
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bfa6016..8e7e844 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> + * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for + vpcmpeqd instruction. + +2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> + * config/i386/i386.c (standard_sse_constant_opcode): Fix registers type for 128bit mode. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2f4ca7c..145b1c6 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -10449,9 +10449,11 @@ standard_sse_constant_opcode (rtx_insn *insn, rtx x) case MODE_V2DF: case MODE_V4SF: gcc_assert (TARGET_SSE2); - return (TARGET_AVX - ? "vpcmpeqd\t%0, %0, %0" - : "pcmpeqd\t%0, %0"); + return (TARGET_AVX512F + ? "vpternlogd\t{$0xFF, %0, %0, %0|%0, %0, %0, 0xFF}" + : TARGET_AVX + ? "vpcmpeqd\t%0, %0, %0" + : "pcmpeqd\t%0, %0"); default: gcc_unreachable (); |