From: Richard Henderson <r...@redhat.com> Date: Mon, 03 Oct 2011 15:19:00 -0700
> On 10/01/2011 11:40 AM, David Miller wrote: >> +;; Conditional moves are possible via fcmpX --> cmaskX -> bshuffle > > Does this comment mean you can fairly efficiently implement the > vcond<cmpmode><datamode> patterns? That seems to be the case. So such an expander would emit something like: fcmple32 %f0, %f2, %g1 cmask32 %g1 bshuffle %f0, %f2, %f4 for an "le" conditional move. When modes N and M use different vector element types, I'll have to frob the bitmask produced by the fcmp and adjust the cmask variant used. What exactly is supposed to happen when, for example, the comparison is between two v4hi values and the conditional move is done on v2si values? It seems the only requirement is that modes N and M be vector modes of the same size.