Commit 460f31ee by Ilya Tocar Committed by Ilya Tocar

re PR target/65915 (FAIL: gcc.target/i386/avx512f-vrndscalepd-2.c (internal compiler error))

PR target/65915
* config/i386/i386.md (vector convert to float spltiter): Check for
xmm16+, when splitting scalar float conversion.
* config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.

testsuite/ChangeLog:

PR target/65915
* gcc.target/i386/pr65915.c: New.

From-SVN: r222811
parent d7edde11
2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
PR target/65915
* config/i386/i386.md (vector convert to float spltiter): Check for
xmm16+, when splitting scalar float conversion.
* config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
2015-05-05 Nick Clifton <nickc@redhat.com> 2015-05-05 Nick Clifton <nickc@redhat.com>
* config/msp430/msp430-opts.h (enum msp430_regions): New. * config/msp430/msp430-opts.h (enum msp430_regions): New.
......
...@@ -4897,7 +4897,9 @@ ...@@ -4897,7 +4897,9 @@
"TARGET_SSE2 && TARGET_SSE_MATH "TARGET_SSE2 && TARGET_SSE_MATH
&& TARGET_USE_VECTOR_CONVERTS && optimize_function_for_speed_p (cfun) && TARGET_USE_VECTOR_CONVERTS && optimize_function_for_speed_p (cfun)
&& reload_completed && SSE_REG_P (operands[0]) && reload_completed && SSE_REG_P (operands[0])
&& (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC)" && (MEM_P (operands[1]) || TARGET_INTER_UNIT_MOVES_TO_VEC)
&& (!EXT_REX_SSE_REG_P (operands[0])
|| TARGET_AVX512VL)"
[(const_int 0)] [(const_int 0)]
{ {
operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0], operands[3] = simplify_gen_subreg (<ssevecmode>mode, operands[0],
...@@ -4921,7 +4923,9 @@ ...@@ -4921,7 +4923,9 @@
"TARGET_SSE2 && TARGET_SSE_MATH "TARGET_SSE2 && TARGET_SSE_MATH
&& TARGET_SSE_PARTIAL_REG_DEPENDENCY && TARGET_SSE_PARTIAL_REG_DEPENDENCY
&& optimize_function_for_speed_p (cfun) && optimize_function_for_speed_p (cfun)
&& reload_completed && SSE_REG_P (operands[0])" && reload_completed && SSE_REG_P (operands[0])
&& (!EXT_REX_SSE_REG_P (operands[0])
|| TARGET_AVX512VL)"
[(const_int 0)] [(const_int 0)]
{ {
const machine_mode vmode = <MODEF:ssevecmode>mode; const machine_mode vmode = <MODEF:ssevecmode>mode;
......
...@@ -4258,11 +4258,11 @@ ...@@ -4258,11 +4258,11 @@
(set_attr "mode" "TI")]) (set_attr "mode" "TI")])
(define_insn "sse2_cvtsi2sd" (define_insn "sse2_cvtsi2sd"
[(set (match_operand:V2DF 0 "register_operand" "=x,x,x") [(set (match_operand:V2DF 0 "register_operand" "=x,x,v")
(vec_merge:V2DF (vec_merge:V2DF
(vec_duplicate:V2DF (vec_duplicate:V2DF
(float:DF (match_operand:SI 2 "nonimmediate_operand" "r,m,rm"))) (float:DF (match_operand:SI 2 "nonimmediate_operand" "r,m,rm")))
(match_operand:V2DF 1 "register_operand" "0,0,x") (match_operand:V2DF 1 "register_operand" "0,0,v")
(const_int 1)))] (const_int 1)))]
"TARGET_SSE2" "TARGET_SSE2"
"@ "@
...@@ -4275,7 +4275,7 @@ ...@@ -4275,7 +4275,7 @@
(set_attr "amdfam10_decode" "vector,double,*") (set_attr "amdfam10_decode" "vector,double,*")
(set_attr "bdver1_decode" "double,direct,*") (set_attr "bdver1_decode" "double,direct,*")
(set_attr "btver2_decode" "double,double,double") (set_attr "btver2_decode" "double,double,double")
(set_attr "prefix" "orig,orig,vex") (set_attr "prefix" "orig,orig,maybe_evex")
(set_attr "mode" "DF")]) (set_attr "mode" "DF")])
(define_insn "sse2_cvtsi2sdq<round_name>" (define_insn "sse2_cvtsi2sdq<round_name>"
......
2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
PR target/65915
* gcc.target/i386/pr65915.c: New.
2015-05-05 Tom de Vries <tom@codesourcery.com> 2015-05-05 Tom de Vries <tom@codesourcery.com>
* gcc.dg/tree-ssa/stdarg-2.c: Xfail f15 scans which test for presence of * gcc.dg/tree-ssa/stdarg-2.c: Xfail f15 scans which test for presence of
......
/* { dg-do run } */
/* { dg-options "-O2 -mavx512f -fpic -mcmodel=medium" } */
/* { dg-require-effective-target avx512f } */
/* { dg-require-effective-target lp64 } */
#include "avx512f-vrndscalepd-2.c"
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