Skip to content

Commit 52a98fa

Browse files
committed
[CIR][CIRGen][Builtin][Neon] Lower neon_vsra_n_v and neon_vsraq_n_v
1 parent 3e17e7b commit 52a98fa

File tree

2 files changed

+263
-163
lines changed

2 files changed

+263
-163
lines changed

clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -4410,8 +4410,11 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
44104410
llvm_unreachable("NEON::BI__builtin_neon_vsliq_n_v NYI");
44114411
}
44124412
case NEON::BI__builtin_neon_vsra_n_v:
4413-
case NEON::BI__builtin_neon_vsraq_n_v:
4414-
llvm_unreachable("NEON::BI__builtin_neon_vsraq_n_v NYI");
4413+
case NEON::BI__builtin_neon_vsraq_n_v: {
4414+
Ops[0] = builder.createBitcast(Ops[0], vTy);
4415+
Ops[1] = emitNeonRShiftImm(*this, Ops[1], Ops[2], vTy, usgn, getLoc(E->getExprLoc()));
4416+
return builder.createAdd(Ops[0], Ops[1]);
4417+
}
44154418
case NEON::BI__builtin_neon_vrsra_n_v:
44164419
case NEON::BI__builtin_neon_vrsraq_n_v: {
44174420
llvm::SmallVector<mlir::Value> tmpOps = {Ops[1], Ops[2]};

0 commit comments

Comments
 (0)