Commit 601a5d76 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/50310 (ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with…

re PR target/50310 (ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered())

	* config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
	duplicates.

	PR target/50310
	* config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
	"mode" attribute computation.

	* gcc.dg/pr50310-1.c: New test.

From-SVN: r178659
parent ca1ae7e3
2011-09-07 Jakub Jelinek <jakub@redhat.com>
* config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
duplicates.
PR target/50310
* config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
"mode" attribute computation.
2011-09-07 Bernd Schmidt <bernds@codesourcery.com> 2011-09-07 Bernd Schmidt <bernds@codesourcery.com>
* regrename.c (struct du_head): Make nregs signed. * regrename.c (struct du_head): Make nregs signed.
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
(V16QI "TI") (V8HI "TI") (V4SI "TI") (V2DI "TI") (V1TI "TI") (V16QI "TI") (V8HI "TI") (V4SI "TI") (V2DI "TI") (V1TI "TI")
(V8SF "V8SF") (V4DF "V4DF") (V8SF "V8SF") (V4DF "V4DF")
(V4SF "V4SF") (V2DF "V2DF") (V4SF "V4SF") (V2DF "V2DF")
(TI "TI") (V32QI "OI") (V16HI "OI") (V8SI "OI") (V4DI "OI")]) (TI "TI")])
;; Mapping of vector float modes to an integer mode of the same size ;; Mapping of vector float modes to an integer mode of the same size
(define_mode_attr sseintvecmode (define_mode_attr sseintvecmode
...@@ -6340,14 +6340,13 @@ ...@@ -6340,14 +6340,13 @@
(const_string "*"))) (const_string "*")))
(set_attr "prefix" "orig,vex") (set_attr "prefix" "orig,vex")
(set (attr "mode") (set (attr "mode")
(cond [(match_test "TARGET_AVX2") (cond [(and (not (match_test "TARGET_AVX2"))
(const_string "OI") (match_test "GET_MODE_SIZE (<MODE>mode) > 16"))
(match_test "GET_MODE_SIZE (<MODE>mode) > 128")
(const_string "V8SF") (const_string "V8SF")
(match_test "TARGET_SSE2") (not (match_test "TARGET_SSE2"))
(const_string "TI") (const_string "V4SF")
] ]
(const_string "V4SF")))]) (const_string "<sseinsnmode>")))])
(define_expand "<code><mode>3" (define_expand "<code><mode>3"
[(set (match_operand:VI 0 "register_operand" "") [(set (match_operand:VI 0 "register_operand" "")
...@@ -6416,14 +6415,13 @@ ...@@ -6416,14 +6415,13 @@
(const_string "*"))) (const_string "*")))
(set_attr "prefix" "orig,vex") (set_attr "prefix" "orig,vex")
(set (attr "mode") (set (attr "mode")
(cond [(match_test "TARGET_AVX2") (cond [(and (not (match_test "TARGET_AVX2"))
(const_string "OI") (match_test "GET_MODE_SIZE (<MODE>mode) > 16"))
(match_test "GET_MODE_SIZE (<MODE>mode) > 128")
(const_string "V8SF") (const_string "V8SF")
(match_test "TARGET_SSE2") (not (match_test "TARGET_SSE2"))
(const_string "TI") (const_string "V4SF")
] ]
(const_string "V4SF")))]) (const_string "<sseinsnmode>")))])
(define_insn "*andnottf3" (define_insn "*andnottf3"
[(set (match_operand:TF 0 "register_operand" "=x,x") [(set (match_operand:TF 0 "register_operand" "=x,x")
......
2011-09-07 Jakub Jelinek <jakub@redhat.com>
PR target/50310
* gcc.dg/pr50310-1.c: New test.
2011-09-07 Georg-Johann Lay <avr@gjlay.de> 2011-09-07 Georg-Johann Lay <avr@gjlay.de>
PR middle-end/48571 PR middle-end/48571
......
/* PR target/50310 */
/* { dg-do run } */
/* { dg-options "-O3" } */
/* { dg-options "-O3 -mavx -mno-avx2" { target avx_runtime } } */
double s1[4], s2[4];
long long e[4];
int
main ()
{
int i;
asm volatile ("" : : : "memory");
for (i = 0; i < 4; i++)
e[i] = __builtin_isunordered (s1[i], s2[i]) && s1[i] != s2[i] ? -1 : 0;
asm volatile ("" : : : "memory");
return 0;
}
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