This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

"Parallel" mode iterators


Maybe some can help me a little bit with machine descriptions.
Assuming there is a define_insn pattern "foo<mode>", and that
pattern takes two arguments.  The first argument sould be of the
types DI, SI or HI, and the second argument is always half the
size of the first argument.

One can define mode iterators for

  (define_mode_iterator ITER1 [DI SI HI])
  (define_mode_iterator ITER2 [SI HI QI])

Is it possible to write something like this:

  (define_insn "foo<mode>" 
    [(set (match_operand:ITER1 0 ...) 
     ...
            [(match_operand:ITER1 1 ...)
             (match_operand:ITER2 2 ...)]
     ...

so that the pattern is copied only for the combinations DI-SI,
SI-HI and HI-QI, not for all nine combinations of the two
iterators?  (Or is there another way to get mode of the second
argument depending on the first argument?)

Ciao

Dominik ^_^  ^_^

-- 

Dominik Vogt
IBM Germany


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]