On Wed, Apr 14, 2021 at 02:47:59PM -0500, Segher Boessenkool wrote: > On Wed, Apr 14, 2021 at 09:45:35PM +0200, Jakub Jelinek wrote: > > On Wed, Apr 14, 2021 at 02:42:54PM -0500, Segher Boessenkool wrote: > > > > provably doesn't (that is from the splitter I wrote for the non-hard > > > > regs), > > > > nor > > > > [(set (match_operand:GPI 0 "register_operand") > > > > (LOGICAL:GPI > > > > (and:GPI (ashift:GPI (match_operand:GPI 1 "register_operand") > > > > (match_operand:QI 2 > > > > "aarch64_shift_imm_<mode>")) > > > > (match_operand:GPI 3 "const_int_operand")) > > > > (zero_extend:GPI (subreg (match_dup 1) 0))))] > > > > works (and it is unclear how I'd find out the mode of the subreg even > > > > if it > > > > worked). > > > > > > Just > > > (subreg:QI (match_dup 1) 0) > > > should work? > > > > That doesn't work either. > > Why not? What goes wrong with that?
It just doesn't match and therefore doesn't split it. Jakub