; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2 < %s 2>%t | FileCheck %s ; RUN: FileCheck --check-prefix=WARN --allow-empty %s <%t ; If this check fails please read test/CodeGen/AArch64/README for instructions on how to resolve it. ; WARN-NOT: warning ; ; FMLALB (Vectors) ; define @fmlalb_h( %a, %b, %c) { ; CHECK-LABEL: fmlalb_h: ; CHECK: fmlalb z0.s, z1.h, z2.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlalb.nxv4f32( %a, %b, %c) ret %out } ; ; FMLALB (Indexed) ; define @fmlalb_lane_h( %a, %b, %c) { ; CHECK-LABEL: fmlalb_lane_h: ; CHECK: fmlalb z0.s, z1.h, z2.h[0] ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlalb.lane.nxv4f32( %a, %b, %c, i32 0) ret %out } ; ; FMLALT (Vectors) ; define @fmlalt_h( %a, %b, %c) { ; CHECK-LABEL: fmlalt_h: ; CHECK: fmlalt z0.s, z1.h, z2.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlalt.nxv4f32( %a, %b, %c) ret %out } ; ; FMLALT (Indexed) ; define @fmlalt_lane_h( %a, %b, %c) { ; CHECK-LABEL: fmlalt_lane_h: ; CHECK: fmlalt z0.s, z1.h, z2.h[1] ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlalt.lane.nxv4f32( %a, %b, %c, i32 1) ret %out } ; ; FMLSLB (Vectors) ; define @fmlslb_h( %a, %b, %c) { ; CHECK-LABEL: fmlslb_h: ; CHECK: fmlslb z0.s, z1.h, z2.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlslb.nxv4f32( %a, %b, %c) ret %out } ; ; FMLSLB (Indexed) ; define @fmlslb_lane_h( %a, %b, %c) { ; CHECK-LABEL: fmlslb_lane_h: ; CHECK: fmlslb z0.s, z1.h, z2.h[2] ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlslb.lane.nxv4f32( %a, %b, %c, i32 2) ret %out } ; ; FMLSLT (Vectors) ; define @fmlslt_h( %a, %b, %c) { ; CHECK-LABEL: fmlslt_h: ; CHECK: fmlslt z0.s, z1.h, z2.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlslt.nxv4f32( %a, %b, %c) ret %out } ; ; FMLSLT (Indexed) ; define @fmlslt_lane_h( %a, %b, %c) { ; CHECK-LABEL: fmlslt_lane_h: ; CHECK: fmlslt z0.s, z1.h, z2.h[3] ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.fmlslt.lane.nxv4f32( %a, %b, %c, i32 3) ret %out } declare @llvm.aarch64.sve.fmlalb.nxv4f32(, , ) declare @llvm.aarch64.sve.fmlalb.lane.nxv4f32(, , , i32) declare @llvm.aarch64.sve.fmlalt.nxv4f32(, , ) declare @llvm.aarch64.sve.fmlalt.lane.nxv4f32(, , , i32) declare @llvm.aarch64.sve.fmlslb.nxv4f32(, , ) declare @llvm.aarch64.sve.fmlslb.lane.nxv4f32(, , , i32) declare @llvm.aarch64.sve.fmlslt.nxv4f32(, , ) declare @llvm.aarch64.sve.fmlslt.lane.nxv4f32(, , , i32)