@@ -2127,7 +2127,7 @@ static mlir::Value buildArmLdrexNon128Intrinsic(unsigned int builtinID,
2127
2127
CIRGenFunction &cgf) {
2128
2128
StringRef intrinsicName;
2129
2129
if (builtinID == clang::AArch64::BI__builtin_arm_ldrex) {
2130
- intrinsicName = " llvm. aarch64.ldxr" ;
2130
+ intrinsicName = " aarch64.ldxr" ;
2131
2131
} else {
2132
2132
llvm_unreachable (" Unknown builtinID" );
2133
2133
}
@@ -2141,8 +2141,9 @@ static mlir::Value buildArmLdrexNon128Intrinsic(unsigned int builtinID,
2141
2141
// which can be found under LLVM IR directory.
2142
2142
mlir::Type funcResTy = builder.getSInt64Ty ();
2143
2143
mlir::Location loc = cgf.getLoc (clangCallExpr->getExprLoc ());
2144
- mlir::cir::IntrinsicCallOp op = builder.create <mlir::cir::IntrinsicCallOp>(
2145
- loc, builder.getStringAttr (intrinsicName), funcResTy, loadAddr);
2144
+ mlir::cir::LLVMIntrinsicCallOp op =
2145
+ builder.create <mlir::cir::LLVMIntrinsicCallOp>(
2146
+ loc, builder.getStringAttr (intrinsicName), funcResTy, loadAddr);
2146
2147
mlir::Value res = op.getResult ();
2147
2148
2148
2149
// Convert result type to the expected type.
@@ -2269,7 +2270,7 @@ mlir::Value buildNeonCall(CIRGenBuilderTy &builder,
2269
2270
return nullptr ;
2270
2271
}
2271
2272
return builder
2272
- .create <mlir::cir::IntrinsicCallOp >(
2273
+ .create <mlir::cir::LLVMIntrinsicCallOp >(
2273
2274
loc, builder.getStringAttr (intrinsicName), funcResTy, args)
2274
2275
.getResult ();
2275
2276
}
@@ -2379,27 +2380,27 @@ mlir::Value CIRGenFunction::buildCommonNeonBuiltinExpr(
2379
2380
return buildNeonCall (builder, {resTy, mulVecT, SInt32Ty}, ops,
2380
2381
(builtinID == NEON::BI__builtin_neon_vqdmulhq_lane_v ||
2381
2382
builtinID == NEON::BI__builtin_neon_vqdmulh_lane_v)
2382
- ? " llvm. aarch64.neon.sqdmulh.lane"
2383
- : " llvm. aarch64.neon.sqrdmulh.lane" ,
2383
+ ? " aarch64.neon.sqdmulh.lane"
2384
+ : " aarch64.neon.sqrdmulh.lane" ,
2384
2385
resTy, getLoc (e->getExprLoc ()));
2385
2386
}
2386
2387
case NEON::BI__builtin_neon_vqshlu_n_v:
2387
2388
case NEON::BI__builtin_neon_vqshluq_n_v: {
2388
2389
// These intrinsics expect signed vector type as input, but
2389
2390
// return unsigned vector type.
2390
2391
mlir::cir::VectorType srcTy = getSignChangedVectorType (builder, vTy);
2391
- return buildNeonCall (
2392
- builder, {srcTy, srcTy}, ops, " llvm.aarch64.neon.sqshlu " , vTy,
2393
- getLoc (e-> getExprLoc ()), false , /* not fp constrained op */
2394
- 1 , /* second arg is shift amount */
2395
- false /* leftshift */ );
2392
+ return buildNeonCall (builder, {srcTy, srcTy}, ops, " aarch64.neon.sqshlu " ,
2393
+ vTy, getLoc (e-> getExprLoc ()) ,
2394
+ false , /* not fp constrained op */
2395
+ 1 , /* second arg is shift amount */
2396
+ false /* leftshift */ );
2396
2397
}
2397
2398
case NEON::BI__builtin_neon_vrshr_n_v:
2398
2399
case NEON::BI__builtin_neon_vrshrq_n_v: {
2399
2400
return buildNeonCall (
2400
2401
builder,
2401
2402
{vTy, isUnsigned ? getSignChangedVectorType (builder, vTy) : vTy}, ops,
2402
- isUnsigned ? " llvm. aarch64.neon.urshl" : " llvm. aarch64.neon.srshl" , vTy,
2403
+ isUnsigned ? " aarch64.neon.urshl" : " aarch64.neon.srshl" , vTy,
2403
2404
getLoc (e->getExprLoc ()), false , /* not fp constrained op*/
2404
2405
1 , /* second arg is shift amount */
2405
2406
true /* rightshift */ );
@@ -2440,7 +2441,7 @@ mlir::Value CIRGenFunction::buildCommonNeonBuiltinExpr(
2440
2441
ops[0 ] = builder.createBitcast (ops[0 ], ty);
2441
2442
ops[1 ] = builder.createBitcast (ops[1 ], ty);
2442
2443
ops[0 ] = builder.createAnd (ops[0 ], ops[1 ]);
2443
- // Note that during LLVM Lowering, result of `VecCmpOp` is sign extended,
2444
+ // Note that during vmVM Lowering, result of `VecCmpOp` is sign extended,
2444
2445
// matching traditional codegen behavior.
2445
2446
return builder.create <mlir::cir::VecCmpOp>(
2446
2447
loc, ty, mlir::cir::CmpOpKind::ne, ops[0 ], builder.getZero (loc, ty));
@@ -2459,42 +2460,41 @@ mlir::Value CIRGenFunction::buildCommonNeonBuiltinExpr(
2459
2460
case NEON::BI__builtin_neon_vpadd_v:
2460
2461
case NEON::BI__builtin_neon_vpaddq_v: {
2461
2462
intrincsName = mlir::isa<mlir::FloatType>(vTy.getEltType ())
2462
- ? " llvm. aarch64.neon.faddp"
2463
- : " llvm. aarch64.neon.addp" ;
2463
+ ? " aarch64.neon.faddp"
2464
+ : " aarch64.neon.addp" ;
2464
2465
break ;
2465
2466
}
2466
2467
case NEON::BI__builtin_neon_vqadd_v:
2467
2468
case NEON::BI__builtin_neon_vqaddq_v: {
2468
- intrincsName = (intrinicId != altLLVMIntrinsic) ? " llvm. aarch64.neon.uqadd"
2469
- : " llvm. aarch64.neon.sqadd" ;
2469
+ intrincsName = (intrinicId != altLLVMIntrinsic) ? " aarch64.neon.uqadd"
2470
+ : " aarch64.neon.sqadd" ;
2470
2471
break ;
2471
2472
}
2472
2473
case NEON::BI__builtin_neon_vqsub_v:
2473
2474
case NEON::BI__builtin_neon_vqsubq_v: {
2474
- intrincsName = (intrinicId != altLLVMIntrinsic) ? " llvm. aarch64.neon.uqsub"
2475
- : " llvm. aarch64.neon.sqsub" ;
2475
+ intrincsName = (intrinicId != altLLVMIntrinsic) ? " aarch64.neon.uqsub"
2476
+ : " aarch64.neon.sqsub" ;
2476
2477
break ;
2477
2478
}
2478
2479
case NEON::BI__builtin_neon_vrhadd_v:
2479
2480
case NEON::BI__builtin_neon_vrhaddq_v: {
2480
- intrincsName = (intrinicId != altLLVMIntrinsic)
2481
- ? " llvm.aarch64.neon.urhadd"
2482
- : " llvm.aarch64.neon.srhadd" ;
2481
+ intrincsName = (intrinicId != altLLVMIntrinsic) ? " aarch64.neon.urhadd"
2482
+ : " aarch64.neon.srhadd" ;
2483
2483
break ;
2484
2484
}
2485
2485
case NEON::BI__builtin_neon_vshlq_v: {
2486
- intrincsName = (intrinicId != altLLVMIntrinsic) ? " llvm. aarch64.neon.ushl"
2487
- : " llvm. aarch64.neon.sshl" ;
2486
+ intrincsName = (intrinicId != altLLVMIntrinsic) ? " aarch64.neon.ushl"
2487
+ : " aarch64.neon.sshl" ;
2488
2488
break ;
2489
2489
}
2490
2490
case NEON::BI__builtin_neon_vhadd_v:
2491
2491
case NEON::BI__builtin_neon_vhaddq_v: {
2492
- intrincsName = (intrinicId != altLLVMIntrinsic) ? " llvm. aarch64.neon.uhadd"
2493
- : " llvm. aarch64.neon.shadd" ;
2492
+ intrincsName = (intrinicId != altLLVMIntrinsic) ? " aarch64.neon.uhadd"
2493
+ : " aarch64.neon.shadd" ;
2494
2494
break ;
2495
2495
}
2496
2496
case NEON::BI__builtin_neon_vqmovun_v: {
2497
- intrincsName = " llvm. aarch64.neon.sqxtun" ;
2497
+ intrincsName = " aarch64.neon.sqxtun" ;
2498
2498
argTypes.push_back (builder.getExtendedOrTruncatedElementVectorType (
2499
2499
vTy, true /* extended */ , true /* signed */ ));
2500
2500
break ;
@@ -3259,10 +3259,9 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3259
3259
llvm_unreachable (" NYI" );
3260
3260
}
3261
3261
case NEON::BI__builtin_neon_vmull_v: {
3262
- llvm::StringRef name =
3263
- usgn ? " llvm.aarch64.neon.umull" : " llvm.aarch64.neon.smull" ;
3262
+ llvm::StringRef name = usgn ? " aarch64.neon.umull" : " aarch64.neon.smull" ;
3264
3263
if (Type.isPoly ())
3265
- name = " llvm. aarch64.neon.pmull" ;
3264
+ name = " aarch64.neon.pmull" ;
3266
3265
mlir::cir::VectorType argTy =
3267
3266
builder.getExtendedOrTruncatedElementVectorType (
3268
3267
ty, false /* truncated */ , !usgn);
@@ -3277,10 +3276,9 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3277
3276
}
3278
3277
case NEON::BI__builtin_neon_vmin_v:
3279
3278
case NEON::BI__builtin_neon_vminq_v: {
3280
- llvm::StringRef name =
3281
- usgn ? " llvm.aarch64.neon.umin" : " llvm.aarch64.neon.smin" ;
3279
+ llvm::StringRef name = usgn ? " aarch64.neon.umin" : " aarch64.neon.smin" ;
3282
3280
if (mlir::cir::isFPOrFPVectorTy (ty))
3283
- name = " llvm. aarch64.neon.fmin" ;
3281
+ name = " aarch64.neon.fmin" ;
3284
3282
return buildNeonCall (builder, {ty, ty}, Ops, name, ty,
3285
3283
getLoc (E->getExprLoc ()));
3286
3284
}
@@ -3289,10 +3287,9 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3289
3287
}
3290
3288
case NEON::BI__builtin_neon_vabd_v:
3291
3289
case NEON::BI__builtin_neon_vabdq_v: {
3292
- llvm::StringRef name =
3293
- usgn ? " llvm.aarch64.neon.uabd" : " llvm.aarch64.neon.sabd" ;
3290
+ llvm::StringRef name = usgn ? " aarch64.neon.uabd" : " aarch64.neon.sabd" ;
3294
3291
if (mlir::cir::isFPOrFPVectorTy (ty))
3295
- name = " llvm. aarch64.neon.fabd" ;
3292
+ name = " aarch64.neon.fabd" ;
3296
3293
return buildNeonCall (builder, {ty, ty}, Ops, name, ty,
3297
3294
getLoc (E->getExprLoc ()));
3298
3295
}
@@ -3332,7 +3329,7 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3332
3329
builder,
3333
3330
{builder.getExtendedOrTruncatedElementVectorType (ty, true , true ),
3334
3331
SInt32Ty},
3335
- Ops, " llvm. aarch64.neon.sqrshrun" , ty, getLoc (E->getExprLoc ()));
3332
+ Ops, " aarch64.neon.sqrshrun" , ty, getLoc (E->getExprLoc ()));
3336
3333
case NEON::BI__builtin_neon_vqshrn_n_v:
3337
3334
llvm_unreachable (" NYI" );
3338
3335
case NEON::BI__builtin_neon_vrshrn_n_v:
@@ -3342,7 +3339,7 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3342
3339
vTy, true /* extend */ ,
3343
3340
mlir::cast<mlir::cir::IntType>(vTy.getEltType ()).isSigned ()),
3344
3341
SInt32Ty},
3345
- Ops, " llvm. aarch64.neon.rshrn" , ty, getLoc (E->getExprLoc ()));
3342
+ Ops, " aarch64.neon.rshrn" , ty, getLoc (E->getExprLoc ()));
3346
3343
case NEON::BI__builtin_neon_vqrshrn_n_v:
3347
3344
llvm_unreachable (" NYI" );
3348
3345
case NEON::BI__builtin_neon_vrndah_f16: {
@@ -3351,7 +3348,7 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3351
3348
case NEON::BI__builtin_neon_vrnda_v:
3352
3349
case NEON::BI__builtin_neon_vrndaq_v: {
3353
3350
assert (!MissingFeatures::buildConstrainedFPCall ());
3354
- return buildNeonCall (builder, {ty}, Ops, " llvm. round" , ty,
3351
+ return buildNeonCall (builder, {ty}, Ops, " round" , ty,
3355
3352
getLoc (E->getExprLoc ()));
3356
3353
}
3357
3354
case NEON::BI__builtin_neon_vrndih_f16: {
@@ -3374,7 +3371,7 @@ CIRGenFunction::buildAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E,
3374
3371
case NEON::BI__builtin_neon_vrndns_f32: {
3375
3372
mlir::Value arg0 = buildScalarExpr (E->getArg (0 ));
3376
3373
args.push_back (arg0);
3377
- return buildNeonCall (builder, {arg0.getType ()}, args, " llvm. roundeven.f32" ,
3374
+ return buildNeonCall (builder, {arg0.getType ()}, args, " roundeven.f32" ,
3378
3375
getCIRGenModule ().FloatTy , getLoc (E->getExprLoc ()));
3379
3376
}
3380
3377
case NEON::BI__builtin_neon_vrndph_f16: {
0 commit comments