Skip to content

Commit c12f959

Browse files
committed
refactor: add createSignBit
1 parent 86f6d25 commit c12f959

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h

+5
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,11 @@ class CIRBaseBuilderTy : public mlir::OpBuilder {
405405
return create<mlir::cir::MemCpyOp>(loc, dst, src, len);
406406
}
407407

408+
mlir::cir::SignBitOp createSignBit(mlir::Location loc, mlir::Value val) {
409+
auto resTy = mlir::cir::IntType::get(getContext(), 32, true);
410+
return create<mlir::cir::SignBitOp>(loc, resTy, val);
411+
}
412+
408413
mlir::Value createSub(mlir::Value lhs, mlir::Value rhs, bool hasNUW = false,
409414
bool hasNSW = false) {
410415
auto op = create<mlir::cir::BinOp>(lhs.getLoc(), lhs.getType(),

clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -1650,10 +1650,8 @@ RValue CIRGenFunction::buildBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
16501650
case Builtin::BI__builtin_signbit:
16511651
case Builtin::BI__builtin_signbitf:
16521652
case Builtin::BI__builtin_signbitl: {
1653-
mlir::Location Loc = getLoc(E->getBeginLoc());
16541653
mlir::Value val = buildScalarExpr(E->getArg(0));
1655-
auto resTy = mlir::cir::IntType::get(builder.getContext(), 32, true);
1656-
auto ret = builder.create<mlir::cir::SignBitOp>(Loc, resTy, val);
1654+
auto ret = builder.createSignBit(getLoc(E->getBeginLoc()), val);
16571655
return RValue::get(ret->getResult(0));
16581656
}
16591657

0 commit comments

Comments
 (0)