diff options
author | David Holsgrove <david.holsgrove@xilinx.com> | 2014-01-30 17:18:17 +0000 |
---|---|---|
committer | Michael Eager <eager@gcc.gnu.org> | 2014-01-30 17:18:17 +0000 |
commit | 29bd5728111c90c178fd82ba455c2a686dd02542 (patch) | |
tree | 0e8ea99d725ee6af8c42357de7a4d22aff1df343 /gcc/config/microblaze | |
parent | c345a0b156755781956c1f866624e1c3224e9a7c (diff) | |
download | gcc-29bd5728111c90c178fd82ba455c2a686dd02542.zip gcc-29bd5728111c90c178fd82ba455c2a686dd02542.tar.gz gcc-29bd5728111c90c178fd82ba455c2a686dd02542.tar.bz2 |
Add SImode to comparison operator, prevents ICE during combine
rtl pass with error message;
internal compiler error: in simplify_subreg, at simplify-rtx.c:5725
Use ordered_comparison_operator predicate to limit operators to
those fcmp can handle, and letting compiler reorder insns to
accomodate unordered as necessary
gcc/ChangeLog
2013-11-26 David Holsgrove <david.holsgrove@xilinx.com>
* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
comparison_operator with ordered_comparison_operator.
testsuite/ChangeLog
2014-01-22 David holsgrove <david.holsgrove@xilinx.com>
* testsuite/gcc.target/microblaze/isa/fcmp4.c: New file.
From-SVN: r207311
Diffstat (limited to 'gcc/config/microblaze')
-rw-r--r-- | gcc/config/microblaze/microblaze.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md index 367f253..8431f2d 100644 --- a/gcc/config/microblaze/microblaze.md +++ b/gcc/config/microblaze/microblaze.md @@ -1650,7 +1650,7 @@ ;;---------------------------------------------------------------- (define_insn "cstoresf4" [(set (match_operand:SI 0 "register_operand" "=r") - (match_operator 1 "comparison_operator" + (match_operator:SI 1 "ordered_comparison_operator" [(match_operand:SF 2 "register_operand" "r") (match_operand:SF 3 "register_operand" "r")]))] "TARGET_HARD_FLOAT" @@ -1679,7 +1679,7 @@ (define_expand "cbranchsf4" [(set (pc) - (if_then_else (match_operator 0 "comparison_operator" + (if_then_else (match_operator 0 "ordered_comparison_operator" [(match_operand:SF 1 "register_operand") (match_operand:SF 2 "register_operand")]) (label_ref (match_operand 3 "")) |