@@ -13481,6 +13481,95 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
13481
13481
Int = Intrinsic::aarch64_neon_suqadd;
13482
13482
return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vuqadd");
13483
13483
}
13484
+
13485
+ case NEON::BI__builtin_neon_vluti2_laneq_bf16:
13486
+ case NEON::BI__builtin_neon_vluti2_laneq_f16:
13487
+ case NEON::BI__builtin_neon_vluti2_laneq_p16:
13488
+ case NEON::BI__builtin_neon_vluti2_laneq_p8:
13489
+ case NEON::BI__builtin_neon_vluti2_laneq_s16:
13490
+ case NEON::BI__builtin_neon_vluti2_laneq_s8:
13491
+ case NEON::BI__builtin_neon_vluti2_laneq_u16:
13492
+ case NEON::BI__builtin_neon_vluti2_laneq_u8: {
13493
+ Int = Intrinsic::aarch64_neon_vluti2_laneq;
13494
+ llvm::Type *Tys[2];
13495
+ Tys[0] = Ty;
13496
+ Tys[1] = GetNeonType(this, NeonTypeFlags(Type.getEltType(), false,
13497
+ /*isQuad*/ false));
13498
+ return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vluti2_laneq");
13499
+ }
13500
+ case NEON::BI__builtin_neon_vluti2q_laneq_bf16:
13501
+ case NEON::BI__builtin_neon_vluti2q_laneq_f16:
13502
+ case NEON::BI__builtin_neon_vluti2q_laneq_p16:
13503
+ case NEON::BI__builtin_neon_vluti2q_laneq_p8:
13504
+ case NEON::BI__builtin_neon_vluti2q_laneq_s16:
13505
+ case NEON::BI__builtin_neon_vluti2q_laneq_s8:
13506
+ case NEON::BI__builtin_neon_vluti2q_laneq_u16:
13507
+ case NEON::BI__builtin_neon_vluti2q_laneq_u8: {
13508
+ Int = Intrinsic::aarch64_neon_vluti2_laneq;
13509
+ llvm::Type *Tys[2];
13510
+ Tys[0] = Ty;
13511
+ Tys[1] = GetNeonType(this, NeonTypeFlags(Type.getEltType(), false,
13512
+ /*isQuad*/ true));
13513
+ return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vluti2_laneq");
13514
+ }
13515
+ case NEON::BI__builtin_neon_vluti2_lane_bf16:
13516
+ case NEON::BI__builtin_neon_vluti2_lane_f16:
13517
+ case NEON::BI__builtin_neon_vluti2_lane_p16:
13518
+ case NEON::BI__builtin_neon_vluti2_lane_p8:
13519
+ case NEON::BI__builtin_neon_vluti2_lane_s16:
13520
+ case NEON::BI__builtin_neon_vluti2_lane_s8:
13521
+ case NEON::BI__builtin_neon_vluti2_lane_u16:
13522
+ case NEON::BI__builtin_neon_vluti2_lane_u8: {
13523
+ Int = Intrinsic::aarch64_neon_vluti2_lane;
13524
+ llvm::Type *Tys[2];
13525
+ Tys[0] = Ty;
13526
+ Tys[1] = GetNeonType(this, NeonTypeFlags(Type.getEltType(), false,
13527
+ /*isQuad*/ false));
13528
+ return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vluti2_lane");
13529
+ }
13530
+ case NEON::BI__builtin_neon_vluti2q_lane_bf16:
13531
+ case NEON::BI__builtin_neon_vluti2q_lane_f16:
13532
+ case NEON::BI__builtin_neon_vluti2q_lane_p16:
13533
+ case NEON::BI__builtin_neon_vluti2q_lane_p8:
13534
+ case NEON::BI__builtin_neon_vluti2q_lane_s16:
13535
+ case NEON::BI__builtin_neon_vluti2q_lane_s8:
13536
+ case NEON::BI__builtin_neon_vluti2q_lane_u16:
13537
+ case NEON::BI__builtin_neon_vluti2q_lane_u8: {
13538
+ Int = Intrinsic::aarch64_neon_vluti2_lane;
13539
+ llvm::Type *Tys[2];
13540
+ Tys[0] = Ty;
13541
+ Tys[1] = GetNeonType(this, NeonTypeFlags(Type.getEltType(), false,
13542
+ /*isQuad*/ true));
13543
+ return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vluti2_lane");
13544
+ }
13545
+ case NEON::BI__builtin_neon_vluti4q_lane_p8:
13546
+ case NEON::BI__builtin_neon_vluti4q_lane_s8:
13547
+ case NEON::BI__builtin_neon_vluti4q_lane_u8: {
13548
+ Int = Intrinsic::aarch64_neon_vluti4q_lane;
13549
+ return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vluti4q_lane");
13550
+ }
13551
+ case NEON::BI__builtin_neon_vluti4q_laneq_p8:
13552
+ case NEON::BI__builtin_neon_vluti4q_laneq_s8:
13553
+ case NEON::BI__builtin_neon_vluti4q_laneq_u8: {
13554
+ Int = Intrinsic::aarch64_neon_vluti4q_laneq;
13555
+ return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vluti4q_laneq");
13556
+ }
13557
+ case NEON::BI__builtin_neon_vluti4q_lane_bf16_x2:
13558
+ case NEON::BI__builtin_neon_vluti4q_lane_f16_x2:
13559
+ case NEON::BI__builtin_neon_vluti4q_lane_p16_x2:
13560
+ case NEON::BI__builtin_neon_vluti4q_lane_s16_x2:
13561
+ case NEON::BI__builtin_neon_vluti4q_lane_u16_x2: {
13562
+ Int = Intrinsic::aarch64_neon_vluti4q_lane_x2;
13563
+ return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vluti4q_lane_x2");
13564
+ }
13565
+ case NEON::BI__builtin_neon_vluti4q_laneq_bf16_x2:
13566
+ case NEON::BI__builtin_neon_vluti4q_laneq_f16_x2:
13567
+ case NEON::BI__builtin_neon_vluti4q_laneq_p16_x2:
13568
+ case NEON::BI__builtin_neon_vluti4q_laneq_s16_x2:
13569
+ case NEON::BI__builtin_neon_vluti4q_laneq_u16_x2: {
13570
+ Int = Intrinsic::aarch64_neon_vluti4q_laneq_x2;
13571
+ return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vluti4q_laneq_x2");
13572
+ }
13484
13573
}
13485
13574
}
13486
13575
0 commit comments