[clang] [CIR][AArch64] Complete upstream vector saturating shift left NEON builtins (PR #221507)
Vicky Nguyen via cfe-commits
cfe-commits at lists.llvm.org
Sat Sep 12 22:39:57 PDT 2026
================
@@ -46,12 +46,18 @@ enum {
// the intrinsic's .td.
ArgAsWidenedRetType = (1 << 9),
+ // The immediate operand is `LLVMMatchType<0>` in the intrinsic
+ // definition, so it is vectorized like a data operand (e.g. the `_n_`
+ // scalar saturating shifts: vqshlb_n_s8, vqshlub_n_s8, ...).
+ // ClangIR-only; classic code-gen derives this from the intrinsic's .td.
+ VectorizeImmArg = (1 << 10),
+
Vectorize1ArgType = Add1ArgType | VectorizeArgTypes,
VectorRet = AddRetType | VectorizeRetType,
- VectorRetGetArgs01 =
- AddRetType | Add2ArgTypes | VectorizeRetType | VectorizeArgTypes,
- FpCmpzModifiers =
- AddRetType | VectorizeRetType | Add1ArgType | InventFloatType
+ VectorRetGetArgs01 = AddRetType | Add2ArgTypes | VectorizeRetType |
+ VectorizeArgTypes,
+ FpCmpzModifiers = AddRetType | VectorizeRetType | Add1ArgType |
+ InventFloatType
----------------
iamvickynguyen wrote:
Note: adding `VectorizeImmArg` above triggered clang-format v23 to reformat these.
https://github.com/llvm/llvm-project/pull/221507
More information about the cfe-commits
mailing list