> The x86 backend transitioned to UNSPECs for masked loads/stores because
> of correctness issues, so IMO getting RTL semantics correct is important.
>
> Note that the flat (vec_predicate ...) feels a lot like an UNSPEC and
> we have to avoid making the actual semantics target dependent.

I can't really think of a nice way of expressing predicated stores that would 
fit the other variants we discussed.

Too last-ditch ideas are either a (subreg (mem)) like abomination:

  (set (vec_predicate/cond_exec/... (mem ...))

where the entire predicate is on the LHS or a separate "thing" altogether:

  (vec_predicated_store
     mem
     val
     mask
     len
     ...)

-- 
Regards
 Robin

Reply via email to