From 9253fc638e0efbf47f10225cd9a081afe6d08cf5 Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Tue, 10 Jun 2025 20:43:46 -0700 Subject: [PATCH 1/5] Precommit test case. --- .../test/Analysis/CostModel/RISCV/cast-sat.ll | 583 ++++++++++++++++++ 1 file changed, 583 insertions(+) create mode 100644 llvm/test/Analysis/CostModel/RISCV/cast-sat.ll diff --git a/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll new file mode 100644 index 0000000000000..41eea7fcf4283 --- /dev/null +++ b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll @@ -0,0 +1,583 @@ +; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 5 +; RUN: opt < %s -mtriple=riscv64 -mattr=+zve32f,+zvl128b,+f,+d,+zfh,+zvfh -passes="print" -cost-kind=throughput 2>&1 -disable-output | FileCheck %s --check-prefixes=CHECK,RV64ZVE32F +; RUN: opt < %s -mtriple=riscv64 -mattr=+v,+zvl128b,+f,+d,+zfh,+zvfh -passes="print" -cost-kind=throughput 2>&1 -disable-output | FileCheck %s --check-prefixes=CHECK,RV64V + +define void @fptoui_sat() { +; RV64ZVE32F-LABEL: 'fptoui_sat' +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; RV64V-LABEL: 'fptoui_sat' +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; + %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) + %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) + %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) + %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) + %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) + %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) + %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) + %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) + %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) + %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) + + %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) + %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) + %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) + %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) + %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) + %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) + %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) + %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) + %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) + %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) + + %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) + %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) + %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) + %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) + %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) + %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) + %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) + %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) + %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) + %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) + + %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) + %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) + %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) + %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) + %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) + %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) + %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) + %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) + %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) + %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) + + %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) + %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) + %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) + %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) + %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) + %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) + %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) + %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) + %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) + %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) + + %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) + %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) + %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) + %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) + %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) + %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) + %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) + %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) + %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) + %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) + + %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) + %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) + %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) + %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) + %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) + %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) + %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) + %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) + %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) + %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) + + %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) + %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) + %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) + %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) + %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) + %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) + %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) + %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) + %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) + %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) + + %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) + %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) + %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) + %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) + %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) + %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) + %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) + %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) + %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) + %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) + + ret void +} + +define void @fptosi_sat() { +; RV64ZVE32F-LABEL: 'fptosi_sat' +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; RV64V-LABEL: 'fptosi_sat' +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; + %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) + %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) + %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) + %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) + %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) + %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) + %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) + %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) + %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) + %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) + + %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) + %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) + %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) + %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) + %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) + %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) + %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) + %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) + %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) + %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) + + %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) + %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) + %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) + %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) + %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) + %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) + %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) + %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) + %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) + %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) + + %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) + %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) + %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) + %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) + %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) + %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) + %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) + %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) + %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) + %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) + + %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) + %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) + %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) + %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) + %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) + %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) + %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) + %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) + %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) + %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) + + %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) + %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) + %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) + %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) + %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) + %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) + %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) + %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) + %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) + %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) + + %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) + %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) + %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) + %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) + %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) + %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) + %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) + %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) + %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) + %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) + + %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) + %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) + %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) + %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) + %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) + %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) + %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) + %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) + %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) + %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) + + %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) + %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) + %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) + %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) + %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) + %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) + %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) + %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) + %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) + %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) + + ret void +} +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK: {{.*}} From 6b8397d6a3ca1f1f0b0aebfd88d706f6d5c4749e Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Tue, 8 Jul 2025 22:24:45 -0700 Subject: [PATCH 2/5] [TTI] Check type legalization of both src and result for fpto{u|s}i.sat. For the cast instructions such ass fptoui.sat, fptosi.sat, need to check both type of the source and the result type can be lowering legally. If one of them is invalid, return invalid cost. --- llvm/include/llvm/CodeGen/BasicTTIImpl.h | 12 ++- .../test/Analysis/CostModel/RISCV/cast-sat.ll | 80 +++++++++---------- 2 files changed, 48 insertions(+), 44 deletions(-) diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 2b9be43eadb7a..079a405be3eba 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -2486,11 +2486,15 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { ISD = ISD::UMULO; break; case Intrinsic::fptosi_sat: - ISD = ISD::FP_TO_SINT_SAT; - break; - case Intrinsic::fptoui_sat: - ISD = ISD::FP_TO_UINT_SAT; + case Intrinsic::fptoui_sat: { + std::pair SrcLT = getTypeLegalizationCost(Tys[0]); + std::pair RetLT = getTypeLegalizationCost(RetTy); + if (!SrcLT.first.isValid() || !RetLT.first.isValid()) + return InstructionCost::getInvalid(); + ISD = IID == Intrinsic::fptosi_sat ? ISD::FP_TO_SINT_SAT + : ISD::FP_TO_UINT_SAT; break; + } case Intrinsic::ctpop: ISD = ISD::CTPOP; // In case of legalization use TCC_Expensive. This is cheaper than a diff --git a/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll index 41eea7fcf4283..2306d51c89118 100644 --- a/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll +++ b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll @@ -45,55 +45,55 @@ define void @fptoui_sat() { ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; RV64V-LABEL: 'fptoui_sat' @@ -334,55 +334,55 @@ define void @fptosi_sat() { ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) ; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; RV64V-LABEL: 'fptosi_sat' From 31815b2c3a60682a90f58bbbb005c63ed103907a Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Tue, 8 Jul 2025 23:46:42 -0700 Subject: [PATCH 3/5] fixup undef value. --- .../test/Analysis/CostModel/RISCV/cast-sat.ll | 1080 ++++++++--------- 1 file changed, 540 insertions(+), 540 deletions(-) diff --git a/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll index 2306d51c89118..8b870d3cf77bd 100644 --- a/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll +++ b/llvm/test/Analysis/CostModel/RISCV/cast-sat.ll @@ -4,578 +4,578 @@ define void @fptoui_sat() { ; RV64ZVE32F-LABEL: 'fptoui_sat' -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( poison) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; RV64V-LABEL: 'fptoui_sat' -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( poison) ; RV64V-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; - %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> undef) - %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> undef) - %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> undef) - %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> undef) - %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> undef) - %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> undef) - %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> undef) - %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> undef) - %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> undef) - %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> undef) + %v1f32_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f32(<1 x float> poison) + %v1f64_v1i8 = call <1 x i8> @llvm.fptoui.sat.v1i8.v1f64(<1 x double> poison) + %v1f32_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f32(<1 x float> poison) + %v1f64_v1i16 = call <1 x i16> @llvm.fptoui.sat.v1i16.v1f64(<1 x double> poison) + %v1f32_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f32(<1 x float> poison) + %v1f64_v1i32 = call <1 x i32> @llvm.fptoui.sat.v1i32.v1f64(<1 x double> poison) + %v1f32_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f32(<1 x float> poison) + %v1f64_v1i64 = call <1 x i64> @llvm.fptoui.sat.v1i64.v1f64(<1 x double> poison) + %v1f32_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f32(<1 x float> poison) + %v1f64_v1i1 = call <1 x i1> @llvm.fptoui.sat.v1i1.v1f64(<1 x double> poison) - %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef) - %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef) - %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef) - %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef) - %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef) - %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef) - %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef) - %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef) - %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef) - %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef) + %v2f32_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> poison) + %v2f64_v2i8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> poison) + %v2f32_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> poison) + %v2f64_v2i16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> poison) + %v2f32_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> poison) + %v2f64_v2i32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> poison) + %v2f32_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> poison) + %v2f64_v2i64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> poison) + %v2f32_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> poison) + %v2f64_v2i1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> poison) - %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef) - %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef) - %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef) - %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef) - %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef) - %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef) - %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef) - %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef) - %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef) - %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef) + %v4f32_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> poison) + %v4f64_v4i8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> poison) + %v4f32_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> poison) + %v4f64_v4i16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> poison) + %v4f32_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> poison) + %v4f64_v4i32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> poison) + %v4f32_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> poison) + %v4f64_v4i64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> poison) + %v4f32_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> poison) + %v4f64_v4i1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> poison) - %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef) - %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef) - %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef) - %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef) - %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef) - %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef) - %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef) - %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef) - %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef) - %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef) + %v8f32_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> poison) + %v8f64_v8i8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> poison) + %v8f32_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> poison) + %v8f64_v8i16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> poison) + %v8f32_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> poison) + %v8f64_v8i32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> poison) + %v8f32_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> poison) + %v8f64_v8i64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> poison) + %v8f32_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> poison) + %v8f64_v8i1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> poison) - %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( undef) - %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( undef) - %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( undef) - %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( undef) - %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( undef) - %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( undef) - %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( undef) - %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( undef) - %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( undef) - %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( undef) + %nxv1f32_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f32( poison) + %nxv1f64_nxv1i8 = call @llvm.fptoui.sat.nxv1i8.nxv1f64( poison) + %nxv1f32_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f32( poison) + %nxv1f64_nxv1i16 = call @llvm.fptoui.sat.nxv1i16.nxv1f64( poison) + %nxv1f32_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f32( poison) + %nxv1f64_nxv1i32 = call @llvm.fptoui.sat.nxv1i32.nxv1f64( poison) + %nxv1f32_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f32( poison) + %nxv1f64_nxv1i64 = call @llvm.fptoui.sat.nxv1i64.nxv1f64( poison) + %nxv1f32_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f32( poison) + %nxv1f64_nxv1i1 = call @llvm.fptoui.sat.nxv1i1.nxv1f64( poison) - %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( undef) - %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( undef) - %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( undef) - %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( undef) - %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( undef) - %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( undef) - %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( undef) - %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( undef) - %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( undef) - %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( undef) + %nxv2f32_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f32( poison) + %nxv2f64_nxv2i8 = call @llvm.fptoui.sat.nxv2i8.nxv2f64( poison) + %nxv2f32_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f32( poison) + %nxv2f64_nxv2i16 = call @llvm.fptoui.sat.nxv2i16.nxv2f64( poison) + %nxv2f32_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f32( poison) + %nxv2f64_nxv2i32 = call @llvm.fptoui.sat.nxv2i32.nxv2f64( poison) + %nxv2f32_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f32( poison) + %nxv2f64_nxv2i64 = call @llvm.fptoui.sat.nxv2i64.nxv2f64( poison) + %nxv2f32_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f32( poison) + %nxv2f64_nxv2i1 = call @llvm.fptoui.sat.nxv2i1.nxv2f64( poison) - %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( undef) - %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( undef) - %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( undef) - %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( undef) - %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( undef) - %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( undef) - %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( undef) - %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( undef) - %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( undef) - %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( undef) + %nxv4f32_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f32( poison) + %nxv4f64_nxv4i8 = call @llvm.fptoui.sat.nxv4i8.nxv4f64( poison) + %nxv4f32_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f32( poison) + %nxv4f64_nxv4i16 = call @llvm.fptoui.sat.nxv4i16.nxv4f64( poison) + %nxv4f32_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f32( poison) + %nxv4f64_nxv4i32 = call @llvm.fptoui.sat.nxv4i32.nxv4f64( poison) + %nxv4f32_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f32( poison) + %nxv4f64_nxv4i64 = call @llvm.fptoui.sat.nxv4i64.nxv4f64( poison) + %nxv4f32_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f32( poison) + %nxv4f64_nxv4i1 = call @llvm.fptoui.sat.nxv4i1.nxv4f64( poison) - %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( undef) - %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( undef) - %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( undef) - %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( undef) - %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( undef) - %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( undef) - %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( undef) - %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( undef) - %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( undef) - %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( undef) + %nxv8f32_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f32( poison) + %nxv8f64_nxv8i8 = call @llvm.fptoui.sat.nxv8i8.nxv8f64( poison) + %nxv8f32_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f32( poison) + %nxv8f64_nxv8i16 = call @llvm.fptoui.sat.nxv8i16.nxv8f64( poison) + %nxv8f32_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f32( poison) + %nxv8f64_nxv8i32 = call @llvm.fptoui.sat.nxv8i32.nxv8f64( poison) + %nxv8f32_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f32( poison) + %nxv8f64_nxv8i64 = call @llvm.fptoui.sat.nxv8i64.nxv8f64( poison) + %nxv8f32_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f32( poison) + %nxv8f64_nxv8i1 = call @llvm.fptoui.sat.nxv8i1.nxv8f64( poison) - %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( undef) - %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( undef) - %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( undef) - %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( undef) - %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( undef) - %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( undef) - %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( undef) - %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( undef) - %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( undef) - %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( undef) + %nxv16f32_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f32( poison) + %nxv16f64_nxv16i8 = call @llvm.fptoui.sat.nxv16i8.nxv16f64( poison) + %nxv16f32_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f32( poison) + %nxv16f64_nxv16i16 = call @llvm.fptoui.sat.nxv16i16.nxv16f64( poison) + %nxv16f32_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f32( poison) + %nxv16f64_nxv16i32 = call @llvm.fptoui.sat.nxv16i32.nxv16f64( poison) + %nxv16f32_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f32( poison) + %nxv16f64_nxv16i64 = call @llvm.fptoui.sat.nxv16i64.nxv16f64( poison) + %nxv16f32_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f32( poison) + %nxv16f64_nxv16i1 = call @llvm.fptoui.sat.nxv16i1.nxv16f64( poison) ret void } define void @fptosi_sat() { ; RV64ZVE32F-LABEL: 'fptosi_sat' -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) -; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) -; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( poison) +; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( poison) +; RV64ZVE32F-NEXT: Cost Model: Invalid cost for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( poison) ; RV64ZVE32F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; RV64V-LABEL: 'fptosi_sat' -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) -; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( poison) +; RV64V-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( poison) ; RV64V-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; - %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> undef) - %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> undef) - %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> undef) - %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> undef) - %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> undef) - %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> undef) - %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> undef) - %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> undef) - %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> undef) - %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> undef) + %v1f32_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f32(<1 x float> poison) + %v1f64_v1i8 = call <1 x i8> @llvm.fptosi.sat.v1i8.v1f64(<1 x double> poison) + %v1f32_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f32(<1 x float> poison) + %v1f64_v1i16 = call <1 x i16> @llvm.fptosi.sat.v1i16.v1f64(<1 x double> poison) + %v1f32_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f32(<1 x float> poison) + %v1f64_v1i32 = call <1 x i32> @llvm.fptosi.sat.v1i32.v1f64(<1 x double> poison) + %v1f32_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f32(<1 x float> poison) + %v1f64_v1i64 = call <1 x i64> @llvm.fptosi.sat.v1i64.v1f64(<1 x double> poison) + %v1f32_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f32(<1 x float> poison) + %v1f64_v1i1 = call <1 x i1> @llvm.fptosi.sat.v1i1.v1f64(<1 x double> poison) - %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef) - %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef) - %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef) - %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef) - %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef) - %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef) - %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef) - %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef) - %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef) - %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef) + %v2f32_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> poison) + %v2f64_v2i8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> poison) + %v2f32_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> poison) + %v2f64_v2i16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> poison) + %v2f32_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> poison) + %v2f64_v2i32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> poison) + %v2f32_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> poison) + %v2f64_v2i64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> poison) + %v2f32_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> poison) + %v2f64_v2i1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> poison) - %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef) - %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef) - %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef) - %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef) - %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef) - %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef) - %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef) - %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef) - %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef) - %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef) + %v4f32_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> poison) + %v4f64_v4i8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> poison) + %v4f32_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> poison) + %v4f64_v4i16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> poison) + %v4f32_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> poison) + %v4f64_v4i32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> poison) + %v4f32_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> poison) + %v4f64_v4i64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> poison) + %v4f32_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> poison) + %v4f64_v4i1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> poison) - %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef) - %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef) - %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef) - %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef) - %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef) - %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef) - %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef) - %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef) - %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef) - %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef) + %v8f32_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> poison) + %v8f64_v8i8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> poison) + %v8f32_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> poison) + %v8f64_v8i16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> poison) + %v8f32_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> poison) + %v8f64_v8i32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> poison) + %v8f32_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> poison) + %v8f64_v8i64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> poison) + %v8f32_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> poison) + %v8f64_v8i1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> poison) - %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( undef) - %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( undef) - %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( undef) - %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( undef) - %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( undef) - %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( undef) - %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( undef) - %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( undef) - %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( undef) - %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( undef) + %nxv1f32_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f32( poison) + %nxv1f64_nxv1i8 = call @llvm.fptosi.sat.nxv1i8.nxv1f64( poison) + %nxv1f32_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f32( poison) + %nxv1f64_nxv1i16 = call @llvm.fptosi.sat.nxv1i16.nxv1f64( poison) + %nxv1f32_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f32( poison) + %nxv1f64_nxv1i32 = call @llvm.fptosi.sat.nxv1i32.nxv1f64( poison) + %nxv1f32_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f32( poison) + %nxv1f64_nxv1i64 = call @llvm.fptosi.sat.nxv1i64.nxv1f64( poison) + %nxv1f32_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f32( poison) + %nxv1f64_nxv1i1 = call @llvm.fptosi.sat.nxv1i1.nxv1f64( poison) - %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( undef) - %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( undef) - %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( undef) - %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( undef) - %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( undef) - %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( undef) - %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( undef) - %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( undef) - %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( undef) - %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( undef) + %nxv2f32_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f32( poison) + %nxv2f64_nxv2i8 = call @llvm.fptosi.sat.nxv2i8.nxv2f64( poison) + %nxv2f32_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f32( poison) + %nxv2f64_nxv2i16 = call @llvm.fptosi.sat.nxv2i16.nxv2f64( poison) + %nxv2f32_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f32( poison) + %nxv2f64_nxv2i32 = call @llvm.fptosi.sat.nxv2i32.nxv2f64( poison) + %nxv2f32_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f32( poison) + %nxv2f64_nxv2i64 = call @llvm.fptosi.sat.nxv2i64.nxv2f64( poison) + %nxv2f32_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f32( poison) + %nxv2f64_nxv2i1 = call @llvm.fptosi.sat.nxv2i1.nxv2f64( poison) - %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( undef) - %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( undef) - %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( undef) - %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( undef) - %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( undef) - %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( undef) - %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( undef) - %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( undef) - %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( undef) - %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( undef) + %nxv4f32_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f32( poison) + %nxv4f64_nxv4i8 = call @llvm.fptosi.sat.nxv4i8.nxv4f64( poison) + %nxv4f32_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f32( poison) + %nxv4f64_nxv4i16 = call @llvm.fptosi.sat.nxv4i16.nxv4f64( poison) + %nxv4f32_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f32( poison) + %nxv4f64_nxv4i32 = call @llvm.fptosi.sat.nxv4i32.nxv4f64( poison) + %nxv4f32_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f32( poison) + %nxv4f64_nxv4i64 = call @llvm.fptosi.sat.nxv4i64.nxv4f64( poison) + %nxv4f32_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f32( poison) + %nxv4f64_nxv4i1 = call @llvm.fptosi.sat.nxv4i1.nxv4f64( poison) - %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( undef) - %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( undef) - %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( undef) - %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( undef) - %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( undef) - %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( undef) - %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( undef) - %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( undef) - %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( undef) - %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( undef) + %nxv8f32_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f32( poison) + %nxv8f64_nxv8i8 = call @llvm.fptosi.sat.nxv8i8.nxv8f64( poison) + %nxv8f32_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f32( poison) + %nxv8f64_nxv8i16 = call @llvm.fptosi.sat.nxv8i16.nxv8f64( poison) + %nxv8f32_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f32( poison) + %nxv8f64_nxv8i32 = call @llvm.fptosi.sat.nxv8i32.nxv8f64( poison) + %nxv8f32_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f32( poison) + %nxv8f64_nxv8i64 = call @llvm.fptosi.sat.nxv8i64.nxv8f64( poison) + %nxv8f32_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f32( poison) + %nxv8f64_nxv8i1 = call @llvm.fptosi.sat.nxv8i1.nxv8f64( poison) - %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( undef) - %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( undef) - %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( undef) - %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( undef) - %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( undef) - %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( undef) - %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( undef) - %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( undef) - %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( undef) - %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( undef) + %nxv16f32_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f32( poison) + %nxv16f64_nxv16i8 = call @llvm.fptosi.sat.nxv16i8.nxv16f64( poison) + %nxv16f32_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f32( poison) + %nxv16f64_nxv16i16 = call @llvm.fptosi.sat.nxv16i16.nxv16f64( poison) + %nxv16f32_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f32( poison) + %nxv16f64_nxv16i32 = call @llvm.fptosi.sat.nxv16i32.nxv16f64( poison) + %nxv16f32_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f32( poison) + %nxv16f64_nxv16i64 = call @llvm.fptosi.sat.nxv16i64.nxv16f64( poison) + %nxv16f32_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f32( poison) + %nxv16f64_nxv16i1 = call @llvm.fptosi.sat.nxv16i1.nxv16f64( poison) ret void } From 0972f9c210e261a2d8f8f278e52b23d7bfa46a99 Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Wed, 9 Jul 2025 17:23:40 -0700 Subject: [PATCH 4/5] Add comment. --- llvm/include/llvm/CodeGen/BasicTTIImpl.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 079a405be3eba..13ae78ec45935 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -2489,6 +2489,9 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { case Intrinsic::fptoui_sat: { std::pair SrcLT = getTypeLegalizationCost(Tys[0]); std::pair RetLT = getTypeLegalizationCost(RetTy); + + // For cast instructions, types are differnt between source and + // destination. Also need to check if the source type can be legalize. if (!SrcLT.first.isValid() || !RetLT.first.isValid()) return InstructionCost::getInvalid(); ISD = IID == Intrinsic::fptosi_sat ? ISD::FP_TO_SINT_SAT From 23990c0a2efa35b1db6376ea024388e2060f09eb Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Thu, 10 Jul 2025 08:43:45 +0800 Subject: [PATCH 5/5] Update llvm/include/llvm/CodeGen/BasicTTIImpl.h Co-authored-by: Craig Topper --- llvm/include/llvm/CodeGen/BasicTTIImpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 13ae78ec45935..bae2e9e71cbb9 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -2490,7 +2490,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { std::pair SrcLT = getTypeLegalizationCost(Tys[0]); std::pair RetLT = getTypeLegalizationCost(RetTy); - // For cast instructions, types are differnt between source and + // For cast instructions, types are different between source and // destination. Also need to check if the source type can be legalize. if (!SrcLT.first.isValid() || !RetLT.first.isValid()) return InstructionCost::getInvalid();