Re: Unable to match instruction pattern

2014-04-14 Thread Paul Shortis
Thanks Richard, That worked just as you suggested, and ... when I removed my zero_extendhisi2 the IIRC the target-independent optabs code generated exactly the same sequence. Interestingly, I noticed that changing from my define_insn "zero_extendhisi2" back to the define_expand "zero_extendh

Re: Unable to match instruction pattern

2014-04-11 Thread Richard Sandiford
pshor...@dataworx.com.au writes: > Found it ... > > I had > > (define_expand "zero_extendhisi2" > [ > (set (subreg:HI (match_operand:SI 0 "general_operand" "")0) > (match_operand:HI 1 "general_operand" "")) > (set (subreg:HI (match_dup 0)2) >

Re: Unable to match instruction pattern

2014-04-09 Thread pshortis
Found it ... I had (define_expand "zero_extendhisi2" [ (set (subreg:HI (match_operand:SI 0 "general_operand" "")0) (match_operand:HI 1 "general_operand" "")) (set (subreg:HI (match_dup 0)2) (const_int 0)) ] "" "" ) which cr

Unable to match instruction pattern

2014-04-08 Thread Paul Shortis
I'm porting gcc to a 16 bit processor. Occasionally compiling source such as short v1; long global; global = (long)v1; results in ... (insn 11 10 12 2 (set (subreg:HI (mem/c:SI (symbol_ref:HI ("global") ) [2 global+0 S4 A16]) 2) (const_int 0 [0])) t.c:15 -1 (nil)) (insn