On 7/28/25 3:23 AM, Robin Dapp wrote:
-;; Vector crypto, assumed to be a generic operation for now.
-(define_insn_reservation "vec_crypto" 4
+;; Vector population count
+(define_insn_reservation "vec_pop" 4
(and (eq_attr "tune" "generic_ooo,generic")
- (eq_attr "type" "crypto,vclz,vctz,vcpop"))
+ (eq_attr "type" "vcpop"))
"vxu_ooo_issue,vxu_ooo_alu")
Hmm, generally I'd say it's reasonable to remove "crypto" but I wonder
whether vcpop is special enough to have its own reservation? IMHO vclz,
vctz, vbrev, etc. are all kind of similar in that they are not regular
arithmetic operations but rather bitmanip ones (as opposed to vandn,
vwsll or so). I guess they could all execute on an ALU pipe but I
wouldn't be surprised if implementations differed here.
Not that I have a very strong opinion but right now I'd slightly lean
towards removing vclz and friends from vec_alu and add them here
instead. Let's see what others think still.
I think we did something similar on the scalar side for our design as
well (clz/ctz 1c, cpop 2c).
Jeff