Commit 0c0b5b65 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/85281 (Assembler messages: Error: operand size mismatch for…

re PR target/85281 (Assembler messages: Error: operand size mismatch for `vpbroadcastb' with -mavx512bw -masm=intel)

	PR target/85281
	* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
	(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
	other than V2DFmode using iptr mode attribute.
	(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.

	* gcc.target/i386/pr85281.c: New test.

From-SVN: r259316
parent b85bbe39
2018-04-11 Jakub Jelinek <jakub@redhat.com>
PR target/85281
* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
other than V2DFmode using iptr mode attribute.
(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
2018-04-11 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/84659
......
......@@ -804,6 +804,7 @@
[(V64QI "b") (V32HI "w") (V16SI "k") (V8DI "q")
(V32QI "b") (V16HI "w") (V8SI "k") (V4DI "q")
(V16QI "b") (V8HI "w") (V4SI "k") (V2DI "q")
(V16SF "k") (V8DF "q")
(V8SF "k") (V4DF "q")
(V4SF "k") (V2DF "q")
(SF "k") (DF "q")])
......@@ -17686,10 +17687,7 @@
if (<MODE>mode == V2DFmode)
return "vpbroadcastq\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}";
if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 4)
return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %k1}";
else
return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}";
return "v<sseintprefix>broadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %<iptr>1}";
}
[(set_attr "type" "ssemov")
(set_attr "prefix" "evex")
......@@ -17702,7 +17700,7 @@
(match_operand:<ssexmmmode> 1 "nonimmediate_operand" "vm")
(parallel [(const_int 0)]))))]
"TARGET_AVX512BW"
"vpbroadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
"vpbroadcast<bcstscalarsuff>\t{%1, %0<mask_operand2>|%0<mask_operand2>, %<iptr>1}"
[(set_attr "type" "ssemov")
(set_attr "prefix" "evex")
(set_attr "mode" "<sseinsnmode>")])
......
2018-04-11 Jakub Jelinek <jakub@redhat.com>
PR target/85281
* gcc.target/i386/pr85281.c: New test.
2018-04-11 Alexander Monakov <amonakov@ispras.ru>
PR rtl-optimization/84659
......
/* PR target/85281 */
/* { dg-do assemble { target avx512bw } } */
/* { dg-require-effective-target int128 } */
/* { dg-require-effective-target masm_intel } */
/* { dg-options "-O -mavx512bw -masm=intel -w" } */
typedef char V __attribute__ ((__vector_size__ (64)));
V
foo (V v)
{
v[8] /= (unsigned __int128) 0;
v[0] -= ~255;
return v;
}
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