@@ -22398,10 +22398,6 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
2239822398 default: llvm_unreachable("unexpected builtin ID");
2239922399 case RISCV::BI__builtin_riscv_orc_b_32:
2240022400 case RISCV::BI__builtin_riscv_orc_b_64:
22401- case RISCV::BI__builtin_riscv_clz_32:
22402- case RISCV::BI__builtin_riscv_clz_64:
22403- case RISCV::BI__builtin_riscv_ctz_32:
22404- case RISCV::BI__builtin_riscv_ctz_64:
2240522401 case RISCV::BI__builtin_riscv_clmul_32:
2240622402 case RISCV::BI__builtin_riscv_clmul_64:
2240722403 case RISCV::BI__builtin_riscv_clmulh_32:
@@ -22423,24 +22419,6 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
2242322419 case RISCV::BI__builtin_riscv_orc_b_64:
2242422420 ID = Intrinsic::riscv_orc_b;
2242522421 break;
22426- case RISCV::BI__builtin_riscv_clz_32:
22427- case RISCV::BI__builtin_riscv_clz_64: {
22428- Function *F = CGM.getIntrinsic(Intrinsic::ctlz, Ops[0]->getType());
22429- Value *Result = Builder.CreateCall(F, {Ops[0], Builder.getInt1(false)});
22430- if (Result->getType() != ResultType)
22431- Result = Builder.CreateIntCast(Result, ResultType, /*isSigned*/true,
22432- "cast");
22433- return Result;
22434- }
22435- case RISCV::BI__builtin_riscv_ctz_32:
22436- case RISCV::BI__builtin_riscv_ctz_64: {
22437- Function *F = CGM.getIntrinsic(Intrinsic::cttz, Ops[0]->getType());
22438- Value *Result = Builder.CreateCall(F, {Ops[0], Builder.getInt1(false)});
22439- if (Result->getType() != ResultType)
22440- Result = Builder.CreateIntCast(Result, ResultType, /*isSigned*/true,
22441- "cast");
22442- return Result;
22443- }
2244422422
2244522423 // Zbc
2244622424 case RISCV::BI__builtin_riscv_clmul_32:
@@ -22515,6 +22493,25 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
2251522493 ID = Intrinsic::riscv_sm3p1;
2251622494 break;
2251722495
22496+ case RISCV::BI__builtin_riscv_clz_32:
22497+ case RISCV::BI__builtin_riscv_clz_64: {
22498+ Function *F = CGM.getIntrinsic(Intrinsic::ctlz, Ops[0]->getType());
22499+ Value *Result = Builder.CreateCall(F, {Ops[0], Builder.getInt1(false)});
22500+ if (Result->getType() != ResultType)
22501+ Result =
22502+ Builder.CreateIntCast(Result, ResultType, /*isSigned*/ false, "cast");
22503+ return Result;
22504+ }
22505+ case RISCV::BI__builtin_riscv_ctz_32:
22506+ case RISCV::BI__builtin_riscv_ctz_64: {
22507+ Function *F = CGM.getIntrinsic(Intrinsic::cttz, Ops[0]->getType());
22508+ Value *Result = Builder.CreateCall(F, {Ops[0], Builder.getInt1(false)});
22509+ if (Result->getType() != ResultType)
22510+ Result =
22511+ Builder.CreateIntCast(Result, ResultType, /*isSigned*/ false, "cast");
22512+ return Result;
22513+ }
22514+
2251822515 // Zihintntl
2251922516 case RISCV::BI__builtin_riscv_ntl_load: {
2252022517 llvm::Type *ResTy = ConvertType(E->getType());
0 commit comments