For evex encoding vp{xor,or,and}, suffix is needed.

Or there would be an error for
vpxor %ymm0, %ymm31, %ymm1

Error: unsupported instruction `vpxor'

Bootstrapped and regtested x86_64-pc-linux-gnu{-m32,}.
Pushed to trunk.

gcc/ChangeLog:

        * config/i386/sse.md (<code>v1ti3): Add suffix and replace
        isa attr of alternative 2 from avx to avx512vl.
---
 gcc/config/i386/sse.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index b2f56345c65..3066ea3734a 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -17025,8 +17025,8 @@ (define_insn "<code>v1ti3"
   "@
    p<logic>\t{%2, %0|%0, %2}
    vp<logic>\t{%2, %1, %0|%0, %1, %2}
-   vp<logic>\t{%2, %1, %0|%0, %1, %2}"
-  [(set_attr "isa" "noavx,avx,avx")
+   vp<logic>d\t{%2, %1, %0|%0, %1, %2}"
+  [(set_attr "isa" "noavx,avx,avx512vl")
    (set_attr "prefix" "orig,vex,evex")
    (set_attr "prefix_data16" "1,*,*")
    (set_attr "type" "sselog")
-- 
2.18.1

Reply via email to