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]

Re: need for instruction attributes (ia64)


On Wed, Jan 12, 2005 at 10:20:22AM +0100, Jan Beulich wrote:
> ... for supporting .unc compares here (and perhaps elsewhere) one would
> need new infrastructure to support a double layer (or other method of
> combination) of cond_exec-s (depending on the predicate of the .unc
> compare and its result predicate(s))... 

Well, yes and no.  Comparisons being what they are, we wouldn't
necessarily have to model a predicated cmp.unc as an instruction
with a cond_exec applied.  Indeed, considering that a write always
happens, I would counsul against it.  We could model 

	(p1) cmplt.unc p2, p3 = r4, r5

as

	[(set (reg:cci p2)
	      (and:cci (lt:cci (reg:di r4) (reg:di r5))
		       (reg:cci p1)))
	 (set (reg:cci p3)
	      (and:cci (ge:cci (reg:di r4) (reg:di r5))
		       (reg:cci p1)))]

That said, you'll also notice that we're only able to use predicates
in pairs, which MUST be inverses of one another.  Which is incompatible
with .unc compares.  There are a number of things that would have to
change in the generic rtl optimizers that would be needed to fix this.

What's your ultimate goal?


r~


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