Index: clang/include/clang/Basic/arm_sve.td =================================================================== --- clang/include/clang/Basic/arm_sve.td +++ clang/include/clang/Basic/arm_sve.td @@ -537,9 +537,9 @@ def SVBFDOT_N : SInst<"svbfdot[_n_{0}]", "MMda", "b", MergeNone, "aarch64_sve_bfdot", [IsOverloadNone]>; def SVBFMLAL_N : SInst<"svbfmlalb[_n_{0}]", "MMda", "b", MergeNone, "aarch64_sve_bfmlalb", [IsOverloadNone]>; def SVBFMLALT_N : SInst<"svbfmlalt[_n_{0}]", "MMda", "b", MergeNone, "aarch64_sve_bfmlalt", [IsOverloadNone]>; - def SVBFDOT_LANE : SInst<"svbfdot_lane[_{0}]", "MMddn", "b", MergeNone, "aarch64_sve_bfdot_lane", [IsOverloadNone], [ImmCheck<3, ImmCheck0_3>]>; - def SVBFMLALB_LANE : SInst<"svbfmlalb_lane[_{0}]", "MMddn", "b", MergeNone, "aarch64_sve_bfmlalb_lane", [IsOverloadNone], [ImmCheck<3, ImmCheck0_7>]>; - def SVBFMLALT_LANE : SInst<"svbfmlalt_lane[_{0}]", "MMddn", "b", MergeNone, "aarch64_sve_bfmlalt_lane", [IsOverloadNone], [ImmCheck<3, ImmCheck0_7>]>; + def SVBFDOT_LANE : SInst<"svbfdot_lane[_{0}]", "MMddi", "b", MergeNone, "aarch64_sve_bfdot_lane_i32", [IsOverloadNone], [ImmCheck<3, ImmCheck0_3>]>; + def SVBFMLALB_LANE : SInst<"svbfmlalb_lane[_{0}]", "MMddi", "b", MergeNone, "aarch64_sve_bfmlalb_lane_i32", [IsOverloadNone], [ImmCheck<3, ImmCheck0_7>]>; + def SVBFMLALT_LANE : SInst<"svbfmlalt_lane[_{0}]", "MMddi", "b", MergeNone, "aarch64_sve_bfmlalt_lane_i32", [IsOverloadNone], [ImmCheck<3, ImmCheck0_7>]>; } //////////////////////////////////////////////////////////////////////////////// Index: clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c =================================================================== --- clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c +++ clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfdot.c @@ -31,12 +31,12 @@ // CHECK-LABEL: @test_bfdot_lane_0_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z21test_bfdot_lane_0_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfdot_lane_0_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { @@ -45,12 +45,12 @@ // CHECK-LABEL: @test_bfdot_lane_3_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 3) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 3) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z21test_bfdot_lane_3_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 3) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfdot.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 3) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfdot_lane_3_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { Index: clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c =================================================================== --- clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c +++ clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalb.c @@ -31,12 +31,12 @@ // CHECK-LABEL: @test_bfmlalb_lane_0_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z23test_bfmlalb_lane_0_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfmlalb_lane_0_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { @@ -45,12 +45,12 @@ // CHECK-LABEL: @test_bfmlalb_lane_7_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 7) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 7) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z23test_bfmlalb_lane_7_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 7) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalb.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 7) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfmlalb_lane_7_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { Index: clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c =================================================================== --- clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c +++ clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bfmlalt.c @@ -31,12 +31,12 @@ // CHECK-LABEL: @test_bfmlalt_lane_0_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z23test_bfmlalt_lane_0_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 0) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 0) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfmlalt_lane_0_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { @@ -45,12 +45,12 @@ // CHECK-LABEL: @test_bfmlalt_lane_7_f32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 7) +// CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 7) // CHECK-NEXT: ret [[TMP0]] // // CPP-CHECK-LABEL: @_Z23test_bfmlalt_lane_7_f32u13__SVFloat32_tu14__SVBFloat16_tu14__SVBFloat16_t( // CPP-CHECK-NEXT: entry: -// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i64 7) +// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call @llvm.aarch64.sve.bfmlalt.lane.i32( [[X:%.*]], [[Y:%.*]], [[Z:%.*]], i32 7) // CPP-CHECK-NEXT: ret [[TMP0]] // svfloat32_t test_bfmlalt_lane_7_f32(svfloat32_t x, svbfloat16_t y, svbfloat16_t z) { Index: llvm/include/llvm/IR/IntrinsicsAArch64.td =================================================================== --- llvm/include/llvm/IR/IntrinsicsAArch64.td +++ llvm/include/llvm/IR/IntrinsicsAArch64.td @@ -1519,6 +1519,11 @@ [llvm_nxv4f32_ty, llvm_nxv8bf16_ty, llvm_nxv8bf16_ty, llvm_i64_ty], [IntrNoMem, ImmArg>]>; +class SVE_4Vec_BF16_Indexed_I32 + : DefaultAttrsIntrinsic<[llvm_nxv4f32_ty], + [llvm_nxv4f32_ty, llvm_nxv8bf16_ty, llvm_nxv8bf16_ty, llvm_i32_ty], + [IntrNoMem, ImmArg>]>; + // // Loads // @@ -2519,9 +2524,12 @@ def int_aarch64_sve_bfmmla : SVE_4Vec_BF16; -def int_aarch64_sve_bfdot_lane : SVE_4Vec_BF16_Indexed; -def int_aarch64_sve_bfmlalb_lane : SVE_4Vec_BF16_Indexed; -def int_aarch64_sve_bfmlalt_lane : SVE_4Vec_BF16_Indexed; +def int_aarch64_sve_bfdot_lane : SVE_4Vec_BF16_Indexed; +def int_aarch64_sve_bfdot_lane_i32 : SVE_4Vec_BF16_Indexed_I32; +def int_aarch64_sve_bfmlalb_lane : SVE_4Vec_BF16_Indexed; +def int_aarch64_sve_bfmlalb_lane_i32 : SVE_4Vec_BF16_Indexed_I32; +def int_aarch64_sve_bfmlalt_lane : SVE_4Vec_BF16_Indexed; +def int_aarch64_sve_bfmlalt_lane_i32 : SVE_4Vec_BF16_Indexed_I32; } // Index: llvm/lib/IR/AutoUpgrade.cpp =================================================================== --- llvm/lib/IR/AutoUpgrade.cpp +++ llvm/lib/IR/AutoUpgrade.cpp @@ -605,6 +605,11 @@ F->arg_begin()->getType()); return true; } + if (Name == "aarch64.sve.bfdot.lane") { + NewFn = Intrinsic::getDeclaration(F->getParent(), + Intrinsic::aarch64_sve_bfdot_lane_i32); + return true; + } static const Regex LdRegex("^aarch64\\.sve\\.ld[234](.nxv[a-z0-9]+|$)"); if (LdRegex.match(Name)) { Type *ScalarTy = @@ -3955,6 +3960,14 @@ NewCall = Builder.CreateCall(NewFn, Args); break; } + case Intrinsic::aarch64_sve_bfdot_lane: { + LLVMContext &Ctx = F->getParent()->getContext(); + SmallVector Args(CI->args()); + Args[4] = ConstantInt::get(Type::getInt32Ty(Ctx), + cast(Args[4])->getZExtValue()); + NewCall = Builder.CreateCall(NewFn, Args); + break; + } case Intrinsic::aarch64_sve_ld3_sret: case Intrinsic::aarch64_sve_ld4_sret: case Intrinsic::aarch64_sve_ld2_sret: { Index: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td =================================================================== --- llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td +++ llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td @@ -2159,8 +2159,8 @@ } // End HasSVEorSME let Predicates = [HasBF16, HasSVEorSME] in { - defm BFDOT_ZZZ : sve_bfloat_dot<"bfdot", int_aarch64_sve_bfdot>; - defm BFDOT_ZZI : sve_bfloat_dot_indexed<"bfdot", int_aarch64_sve_bfdot_lane>; + defm BFDOT_ZZZ : sve_float_dot<0b1, "bfdot", nxv8bf16, int_aarch64_sve_bfdot>; + defm BFDOT_ZZI : sve_float_dot_indexed<0b1, "bfdot", nxv8bf16, int_aarch64_sve_bfdot_lane_i32>; } // End HasBF16, HasSVEorSME let Predicates = [HasBF16, HasSVE] in { @@ -2170,8 +2170,8 @@ let Predicates = [HasBF16, HasSVEorSME] in { defm BFMLALB_ZZZ : sve_bfloat_matmul_longvecl<0b0, 0b0, "bfmlalb", int_aarch64_sve_bfmlalb>; defm BFMLALT_ZZZ : sve_bfloat_matmul_longvecl<0b1, 0b0, "bfmlalt", int_aarch64_sve_bfmlalt>; - defm BFMLALB_ZZZI : sve_bfloat_matmul_longvecl_idx<0b0, 0b0, "bfmlalb", int_aarch64_sve_bfmlalb_lane>; - defm BFMLALT_ZZZI : sve_bfloat_matmul_longvecl_idx<0b1, 0b0, "bfmlalt", int_aarch64_sve_bfmlalt_lane>; + defm BFMLALB_ZZZI : sve_bfloat_matmul_longvecl_idx<0b0, 0b0, "bfmlalb", int_aarch64_sve_bfmlalb_lane_i32>; + defm BFMLALT_ZZZI : sve_bfloat_matmul_longvecl_idx<0b1, 0b0, "bfmlalt", int_aarch64_sve_bfmlalt_lane_i32>; defm BFCVT_ZPmZ : sve_bfloat_convert<0b1, "bfcvt", int_aarch64_sve_fcvt_bf16f32>; defm BFCVTNT_ZPmZ : sve_bfloat_convert<0b0, "bfcvtnt", int_aarch64_sve_fcvtnt_bf16f32>; } // End HasBF16, HasSVEorSME Index: llvm/lib/Target/AArch64/SVEInstrFormats.td =================================================================== --- llvm/lib/Target/AArch64/SVEInstrFormats.td +++ llvm/lib/Target/AArch64/SVEInstrFormats.td @@ -8315,13 +8315,13 @@ let DestructiveInstType = DestructiveOther; } -multiclass sve_bfloat_dot { - def NAME : sve_float_dot<0b1, asm>; - def : SVE_3_Op_Pat(NAME)>; +multiclass sve_float_dot { + def NAME : sve_float_dot; + def : SVE_3_Op_Pat(NAME)>; } class sve_float_dot_indexed -: I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexS:$iop), +: I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexS32b:$iop), asm, "\t$Zda, $Zn, $Zm$iop", "", []>, Sched<[]> { bits<5> Zda; bits<5> Zn; @@ -8340,9 +8340,9 @@ let DestructiveInstType = DestructiveOther; } -multiclass sve_bfloat_dot_indexed { - def NAME : sve_float_dot_indexed<0b1, asm>; - def : SVE_4_Op_Imm_Pat(NAME)>; +multiclass sve_float_dot_indexed { + def NAME : sve_float_dot_indexed; + def : SVE_4_Op_Imm_Pat(NAME)>; } class sve_bfloat_matmul @@ -8381,7 +8381,7 @@ } class sve_bfloat_matmul_longvecl_idx -: I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexH:$iop), +: I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexH32b:$iop), asm, "\t$Zda, $Zn, $Zm$iop", "", []>, Sched<[]> { bits<5> Zda; bits<5> Zn; @@ -8405,7 +8405,7 @@ multiclass sve_bfloat_matmul_longvecl_idx { def NAME : sve_bfloat_matmul_longvecl_idx; - def : SVE_4_Op_Imm_Pat(NAME)>; + def : SVE_4_Op_Imm_Pat(NAME)>; } class sve_bfloat_convert @@ -8782,7 +8782,7 @@ // SVE two-way dot product (indexed) class sve2p1_two_way_dot_vvi - : I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexS:$i2), + : I<(outs ZPR32:$Zda), (ins ZPR32:$_Zda, ZPR16:$Zn, ZPR3b16:$Zm, VectorIndexS32b:$i2), mnemonic, "\t$Zda, $Zn, $Zm$i2", "", []>, Sched<[]> { bits<5> Zda; Index: llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll =================================================================== --- llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll +++ llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll @@ -19,7 +19,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfdot z0.s, z1.h, z2.h[0] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfdot.lane( %a, %b, %c, i64 0) + %out = call @llvm.aarch64.sve.bfdot.lane.i32( %a, %b, %c, i32 0) ret %out } @@ -28,7 +28,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfdot z0.s, z1.h, z2.h[1] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfdot.lane( %a, %b, %c, i64 1) + %out = call @llvm.aarch64.sve.bfdot.lane.i32( %a, %b, %c, i32 1) ret %out } @@ -37,7 +37,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfdot z0.s, z1.h, z2.h[2] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfdot.lane( %a, %b, %c, i64 2) + %out = call @llvm.aarch64.sve.bfdot.lane.i32( %a, %b, %c, i32 2) ret %out } @@ -46,7 +46,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfdot z0.s, z1.h, z2.h[3] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfdot.lane( %a, %b, %c, i64 3) + %out = call @llvm.aarch64.sve.bfdot.lane.i32( %a, %b, %c, i32 3) ret %out } @@ -68,7 +68,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[0] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 0) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 0) ret %out } @@ -77,7 +77,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[1] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 1) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 1) ret %out } @@ -86,7 +86,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[2] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 2) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 2) ret %out } @@ -95,7 +95,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[3] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 3) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 3) ret %out } @@ -104,7 +104,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[4] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 4) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 4) ret %out } @@ -113,7 +113,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[5] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 5) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 5) ret %out } @@ -122,7 +122,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[6] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 6) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 6) ret %out } @@ -131,7 +131,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalb z0.s, z1.h, z2.h[7] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalb.lane( %a, %b, %c, i64 7) + %out = call @llvm.aarch64.sve.bfmlalb.lane.i32( %a, %b, %c, i32 7) ret %out } @@ -153,7 +153,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[0] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 0) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 0) ret %out } @@ -162,7 +162,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[1] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 1) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 1) ret %out } @@ -171,7 +171,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[2] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 2) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 2) ret %out } @@ -180,7 +180,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[3] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 3) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 3) ret %out } @@ -189,7 +189,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[4] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 4) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 4) ret %out } @@ -198,7 +198,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[5] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 5) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 5) ret %out } @@ -207,7 +207,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[6] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 6) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 6) ret %out } @@ -216,7 +216,7 @@ ; CHECK: // %bb.0: ; CHECK-NEXT: bfmlalt z0.s, z1.h, z2.h[7] ; CHECK-NEXT: ret - %out = call @llvm.aarch64.sve.bfmlalt.lane( %a, %b, %c, i64 7) + %out = call @llvm.aarch64.sve.bfmlalt.lane.i32( %a, %b, %c, i32 7) ret %out } @@ -260,11 +260,11 @@ } declare @llvm.aarch64.sve.bfdot(, , ) -declare @llvm.aarch64.sve.bfdot.lane(, , , i64) +declare @llvm.aarch64.sve.bfdot.lane.i32(, , , i32) declare @llvm.aarch64.sve.bfmlalb(, , ) -declare @llvm.aarch64.sve.bfmlalb.lane(, , , i64) +declare @llvm.aarch64.sve.bfmlalb.lane.i32(, , , i32) declare @llvm.aarch64.sve.bfmlalt(, , ) -declare @llvm.aarch64.sve.bfmlalt.lane(, , , i64) +declare @llvm.aarch64.sve.bfmlalt.lane.i32(, , , i32) declare @llvm.aarch64.sve.bfmmla(, , ) declare @llvm.aarch64.sve.fcvt.bf16f32(, , ) declare @llvm.aarch64.sve.fcvtnt.bf16f32(, , )