Skip to content

Commit

Permalink
[CIR][CIRGen][Builtin][Neon] Lower neon_vsra_n_v and neon_vsraq_n_v (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
FantasqueX authored Feb 11, 2025
1 parent dde0549 commit 37fab7c
Show file tree
Hide file tree
Showing 2 changed files with 264 additions and 163 deletions.
8 changes: 6 additions & 2 deletions clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4410,8 +4410,12 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
llvm_unreachable("NEON::BI__builtin_neon_vsliq_n_v NYI");
}
case NEON::BI__builtin_neon_vsra_n_v:
case NEON::BI__builtin_neon_vsraq_n_v:
llvm_unreachable("NEON::BI__builtin_neon_vsraq_n_v NYI");
case NEON::BI__builtin_neon_vsraq_n_v: {
Ops[0] = builder.createBitcast(Ops[0], vTy);
Ops[1] = emitNeonRShiftImm(*this, Ops[1], Ops[2], vTy, usgn,
getLoc(E->getExprLoc()));
return builder.createAdd(Ops[0], Ops[1]);
}
case NEON::BI__builtin_neon_vrsra_n_v:
case NEON::BI__builtin_neon_vrsraq_n_v: {
llvm::SmallVector<mlir::Value> tmpOps = {Ops[1], Ops[2]};
Expand Down
Loading

0 comments on commit 37fab7c

Please sign in to comment.