; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; RUN: llc -mattr=+sve2,+fp8dot2,+fp8dot4 < %s | FileCheck %s ; RUN: llc -mattr=+sme,+ssve-fp8dot2,+ssve-fp8dot4 --force-streaming < %s | FileCheck %s target triple = "aarch64-linux" define @fdot_4way( %a, %s1, %s2) { ; CHECK-LABEL: fdot_4way: ; CHECK: // %bb.0: ; CHECK-NEXT: fdot z0.s, z1.b, z2.b ; CHECK-NEXT: ret %r = call @llvm.aarch64.sve.fp8.fdot.nxv4f32( %a, %s1, %s2) ret %r } define @fdot_2way( %a, %s1, %s2) { ; CHECK-LABEL: fdot_2way: ; CHECK: // %bb.0: ; CHECK-NEXT: fdot z0.h, z1.b, z2.b ; CHECK-NEXT: ret %r = call @llvm.aarch64.sve.fp8.fdot.nxv8f16( %a, %s1, %s2) ret %r } define @fdot_4way_lane( %a, %s1, %s2) { ; CHECK-LABEL: fdot_4way_lane: ; CHECK: // %bb.0: ; CHECK-NEXT: fdot z0.s, z1.b, z2.b[3] ; CHECK-NEXT: ret %r = call @llvm.aarch64.sve.fp8.fdot.lane.nxv4f32( %a, %s1, %s2, i32 3) ret %r } define @fdot_2way_lane( %a, %s1, %s2) { ; CHECK-LABEL: fdot_2way_lane: ; CHECK: // %bb.0: ; CHECK-NEXT: fdot z0.h, z1.b, z2.b[5] ; CHECK-NEXT: ret %r = call @llvm.aarch64.sve.fp8.fdot.lane.nxv8f16( %a, %s1, %s2, i32 5) ret %r }