Commit fc2e8e42 by Kirill Yukhin Committed by Kirill Yukhin

re PR target/68633 ([i386, AVX-512] Spec2006/434.zeus miscompares when executed on KNL)

PR target/68633

gcc/
	* config/i386/sse.md (define_insn "kunpckhi"): Fix operands order.
	(define_insn "kunpcksi"): Ditto.
	(define_insn "kunpckdi"): Ditto.
gcc/testsuite
	* gcc.target/i386/pr68633.c: New test.

From-SVN: r231359
parent 1bf2ca0b
2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/68633
* config/i386/sse.md (define_insn "kunpckhi"): Fix operands order.
(define_insn "kunpcksi"): Ditto.
(define_insn "kunpckdi"): Ditto.
2015-12-06 Kaz Kojima <kkojima@gcc.gnu.org> 2015-12-06 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec. * config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec.
...@@ -8803,7 +8803,7 @@ ...@@ -8803,7 +8803,7 @@
(const_int 8)) (const_int 8))
(zero_extend:HI (match_operand:QI 2 "register_operand" "k"))))] (zero_extend:HI (match_operand:QI 2 "register_operand" "k"))))]
"TARGET_AVX512F" "TARGET_AVX512F"
"kunpckbw\t{%2, %1, %0|%0, %1, %2}" "kunpckbw\t{%1, %2, %0|%0, %2, %1}"
[(set_attr "mode" "HI") [(set_attr "mode" "HI")
(set_attr "type" "msklog") (set_attr "type" "msklog")
(set_attr "prefix" "vex")]) (set_attr "prefix" "vex")])
...@@ -8816,7 +8816,7 @@ ...@@ -8816,7 +8816,7 @@
(const_int 16)) (const_int 16))
(zero_extend:SI (match_operand:HI 2 "register_operand" "k"))))] (zero_extend:SI (match_operand:HI 2 "register_operand" "k"))))]
"TARGET_AVX512BW" "TARGET_AVX512BW"
"kunpckwd\t{%2, %1, %0|%0, %1, %2}" "kunpckwd\t{%1, %2, %0|%0, %2, %1}"
[(set_attr "mode" "SI")]) [(set_attr "mode" "SI")])
(define_insn "kunpckdi" (define_insn "kunpckdi"
...@@ -8827,7 +8827,7 @@ ...@@ -8827,7 +8827,7 @@
(const_int 32)) (const_int 32))
(zero_extend:DI (match_operand:SI 2 "register_operand" "k"))))] (zero_extend:DI (match_operand:SI 2 "register_operand" "k"))))]
"TARGET_AVX512BW" "TARGET_AVX512BW"
"kunpckdq\t{%2, %1, %0|%0, %1, %2}" "kunpckdq\t{%1, %2, %0|%0, %2, %1}"
[(set_attr "mode" "DI")]) [(set_attr "mode" "DI")])
;; See comment for addsi_1_zext why we do use nonimmediate_operand ;; See comment for addsi_1_zext why we do use nonimmediate_operand
......
2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/68633
* gcc.target/i386/pr68633.c: New test.
2015-12-06 Victoria Stepanyan <victoria.stepanyan@amd.com> 2015-12-06 Victoria Stepanyan <victoria.stepanyan@amd.com>
* gcc.target/i386/clzero.c: New. * gcc.target/i386/clzero.c: New.
......
/* { dg-do run } */
/* { dg-options "-Ofast -mavx512f" } */
/* { dg-require-effective-target avx512f } */
#include <immintrin.h>
#define AVX512F
#include "avx512f-helper.h"
void abort ();
void
TEST ()
{
__mmask16 k1, k2, k3;
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (1) );
__asm__( "kmovw %1, %0" : "=k" (k2) : "r" (2) );
k3 = _mm512_kunpackb (k1, k2);
if (k3 != 0x201)
abort ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment