Hi Jakub,

I had a question about the aforementioned commit in RV backend.

(define_split
  [(set (match_operand:GPR 0 "register_operand")
        (and:GPR (match_operand:GPR 1 "register_operand")
               (match_operand:GPR 2 "p2m1_shift_operand")))
+   (clobber (match_operand:GPR 3 "register_operand"))]
  ""
-  [(set (match_dup 0)
+  [(set (match_dup 3)
       (ashift:GPR (match_dup 1) (match_dup 2)))

Is there something specific to this split which warrants this or so any split patterns involving shifts have this to avoid the shifting by more than SUBREG_REG problem.

Also could you please explain where the clobber itself is allocated ?

This came up when discussing the solution to PR/106602 [1]


Thx,
-Vineet

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106602

Reply via email to