[clang] [CIR][AArch64] add vshr_* builtins (PR #186693)

via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 20 05:58:45 PDT 2026


alowqie wrote:

@banach-space this is ready for review, I just resolved a merge conflict and found one wrong deletion of argument from my side. 

I have not included switching to `cir.vec.splat` yet, however after noticing @andykaylor thinks this is the path forward, I tried it locally with this change and seem to be getting correct CIR. Let me know if you want me to modify the code. 
```
static mlir::Value emitNeonShiftVector(CIRGenBuilderTy &builder,
                                       mlir::Value shiftVal,
                                       cir::VectorType vecTy,
                                       mlir::Location loc) {
  mlir::Type eltTy = vecTy.getElementType();

  if (shiftVal.getType() != eltTy) {
    shiftVal = builder.createIntCast(shiftVal, eltTy);
  }

  return cir::VecSplatOp::create(builder, loc, vecTy, shiftVal);
}
```

https://github.com/llvm/llvm-project/pull/186693


More information about the cfe-commits mailing list