Fix PR target/70453.
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Mar 2016 15:23:29 +0000 (15:23 +0000)
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 Mar 2016 15:23:29 +0000 (15:23 +0000)
gcc/
* config/i386/sse.md (define_mode_attr shuffletype): Fix typo.

gcc/testsuite/
* gcc.target/i386/pr70453.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234634 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr70453.c [new file with mode: 0644]

index 64c8fcd..5a9b321 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
+
+       PR target/70453
+       * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
+
 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/70460
index 44141ea..5fd650f 100644 (file)
   [(V16SF "f") (V16SI "i") (V8DF "f") (V8DI "i")
   (V8SF "f") (V8SI "i") (V4DF "f") (V4DI "i")
   (V4SF "f") (V4SI "i") (V2DF "f") (V2DI "i")
-  (V32QI "i") (V16HI "u") (V16QI "i") (V8HI "i")
+  (V32QI "i") (V16HI "i") (V16QI "i") (V8HI "i")
   (V64QI "i") (V1TI "i") (V2TI "i")])
 
 (define_mode_attr ssequartermode
index 49c2509..4cab394 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
+
+       PR target/70453
+       * gcc.target/i386/pr70453.c: New test.
+
 2016-03-31  Andrey Belevantsev  <abel@ispras.ru>
 
        PR target/70292
diff --git a/gcc/testsuite/gcc.target/i386/pr70453.c b/gcc/testsuite/gcc.target/i386/pr70453.c
new file mode 100644 (file)
index 0000000..2ff1fbb
--- /dev/null
@@ -0,0 +1,18 @@
+/* PR target/70453 */
+/* { dg-do assemble { target { lp64 } } } */
+/* { dg-require-effective-target avx512vbmi } */
+/* { dg-options "-Og -fschedule-insns -mavx512vbmi" } */
+
+
+typedef char v64u8 __attribute__ ((vector_size (64)));
+typedef short v64u16 __attribute__ ((vector_size (64)));
+typedef __int128 v64u128 __attribute__ ((vector_size (64)));
+
+int
+foo(v64u8 v64u8_0, v64u16 v64u16_0, v64u128 v64u128_0)
+{
+  v64u128_0 /= (v64u128){ v64u8_0[28] }  | 0x1424171b0c;
+  v64u8_0 %= (v64u8){ v64u16_0[25], v64u128_0[1]}  ;
+  v64u128_0 %= (v64u128){ v64u16_0[8] };
+  return v64u8_0[0] + v64u8_0[1] + v64u16_0[0] + v64u128_0[0];
+}