diff options
Diffstat (limited to 'gcc/config/rs6000/rs6000.md')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 1ceb393efde..6c9bae934d1 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -149,6 +149,8 @@ UNSPEC_PLTSEQ UNSPEC_PLT16_HA UNSPEC_CFUGED + UNSPEC_CNTLZDM + UNSPEC_CNTTZDM ]) ;; @@ -2463,6 +2465,24 @@ "cfuged %0,%1,%2" [(set_attr "type" "integer")]) +(define_insn "cntlzdm" + [(set (match_operand:DI 0 "gpc_reg_operand" "=r") + (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "r") + (match_operand:DI 2 "gpc_reg_operand" "r")] + UNSPEC_CNTLZDM))] + "TARGET_FUTURE && TARGET_POWERPC64" + "cntlzdm %0,%1,%2" + [(set_attr "type" "integer")]) + +(define_insn "cnttzdm" + [(set (match_operand:DI 0 "gpc_reg_operand" "=r") + (unspec:DI [(match_operand:DI 1 "gpc_reg_operand" "r") + (match_operand:DI 2 "gpc_reg_operand" "r")] + UNSPEC_CNTTZDM))] + "TARGET_FUTURE && TARGET_POWERPC64" + "cnttzdm %0,%1,%2" + [(set_attr "type" "integer")]) + (define_insn "cmpb<mode>3" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r") |