Skip to content

Commit cd8d507

Browse files
committed
[RISCV] Pull __builtin_riscv_clz/ctz out of a nested switch. NFC
The nested switch exists to share setting IntrinsicsTypes to {ResultType}. clz/ctz return before we reach that so they can just be in the top level switch.
1 parent fe52152 commit cd8d507

File tree

1 file changed

+19
-22
lines changed

1 file changed

+19
-22
lines changed

clang/lib/CodeGen/CGBuiltin.cpp

+19-22
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)