diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2020-05-27 21:02:51 +0200 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2020-05-27 21:02:51 +0200 |
commit | 7d014acc1ea263df7ed44aa6cb7f75bb8e512aed (patch) | |
tree | b03400cc1e679d390ee62df005f682181cc4d28a /gcc | |
parent | c98bd673ef93836f03491201f1c63929ea429cd6 (diff) | |
download | gcc-7d014acc1ea263df7ed44aa6cb7f75bb8e512aed.zip gcc-7d014acc1ea263df7ed44aa6cb7f75bb8e512aed.tar.gz gcc-7d014acc1ea263df7ed44aa6cb7f75bb8e512aed.tar.bz2 |
i386: Remove %q modifier from two pmov insn templates [PR95355]
2020-05-27 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
PR target/95355
* config/i386/sse.md
(<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>):
Remove %q operand modifier from insn template.
(avx512f_<code>v8hiv8di2<mask_name>): Ditto.
gcc/testsuite/ChangeLog:
PR target/95355
* gcc.target/i386/pr95355.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i386/sse.md | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr95355.c | 20 |
2 files changed, 22 insertions, 2 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index fde6539..1cf1b8c 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -17559,7 +17559,7 @@ (any_extend:V16SI (match_operand:V16QI 1 "nonimmediate_operand" "vm")))] "TARGET_AVX512F" - "vpmov<extsuffix>bd\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}" + "vpmov<extsuffix>bd\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "XI")]) @@ -17935,7 +17935,7 @@ (any_extend:V8DI (match_operand:V8HI 1 "nonimmediate_operand" "vm")))] "TARGET_AVX512F" - "vpmov<extsuffix>wq\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}" + "vpmov<extsuffix>wq\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "XI")]) diff --git a/gcc/testsuite/gcc.target/i386/pr95355.c b/gcc/testsuite/gcc.target/i386/pr95355.c new file mode 100644 index 0000000..3e4faba --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr95355.c @@ -0,0 +1,20 @@ +/* PR target/95355 */ +/* { dg-do assemble { target avx512dq } } */ +/* { dg-require-effective-target int128 } */ +/* { dg-require-effective-target masm_intel } */ +/* { dg-options "-O -fno-tree-dominator-opts -fno-tree-fre -ftree-slp-vectorize -fno-tree-ter -mavx512dq -masm=intel" } */ + +typedef int __attribute__((__vector_size__(64))) U; +typedef __int128 __attribute__((__vector_size__(32))) V; + +U i; +V j; + +int +foo(unsigned char l) +{ + V m = j % 999; + U n = l <= i; + V o = ((union { U a; V b[2]; }) n).b[0] + m; + return o[0]; +} |