@@ -2549,7 +2549,7 @@ static bool interp__builtin_is_within_lifetime(InterpState &S, CodePtr OpPC,
2549
2549
}
2550
2550
2551
2551
static bool interp__builtin_elementwise_int_binop (
2552
- InterpState &S, CodePtr OpPC, const CallExpr *Call, unsigned BuiltinID,
2552
+ InterpState &S, CodePtr OpPC, const CallExpr *Call,
2553
2553
llvm::function_ref<APInt(const APSInt &, const APSInt &)> Fn) {
2554
2554
assert (Call->getNumArgs () == 2 );
2555
2555
@@ -3287,26 +3287,26 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3287
3287
3288
3288
case Builtin::BI__builtin_elementwise_add_sat:
3289
3289
return interp__builtin_elementwise_int_binop (
3290
- S, OpPC, Call, BuiltinID, [](const APSInt &LHS, const APSInt &RHS) {
3290
+ S, OpPC, Call, [](const APSInt &LHS, const APSInt &RHS) {
3291
3291
return LHS.isSigned () ? LHS.sadd_sat (RHS) : LHS.uadd_sat (RHS);
3292
3292
});
3293
3293
3294
3294
case Builtin::BI__builtin_elementwise_sub_sat:
3295
3295
return interp__builtin_elementwise_int_binop (
3296
- S, OpPC, Call, BuiltinID, [](const APSInt &LHS, const APSInt &RHS) {
3296
+ S, OpPC, Call, [](const APSInt &LHS, const APSInt &RHS) {
3297
3297
return LHS.isSigned () ? LHS.ssub_sat (RHS) : LHS.usub_sat (RHS);
3298
3298
});
3299
3299
3300
3300
case clang::X86::BI__builtin_ia32_pmulhuw128:
3301
3301
case clang::X86::BI__builtin_ia32_pmulhuw256:
3302
3302
case clang::X86::BI__builtin_ia32_pmulhuw512:
3303
- return interp__builtin_elementwise_int_binop (S, OpPC, Call, BuiltinID,
3303
+ return interp__builtin_elementwise_int_binop (S, OpPC, Call,
3304
3304
llvm::APIntOps::mulhu);
3305
3305
3306
3306
case clang::X86::BI__builtin_ia32_pmulhw128:
3307
3307
case clang::X86::BI__builtin_ia32_pmulhw256:
3308
3308
case clang::X86::BI__builtin_ia32_pmulhw512:
3309
- return interp__builtin_elementwise_int_binop (S, OpPC, Call, BuiltinID,
3309
+ return interp__builtin_elementwise_int_binop (S, OpPC, Call,
3310
3310
llvm::APIntOps::mulhs);
3311
3311
3312
3312
case clang::X86::BI__builtin_ia32_psllv2di:
@@ -3324,7 +3324,7 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3324
3324
case clang::X86::BI__builtin_ia32_psllqi256:
3325
3325
case clang::X86::BI__builtin_ia32_psllqi512:
3326
3326
return interp__builtin_elementwise_int_binop (
3327
- S, OpPC, Call, BuiltinID, [](const APSInt &LHS, const APSInt &RHS) {
3327
+ S, OpPC, Call, [](const APSInt &LHS, const APSInt &RHS) {
3328
3328
if (RHS.uge (LHS.getBitWidth ())) {
3329
3329
return APInt::getZero (LHS.getBitWidth ());
3330
3330
}
@@ -3344,7 +3344,7 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3344
3344
case clang::X86::BI__builtin_ia32_psraqi256:
3345
3345
case clang::X86::BI__builtin_ia32_psraqi512:
3346
3346
return interp__builtin_elementwise_int_binop (
3347
- S, OpPC, Call, BuiltinID, [](const APSInt &LHS, const APSInt &RHS) {
3347
+ S, OpPC, Call, [](const APSInt &LHS, const APSInt &RHS) {
3348
3348
if (RHS.uge (LHS.getBitWidth ())) {
3349
3349
return LHS.ashr (LHS.getBitWidth () - 1 );
3350
3350
}
@@ -3366,7 +3366,7 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3366
3366
case clang::X86::BI__builtin_ia32_psrlqi256:
3367
3367
case clang::X86::BI__builtin_ia32_psrlqi512:
3368
3368
return interp__builtin_elementwise_int_binop (
3369
- S, OpPC, Call, BuiltinID, [](const APSInt &LHS, const APSInt &RHS) {
3369
+ S, OpPC, Call, [](const APSInt &LHS, const APSInt &RHS) {
3370
3370
if (RHS.uge (LHS.getBitWidth ())) {
3371
3371
return APInt::getZero (LHS.getBitWidth ());
3372
3372
}
@@ -3384,7 +3384,7 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3384
3384
case clang::X86::BI__builtin_ia32_prolq256:
3385
3385
case clang::X86::BI__builtin_ia32_prolq512:
3386
3386
return interp__builtin_elementwise_int_binop (
3387
- S, OpPC, Call, BuiltinID,
3387
+ S, OpPC, Call,
3388
3388
[](const APSInt &LHS, const APSInt &RHS) { return LHS.rotl (RHS); });
3389
3389
3390
3390
case clang::X86::BI__builtin_ia32_prord128:
@@ -3394,7 +3394,7 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
3394
3394
case clang::X86::BI__builtin_ia32_prorq256:
3395
3395
case clang::X86::BI__builtin_ia32_prorq512:
3396
3396
return interp__builtin_elementwise_int_binop (
3397
- S, OpPC, Call, BuiltinID,
3397
+ S, OpPC, Call,
3398
3398
[](const APSInt &LHS, const APSInt &RHS) { return LHS.rotr (RHS); });
3399
3399
3400
3400
case Builtin::BI__builtin_elementwise_max:
0 commit comments