https://github.com/sdesmalen-arm commented:

Generalising this code makes sense, 16 should never have been hardcoded here.

Is it possible to add a test for the case where the predicate type is not 
`<vscale x 16 x i1>`?

> Though I do wonder if we have the bitcast on the wrong side. Maybe we should 
> be casting the fixed type to an i1 fixed vector? That would better handle 
> cases where the mininum elements isn't a multiple of 8, but 
> vscale*min_elements is.
I'm not sure if there are any fundamental reasons not to do this, but at least 
for AArch64 `16 x i1` is not a legal type which leads to some inefficient 
legalisation code. I can see however that the IR is missing some folds, so 
perhaps with those folds added making this change is fine.

https://github.com/llvm/llvm-project/pull/76548
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to