Hi, It's the third patch of a series of patches optimizing CC modes on rs6000.
This patch sets CC mode of vector string isolate insns to CCEQ instead of CCFP as these insns only set/check CR bit 2. Bootstrapped and tested on powerpc64-linux BE and LE with no regressions. Is it OK for the trunk? Thanks Gui Haochen ChangeLog rs6000: Set CC mode of vector string isolate insns to CCEQ gcc/ * config/rs6000/altivec.md (vstrir_p_direct_<mode>): Replace CCFP with CCEQ. (vstril_p_direct_<mode>): Likewise. patch.diff diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md index bd79a3f9e84..a883a814a82 100644 --- a/gcc/config/rs6000/altivec.md +++ b/gcc/config/rs6000/altivec.md @@ -932,9 +932,9 @@ (define_insn "vstrir_p_direct_<mode>" (unspec:VIshort [(match_operand:VIshort 1 "altivec_register_operand" "v")] UNSPEC_VSTRIR)) - (set (reg:CC CR6_REGNO) - (unspec:CC [(match_dup 1)] - UNSPEC_VSTRIR))] + (set (reg:CCEQ CR6_REGNO) + (unspec:CCEQ [(match_dup 1)] + UNSPEC_VSTRIR))] "TARGET_POWER10" "vstri<wd>r. %0,%1" [(set_attr "type" "vecsimple")]) @@ -984,9 +984,9 @@ (define_insn "vstril_p_direct_<mode>" (unspec:VIshort [(match_operand:VIshort 1 "altivec_register_operand" "v")] UNSPEC_VSTRIL)) - (set (reg:CC CR6_REGNO) - (unspec:CC [(match_dup 1)] - UNSPEC_VSTRIR))] + (set (reg:CCEQ CR6_REGNO) + (unspec:CCEQ [(match_dup 1)] + UNSPEC_VSTRIR))] "TARGET_POWER10" "vstri<wd>l. %0,%1" [(set_attr "type" "vecsimple")])