Commit 5b8c1205 by Kirill Yukhin Committed by Kirill Yukhin

AVX-512. Limit constraint for scalar operand in split to AVX-512VL.

PR target/71346
gcc/
	* config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
	`Yv' for scalar operand.
testsuite/
	* gcc.target/i386/pr71346.c: New test.

From-SVN: r236909
parent 7a88cc84
2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/71346
* config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
`Yv' for scalar operand.
2016-05-31 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69068
......
......@@ -6837,7 +6837,7 @@
"operands[1] = gen_lowpart (SFmode, operands[1]);")
(define_insn_and_split "*sse4_1_extractps"
[(set (match_operand:SF 0 "nonimmediate_operand" "=rm,rm,rm,v,v")
[(set (match_operand:SF 0 "nonimmediate_operand" "=rm,rm,rm,Yv,Yv")
(vec_select:SF
(match_operand:V4SF 1 "register_operand" "Yr,*x,v,0,v")
(parallel [(match_operand:SI 2 "const_0_to_3_operand" "n,n,n,n,n")])))]
......
2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/71346
* gcc.target/i386/pr71346.c: New test.
2016-05-31 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69068
......
/* PR target/71346 */
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O2 -ftree-vectorize -ffast-math -march=knl" } */
typedef int rvec[3];
int a;
float b, c, d, g;
rvec *e, *f;
void fn2(float h, float g);
void
fn1()
{
float h;
for (; a; a++) {
h += e[a][0] * f[a][0];
b += e[a][0] * f[a][1];
c += e[a][2] * f[a][0];
d += e[a][2] * f[a][1];
g += e[a][2] * f[a][2];
}
fn2(h, g);
}
/* { dg-final { scan-assembler-not "vshufps\[ \\t\]+\[^\n\]*%\xmm(?:1\[6-9\]|\[2-3\]\[0-9\])" } } */
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