diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2019-11-17 00:31:19 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2019-11-17 00:31:19 +0100 |
commit | a20a1a75bea2a1ad64317c312239f22f65ac6bd1 (patch) | |
tree | c39725a3fadc59da15b4792012037d43e54b8195 /gcc/config | |
parent | bac6632921d01d415c1378a43d0544d10ac976c3 (diff) | |
download | gcc-a20a1a75bea2a1ad64317c312239f22f65ac6bd1.zip gcc-a20a1a75bea2a1ad64317c312239f22f65ac6bd1.tar.gz gcc-a20a1a75bea2a1ad64317c312239f22f65ac6bd1.tar.bz2 |
rs6000: Allow mode GPR in cceq_{ior,rev}_compare
Also make it a parmeterized name: @cceq_{ior,rev}_compare_<mode>.
* config/rs6000/rs6000.md (cceq_ior_compare): Rename to...
(@cceq_ior_compare_<mode> for GPR): ... this. Allow GPR instead of
just SI.
(cceq_rev_compare): Rename to...
(@cceq_rev_compare_<mode> for GPR): ... this. Allow GPR instead of
just SI.
(define_split for <bd>tf_<mode>): Add SImode first argument to
gen_cceq_ior_compare.
From-SVN: r278366
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 040fc88..8dc0a29 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -12420,15 +12420,15 @@ ; which are generated by the branch logic. ; Prefer destructive operations where BT = BB (for crXX BT,BA,BB) -(define_insn "cceq_ior_compare" +(define_insn "@cceq_ior_compare_<mode>" [(set (match_operand:CCEQ 0 "cc_reg_operand" "=y,?y") - (compare:CCEQ (match_operator:SI 1 "boolean_operator" - [(match_operator:SI 2 + (compare:CCEQ (match_operator:GPR 1 "boolean_operator" + [(match_operator:GPR 2 "branch_positive_comparison_operator" [(match_operand 3 "cc_reg_operand" "y,y") (const_int 0)]) - (match_operator:SI 4 + (match_operator:GPR 4 "branch_positive_comparison_operator" [(match_operand 5 "cc_reg_operand" "0,y") @@ -12460,9 +12460,9 @@ [(set_attr "type" "cr_logical") (set_attr "cr_logical_3op" "no,yes")]) -(define_insn "*cceq_rev_compare" +(define_insn "@cceq_rev_compare_<mode>" [(set (match_operand:CCEQ 0 "cc_reg_operand" "=y,?y") - (compare:CCEQ (match_operator:SI 1 + (compare:CCEQ (match_operator:GPR 1 "branch_positive_comparison_operator" [(match_operand 2 "cc_reg_operand" "0,y") @@ -12897,7 +12897,7 @@ rtx andexpr = gen_rtx_AND (SImode, ctrcmpcc, cccmp); if (ispos) - emit_insn (gen_cceq_ior_compare (operands[9], andexpr, ctrcmpcc, + emit_insn (gen_cceq_ior_compare (SImode, operands[9], andexpr, ctrcmpcc, operands[8], cccmp, ccin)); else emit_insn (gen_cceq_ior_compare_complement (operands[9], andexpr, ctrcmpcc, |