; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2 -mattr=+use-experimental-zeroing-pseudos < %s | FileCheck %s ; ; FLOGB ; ; NOTE: The %unused paramter ensures z0 is free, leading to a simpler test. define @flogb_f16( %unused, %pg, %a) { ; CHECK-LABEL: flogb_f16: ; CHECK: // %bb.0: ; CHECK-NEXT: movprfx z0.h, p0/z, z1.h ; CHECK-NEXT: flogb z0.h, p0/m, z1.h ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.flogb.nxv8f16( zeroinitializer, %pg, %a) ret %out } define @flogb_f32( %unused, %pg, %a) { ; CHECK-LABEL: flogb_f32: ; CHECK: // %bb.0: ; CHECK-NEXT: movprfx z0.s, p0/z, z1.s ; CHECK-NEXT: flogb z0.s, p0/m, z1.s ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.flogb.nxv4f32( zeroinitializer, %pg, %a) ret %out } define @flogb_f64( %unused, %pg, %a) { ; CHECK-LABEL: flogb_f64: ; CHECK: // %bb.0: ; CHECK-NEXT: movprfx z0.d, p0/z, z1.d ; CHECK-NEXT: flogb z0.d, p0/m, z1.d ; CHECK-NEXT: ret %out = call @llvm.aarch64.sve.flogb.nxv2f64( zeroinitializer, %pg, %a) ret %out } declare @llvm.aarch64.sve.flogb.nxv8f16(, , ) declare @llvm.aarch64.sve.flogb.nxv4f32(, , ) declare @llvm.aarch64.sve.flogb.nxv2f64(, , )