aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2019-11-17 00:31:19 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2019-11-17 00:31:19 +0100
commita20a1a75bea2a1ad64317c312239f22f65ac6bd1 (patch)
treec39725a3fadc59da15b4792012037d43e54b8195 /gcc/config
parentbac6632921d01d415c1378a43d0544d10ac976c3 (diff)
downloadgcc-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.md14
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,