re PR target/29945 (ICE in simplify_subreg with simple code in libgfortran)
2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> PR target/29945 * config/spu/spu.md (extend_compare<mode>): New pattern. (extend_compare): Change to expand and use the above pattern. 2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com> PR target/29945 * gcc.c-torture/compile/pr29945.c: New testcase. From-SVN: r119348
This commit is contained in:
parent
b472dffcc3
commit
357f76d7f0
4 changed files with 29 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||||
|
|
||||||
|
PR target/29945
|
||||||
|
* config/spu/spu.md (extend_compare<mode>): New pattern.
|
||||||
|
(extend_compare): Change to expand and use the above pattern.
|
||||||
|
|
||||||
2006-11-29 Janis Johnson <janis187@us.ibm.com>
|
2006-11-29 Janis Johnson <janis187@us.ibm.com>
|
||||||
|
|
||||||
* config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
|
* config/dfp-bit.c (DFP_TO_INT): Fix rounding mode.
|
||||||
|
|
|
@ -2708,9 +2708,18 @@ selb\t%0,%4,%0,%3"
|
||||||
|
|
||||||
;; This pattern is used when the result of a compare is not large
|
;; This pattern is used when the result of a compare is not large
|
||||||
;; enough to use in a selb when expanding conditional moves.
|
;; enough to use in a selb when expanding conditional moves.
|
||||||
(define_insn "extend_compare"
|
(define_expand "extend_compare"
|
||||||
[(set (match_operand 0 "spu_reg_operand" "=r")
|
[(set (match_operand 0 "spu_reg_operand" "=r")
|
||||||
(unspec [(match_operand 1 "spu_reg_operand" "r")] UNSPEC_EXTEND_CMP))]
|
(unspec [(match_operand 1 "spu_reg_operand" "r")] UNSPEC_EXTEND_CMP))]
|
||||||
|
""
|
||||||
|
{
|
||||||
|
emit_insn (gen_rtx_SET (VOIDmode, operands[0], gen_rtx_UNSPEC (GET_MODE (operands[0]),
|
||||||
|
gen_rtvec (1, operands[1]), UNSPEC_EXTEND_CMP)));
|
||||||
|
DONE;
|
||||||
|
})
|
||||||
|
(define_insn "extend_compare<mode>"
|
||||||
|
[(set (match_operand:ALL 0 "spu_reg_operand" "=r")
|
||||||
|
(unspec:ALL [(match_operand 1 "spu_reg_operand" "r")] UNSPEC_EXTEND_CMP))]
|
||||||
"operands"
|
"operands"
|
||||||
"fsm\t%0,%1"
|
"fsm\t%0,%1"
|
||||||
[(set_attr "type" "shuf")])
|
[(set_attr "type" "shuf")])
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2006-11-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||||
|
|
||||||
|
PR target/29945
|
||||||
|
* gcc.c-torture/compile/pr29945.c: New testcase.
|
||||||
|
|
||||||
2006-11-30 Joseph Myers <joseph@codesourcery.com>
|
2006-11-30 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* gcc.dg/vect/vect.exp: Skip PowerPC targets not supporting
|
* gcc.dg/vect/vect.exp: Skip PowerPC targets not supporting
|
||||||
|
|
8
gcc/testsuite/gcc.c-torture/compile/pr29945.c
Normal file
8
gcc/testsuite/gcc.c-torture/compile/pr29945.c
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
/* This test used to ICE on the SPU target. */
|
||||||
|
extern const char *__ctype_ptr;
|
||||||
|
|
||||||
|
parse_real (unsigned char c)
|
||||||
|
{
|
||||||
|
if ((__ctype_ptr[c]&04) && c != '.')
|
||||||
|
unget_char ( c);
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue