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]

vec_select


rtl.texi and combine.c say that vec_select always takes a PARALLEL
argument to specify the selection.  Shouldn't that be a CONST_VECTOR
now if all the elements are CONST_INTs ?
And why does rtl.texi state that all the elements are CONST_INTs?  
It seems natural to use vec_select to describe a hardware operation
that selects a vector element each for a bit field in a register, as
in:

  [(set (match_operand:V4HI 0 "arith_reg_dest" "=r")
        (vec_select:V4HI
         (match_operand:V4HI 1 "arith_reg_operand" "r")
         (parallel 
          [(zero_extract (match_operand:QI 2 "extend_reg_or_0_operand" "rU")
                         (const_int 2) (const_int 0))
           (zero_extract (match_dup 2) (const_int 2) (const_int 2))
           (zero_extract (match_dup 2) (const_int 2) (const_int 4))
           (zero_extract (match_dup 2) (const_int 2) (const_int 6))])))]

-- 
--------------------------
SuperH
2430 Aztec West / Almondsbury / BRISTOL / BS32 4AQ
T:+44 1454 462330


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