; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64 -mattr=+sve2 %s | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" define void @casts() { ; CHECK-LABEL: 'casts' ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of RThru:6 CodeSize:5 Lat:6 SizeLat:5 for: %v2f32s64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64s1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64u1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64s8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64u8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64s16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64u16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64s32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64u32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64s64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f64u64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of RThru:10 CodeSize:9 Lat:10 SizeLat:9 for: %v4f32s64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f32u64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64s1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64u1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64s8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64u8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64s16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64u16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64s32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64u32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64s64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v4f64u64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of RThru:20 CodeSize:18 Lat:20 SizeLat:18 for: %v8f32s64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f32u64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64s1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64u1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64s8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64u8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64s16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64u16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64s32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64u32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64s64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v8f64u64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of RThru:40 CodeSize:36 Lat:40 SizeLat:36 for: %v16f32s64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f32u64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64s1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64u1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64s8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64u8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64s16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64u16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64s32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64u32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64s64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of 24 for: %v16f64u64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v2f32s1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) %v2f32u1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) %v2f32s8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) %v2f32u8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) %v2f32s16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) %v2f32u16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) %v2f32s32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) %v2f32u32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) %v2f32s64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) %v2f32u64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) %v2f64s1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) %v2f64u1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) %v2f64s8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) %v2f64u8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) %v2f64s16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) %v2f64u16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) %v2f64s32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) %v2f64u32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) %v2f64s64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) %v2f64u64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) %v4f32s1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) %v4f32u1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) %v4f32s8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) %v4f32u8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) %v4f32s16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) %v4f32u16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) %v4f32s32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) %v4f32u32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) %v4f32s64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) %v4f32u64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) %v4f64s1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) %v4f64u1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) %v4f64s8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) %v4f64u8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) %v4f64s16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) %v4f64u16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) %v4f64s32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) %v4f64u32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) %v4f64s64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) %v4f64u64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) %v8f32s1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) %v8f32u1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) %v8f32s8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) %v8f32u8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) %v8f32s16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) %v8f32u16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) %v8f32s32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) %v8f32u32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) %v8f32s64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) %v8f32u64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) %v8f64s1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) %v8f64u1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) %v8f64s8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) %v8f64u8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) %v8f64s16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) %v8f64u16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) %v8f64s32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) %v8f64u32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) %v8f64s64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) %v8f64u64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) %v16f32s1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) %v16f32u1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) %v16f32s8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) %v16f32u8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) %v16f32s16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) %v16f32u16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) %v16f32s32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) %v16f32u32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) %v16f32s64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) %v16f32u64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) %v16f64s1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) %v16f64u1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) %v16f64s8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) %v16f64u8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) %v16f64s16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) %v16f64u16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) %v16f64s32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) %v16f64u32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) %v16f64s64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) %v16f64u64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) ret void }