554 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt -passes="print<cost-model>" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64 %s | FileCheck --check-prefixes=CHECK,CHECK-NOFP16 %s3; RUN: opt -passes="print<cost-model>" -cost-kind=all 2>&1 -disable-output -mtriple=aarch64 -mattr=+fullfp16 %s | FileCheck --check-prefixes=CHECK,CHECK-FP16 %s4 5target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6 7define void @casts() {8; CHECK-LABEL: 'casts'9; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32s1 = call i1 @llvm.fptosi.sat.i1.f32(float undef)10; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32u1 = call i1 @llvm.fptoui.sat.i1.f32(float undef)11; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32s8 = call i8 @llvm.fptosi.sat.i8.f32(float undef)12; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32u8 = call i8 @llvm.fptoui.sat.i8.f32(float undef)13; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32s16 = call i16 @llvm.fptosi.sat.i16.f32(float undef)14; CHECK-NEXT: Cost Model: Found costs of 5 for: %f32u16 = call i16 @llvm.fptoui.sat.i16.f32(float undef)15; CHECK-NEXT: Cost Model: Found costs of 1 for: %f32s32 = call i32 @llvm.fptosi.sat.i32.f32(float undef)16; CHECK-NEXT: Cost Model: Found costs of 1 for: %f32u32 = call i32 @llvm.fptoui.sat.i32.f32(float undef)17; CHECK-NEXT: Cost Model: Found costs of 1 for: %f32s64 = call i64 @llvm.fptosi.sat.i64.f32(float undef)18; CHECK-NEXT: Cost Model: Found costs of 1 for: %f32u64 = call i64 @llvm.fptoui.sat.i64.f32(float undef)19; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64s1 = call i1 @llvm.fptosi.sat.i1.f64(double undef)20; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64u1 = call i1 @llvm.fptoui.sat.i1.f64(double undef)21; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64s8 = call i8 @llvm.fptosi.sat.i8.f64(double undef)22; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64u8 = call i8 @llvm.fptoui.sat.i8.f64(double undef)23; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64s16 = call i16 @llvm.fptosi.sat.i16.f64(double undef)24; CHECK-NEXT: Cost Model: Found costs of 5 for: %f64u16 = call i16 @llvm.fptoui.sat.i16.f64(double undef)25; CHECK-NEXT: Cost Model: Found costs of 1 for: %f64s32 = call i32 @llvm.fptosi.sat.i32.f64(double undef)26; CHECK-NEXT: Cost Model: Found costs of 1 for: %f64u32 = call i32 @llvm.fptoui.sat.i32.f64(double undef)27; CHECK-NEXT: Cost Model: Found costs of 1 for: %f64s64 = call i64 @llvm.fptosi.sat.i64.f64(double undef)28; CHECK-NEXT: Cost Model: Found costs of 1 for: %f64u64 = call i64 @llvm.fptoui.sat.i64.f64(double undef)29; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef)30; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef)31; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef)32; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef)33; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef)34; CHECK-NEXT: Cost Model: Found costs of 3 for: %v2f32u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef)35; CHECK-NEXT: Cost Model: Found costs of 1 for: %v2f32s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef)36; CHECK-NEXT: Cost Model: Found costs of 1 for: %v2f32u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef)37; CHECK-NEXT: Cost Model: Found costs of 2 for: %v2f32s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef)38; CHECK-NEXT: Cost Model: Found costs of 2 for: %v2f32u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef)39; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef)40; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef)41; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef)42; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef)43; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef)44; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef)45; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef)46; CHECK-NEXT: Cost Model: Found costs of 5 for: %v2f64u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef)47; CHECK-NEXT: Cost Model: Found costs of 1 for: %v2f64s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef)48; CHECK-NEXT: Cost Model: Found costs of 1 for: %v2f64u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef)49; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef)50; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef)51; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef)52; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef)53; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef)54; CHECK-NEXT: Cost Model: Found costs of 3 for: %v4f32u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef)55; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4f32s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef)56; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4f32u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef)57; CHECK-NEXT: Cost Model: Found costs of 4 for: %v4f32s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef)58; CHECK-NEXT: Cost Model: Found costs of 4 for: %v4f32u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef)59; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef)60; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef)61; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef)62; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef)63; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef)64; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef)65; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef)66; CHECK-NEXT: Cost Model: Found costs of 10 for: %v4f64u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef)67; CHECK-NEXT: Cost Model: Found costs of 2 for: %v4f64s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef)68; CHECK-NEXT: Cost Model: Found costs of 2 for: %v4f64u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef)69; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef)70; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef)71; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef)72; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef)73; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef)74; CHECK-NEXT: Cost Model: Found costs of 6 for: %v8f32u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef)75; CHECK-NEXT: Cost Model: Found costs of 2 for: %v8f32s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef)76; CHECK-NEXT: Cost Model: Found costs of 2 for: %v8f32u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef)77; CHECK-NEXT: Cost Model: Found costs of 8 for: %v8f32s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef)78; CHECK-NEXT: Cost Model: Found costs of 8 for: %v8f32u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef)79; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef)80; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef)81; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef)82; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef)83; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef)84; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef)85; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef)86; CHECK-NEXT: Cost Model: Found costs of 20 for: %v8f64u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef)87; CHECK-NEXT: Cost Model: Found costs of 4 for: %v8f64s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef)88; CHECK-NEXT: Cost Model: Found costs of 4 for: %v8f64u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef)89; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f32(<16 x float> undef)90; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f32(<16 x float> undef)91; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f32(<16 x float> undef)92; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f32(<16 x float> undef)93; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f32(<16 x float> undef)94; CHECK-NEXT: Cost Model: Found costs of 12 for: %v16f32u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f32(<16 x float> undef)95; CHECK-NEXT: Cost Model: Found costs of 4 for: %v16f32s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f32(<16 x float> undef)96; CHECK-NEXT: Cost Model: Found costs of 4 for: %v16f32u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f32(<16 x float> undef)97; CHECK-NEXT: Cost Model: Found costs of 16 for: %v16f32s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f32(<16 x float> undef)98; CHECK-NEXT: Cost Model: Found costs of 16 for: %v16f32u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f32(<16 x float> undef)99; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f64(<16 x double> undef)100; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f64(<16 x double> undef)101; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f64(<16 x double> undef)102; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f64(<16 x double> undef)103; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f64(<16 x double> undef)104; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f64(<16 x double> undef)105; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f64(<16 x double> undef)106; CHECK-NEXT: Cost Model: Found costs of 40 for: %v16f64u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f64(<16 x double> undef)107; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16f64s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f64(<16 x double> undef)108; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16f64u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f64(<16 x double> undef)109; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void110;111 %f32s1 = call i1 @llvm.fptosi.sat.i1.f32(float undef)112 %f32u1 = call i1 @llvm.fptoui.sat.i1.f32(float undef)113 %f32s8 = call i8 @llvm.fptosi.sat.i8.f32(float undef)114 %f32u8 = call i8 @llvm.fptoui.sat.i8.f32(float undef)115 %f32s16 = call i16 @llvm.fptosi.sat.i16.f32(float undef)116 %f32u16 = call i16 @llvm.fptoui.sat.i16.f32(float undef)117 %f32s32 = call i32 @llvm.fptosi.sat.i32.f32(float undef)118 %f32u32 = call i32 @llvm.fptoui.sat.i32.f32(float undef)119 %f32s64 = call i64 @llvm.fptosi.sat.i64.f32(float undef)120 %f32u64 = call i64 @llvm.fptoui.sat.i64.f32(float undef)121 122 %f64s1 = call i1 @llvm.fptosi.sat.i1.f64(double undef)123 %f64u1 = call i1 @llvm.fptoui.sat.i1.f64(double undef)124 %f64s8 = call i8 @llvm.fptosi.sat.i8.f64(double undef)125 %f64u8 = call i8 @llvm.fptoui.sat.i8.f64(double undef)126 %f64s16 = call i16 @llvm.fptosi.sat.i16.f64(double undef)127 %f64u16 = call i16 @llvm.fptoui.sat.i16.f64(double undef)128 %f64s32 = call i32 @llvm.fptosi.sat.i32.f64(double undef)129 %f64u32 = call i32 @llvm.fptoui.sat.i32.f64(double undef)130 %f64s64 = call i64 @llvm.fptosi.sat.i64.f64(double undef)131 %f64u64 = call i64 @llvm.fptoui.sat.i64.f64(double undef)132 133 %v2f32s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float> undef)134 %v2f32u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float> undef)135 %v2f32s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float> undef)136 %v2f32u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float> undef)137 %v2f32s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float> undef)138 %v2f32u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float> undef)139 %v2f32s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> undef)140 %v2f32u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float> undef)141 %v2f32s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float> undef)142 %v2f32u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float> undef)143 144 %v2f64s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double> undef)145 %v2f64u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double> undef)146 %v2f64s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double> undef)147 %v2f64u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double> undef)148 %v2f64s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double> undef)149 %v2f64u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double> undef)150 %v2f64s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> undef)151 %v2f64u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double> undef)152 %v2f64s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double> undef)153 %v2f64u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double> undef)154 155 %v4f32s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float> undef)156 %v4f32u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float> undef)157 %v4f32s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float> undef)158 %v4f32u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float> undef)159 %v4f32s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float> undef)160 %v4f32u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float> undef)161 %v4f32s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float> undef)162 %v4f32u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float> undef)163 %v4f32s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float> undef)164 %v4f32u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float> undef)165 166 %v4f64s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double> undef)167 %v4f64u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double> undef)168 %v4f64s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double> undef)169 %v4f64u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double> undef)170 %v4f64s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double> undef)171 %v4f64u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double> undef)172 %v4f64s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double> undef)173 %v4f64u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double> undef)174 %v4f64s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double> undef)175 %v4f64u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double> undef)176 177 %v8f32s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float> undef)178 %v8f32u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float> undef)179 %v8f32s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float> undef)180 %v8f32u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float> undef)181 %v8f32s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float> undef)182 %v8f32u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float> undef)183 %v8f32s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float> undef)184 %v8f32u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float> undef)185 %v8f32s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float> undef)186 %v8f32u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float> undef)187 188 %v8f64s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double> undef)189 %v8f64u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double> undef)190 %v8f64s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double> undef)191 %v8f64u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double> undef)192 %v8f64s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double> undef)193 %v8f64u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double> undef)194 %v8f64s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double> undef)195 %v8f64u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double> undef)196 %v8f64s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double> undef)197 %v8f64u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double> undef)198 199 %v16f32s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f32(<16 x float> undef)200 %v16f32u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f32(<16 x float> undef)201 %v16f32s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f32(<16 x float> undef)202 %v16f32u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f32(<16 x float> undef)203 %v16f32s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f32(<16 x float> undef)204 %v16f32u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f32(<16 x float> undef)205 %v16f32s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f32(<16 x float> undef)206 %v16f32u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f32(<16 x float> undef)207 %v16f32s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f32(<16 x float> undef)208 %v16f32u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f32(<16 x float> undef)209 210 %v16f64s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f64(<16 x double> undef)211 %v16f64u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f64(<16 x double> undef)212 %v16f64s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f64(<16 x double> undef)213 %v16f64u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f64(<16 x double> undef)214 %v16f64s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f64(<16 x double> undef)215 %v16f64u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f64(<16 x double> undef)216 %v16f64s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f64(<16 x double> undef)217 %v16f64u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f64(<16 x double> undef)218 %v16f64s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f64(<16 x double> undef)219 %v16f64u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f64(<16 x double> undef)220 221 ret void222}223 224define void @fp16() {225; CHECK-NOFP16-LABEL: 'fp16'226; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16s1 = call i1 @llvm.fptosi.sat.i1.f16(half undef)227; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16u1 = call i1 @llvm.fptoui.sat.i1.f16(half undef)228; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16s8 = call i8 @llvm.fptosi.sat.i8.f16(half undef)229; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16u8 = call i8 @llvm.fptoui.sat.i8.f16(half undef)230; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16s16 = call i16 @llvm.fptosi.sat.i16.f16(half undef)231; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %f16u16 = call i16 @llvm.fptoui.sat.i16.f16(half undef)232; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %f16s32 = call i32 @llvm.fptosi.sat.i32.f16(half undef)233; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %f16u32 = call i32 @llvm.fptoui.sat.i32.f16(half undef)234; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %f16s64 = call i64 @llvm.fptosi.sat.i64.f16(half undef)235; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %f16u64 = call i64 @llvm.fptoui.sat.i64.f16(half undef)236; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef)237; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half> undef)238; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef)239; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half> undef)240; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef)241; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v2f16u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half> undef)242; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef)243; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %v2f16u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half> undef)244; CHECK-NOFP16-NEXT: Cost Model: Found costs of 3 for: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef)245; CHECK-NOFP16-NEXT: Cost Model: Found costs of 3 for: %v2f16u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half> undef)246; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef)247; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half> undef)248; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef)249; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half> undef)250; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef)251; CHECK-NOFP16-NEXT: Cost Model: Found costs of 4 for: %v4f16u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half> undef)252; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef)253; CHECK-NOFP16-NEXT: Cost Model: Found costs of 2 for: %v4f16u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half> undef)254; CHECK-NOFP16-NEXT: Cost Model: Found costs of 5 for: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef)255; CHECK-NOFP16-NEXT: Cost Model: Found costs of 5 for: %v4f16u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half> undef)256; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef)257; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half> undef)258; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef)259; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half> undef)260; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef)261; CHECK-NOFP16-NEXT: Cost Model: Found costs of 7 for: %v8f16u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half> undef)262; CHECK-NOFP16-NEXT: Cost Model: Found costs of 3 for: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef)263; CHECK-NOFP16-NEXT: Cost Model: Found costs of 3 for: %v8f16u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half> undef)264; CHECK-NOFP16-NEXT: Cost Model: Found costs of 9 for: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef)265; CHECK-NOFP16-NEXT: Cost Model: Found costs of 9 for: %v8f16u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half> undef)266; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef)267; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half> undef)268; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef)269; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half> undef)270; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef)271; CHECK-NOFP16-NEXT: Cost Model: Found costs of 14 for: %v16f16u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half> undef)272; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef)273; CHECK-NOFP16-NEXT: Cost Model: Found costs of 6 for: %v16f16u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half> undef)274; CHECK-NOFP16-NEXT: Cost Model: Found costs of 18 for: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef)275; CHECK-NOFP16-NEXT: Cost Model: Found costs of 18 for: %v16f16u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half> undef)276; CHECK-NOFP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void277;278; CHECK-FP16-LABEL: 'fp16'279; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16s1 = call i1 @llvm.fptosi.sat.i1.f16(half undef)280; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16u1 = call i1 @llvm.fptoui.sat.i1.f16(half undef)281; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16s8 = call i8 @llvm.fptosi.sat.i8.f16(half undef)282; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16u8 = call i8 @llvm.fptoui.sat.i8.f16(half undef)283; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16s16 = call i16 @llvm.fptosi.sat.i16.f16(half undef)284; CHECK-FP16-NEXT: Cost Model: Found costs of 5 for: %f16u16 = call i16 @llvm.fptoui.sat.i16.f16(half undef)285; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %f16s32 = call i32 @llvm.fptosi.sat.i32.f16(half undef)286; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %f16u32 = call i32 @llvm.fptoui.sat.i32.f16(half undef)287; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %f16s64 = call i64 @llvm.fptosi.sat.i64.f16(half undef)288; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %f16u64 = call i64 @llvm.fptoui.sat.i64.f16(half undef)289; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef)290; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v2f16u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half> undef)291; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef)292; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v2f16u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half> undef)293; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef)294; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v2f16u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half> undef)295; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef)296; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v2f16u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half> undef)297; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef)298; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v2f16u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half> undef)299; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef)300; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v4f16u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half> undef)301; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef)302; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v4f16u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half> undef)303; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef)304; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v4f16u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half> undef)305; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef)306; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v4f16u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half> undef)307; CHECK-FP16-NEXT: Cost Model: Found costs of 12 for: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef)308; CHECK-FP16-NEXT: Cost Model: Found costs of 12 for: %v4f16u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half> undef)309; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef)310; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v8f16u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half> undef)311; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef)312; CHECK-FP16-NEXT: Cost Model: Found costs of 3 for: %v8f16u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half> undef)313; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef)314; CHECK-FP16-NEXT: Cost Model: Found costs of 1 for: %v8f16u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half> undef)315; CHECK-FP16-NEXT: Cost Model: Found costs of 4 for: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef)316; CHECK-FP16-NEXT: Cost Model: Found costs of 4 for: %v8f16u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half> undef)317; CHECK-FP16-NEXT: Cost Model: Found costs of 24 for: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef)318; CHECK-FP16-NEXT: Cost Model: Found costs of 24 for: %v8f16u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half> undef)319; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef)320; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v16f16u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half> undef)321; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef)322; CHECK-FP16-NEXT: Cost Model: Found costs of 6 for: %v16f16u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half> undef)323; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef)324; CHECK-FP16-NEXT: Cost Model: Found costs of 2 for: %v16f16u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half> undef)325; CHECK-FP16-NEXT: Cost Model: Found costs of 8 for: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef)326; CHECK-FP16-NEXT: Cost Model: Found costs of 8 for: %v16f16u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half> undef)327; CHECK-FP16-NEXT: Cost Model: Found costs of 48 for: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef)328; CHECK-FP16-NEXT: Cost Model: Found costs of 48 for: %v16f16u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half> undef)329; CHECK-FP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void330;331 %f16s1 = call i1 @llvm.fptosi.sat.i1.f16(half undef)332 %f16u1 = call i1 @llvm.fptoui.sat.i1.f16(half undef)333 %f16s8 = call i8 @llvm.fptosi.sat.i8.f16(half undef)334 %f16u8 = call i8 @llvm.fptoui.sat.i8.f16(half undef)335 %f16s16 = call i16 @llvm.fptosi.sat.i16.f16(half undef)336 %f16u16 = call i16 @llvm.fptoui.sat.i16.f16(half undef)337 %f16s32 = call i32 @llvm.fptosi.sat.i32.f16(half undef)338 %f16u32 = call i32 @llvm.fptoui.sat.i32.f16(half undef)339 %f16s64 = call i64 @llvm.fptosi.sat.i64.f16(half undef)340 %f16u64 = call i64 @llvm.fptoui.sat.i64.f16(half undef)341 342 %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef)343 %v2f16u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half> undef)344 %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef)345 %v2f16u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half> undef)346 %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef)347 %v2f16u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half> undef)348 %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef)349 %v2f16u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half> undef)350 %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef)351 %v2f16u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half> undef)352 353 %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef)354 %v4f16u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half> undef)355 %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef)356 %v4f16u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half> undef)357 %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef)358 %v4f16u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half> undef)359 %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef)360 %v4f16u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half> undef)361 %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef)362 %v4f16u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half> undef)363 364 %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef)365 %v8f16u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half> undef)366 %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef)367 %v8f16u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half> undef)368 %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef)369 %v8f16u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half> undef)370 %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef)371 %v8f16u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half> undef)372 %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef)373 %v8f16u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half> undef)374 375 %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef)376 %v16f16u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half> undef)377 %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef)378 %v16f16u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half> undef)379 %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef)380 %v16f16u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half> undef)381 %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef)382 %v16f16u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half> undef)383 %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef)384 %v16f16u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half> undef)385 386 ret void387}388 389 390declare i1 @llvm.fptosi.sat.i1.f32(float)391declare i1 @llvm.fptoui.sat.i1.f32(float)392declare i8 @llvm.fptosi.sat.i8.f32(float)393declare i8 @llvm.fptoui.sat.i8.f32(float)394declare i16 @llvm.fptosi.sat.i16.f32(float)395declare i16 @llvm.fptoui.sat.i16.f32(float)396declare i32 @llvm.fptosi.sat.i32.f32(float)397declare i32 @llvm.fptoui.sat.i32.f32(float)398declare i64 @llvm.fptosi.sat.i64.f32(float)399declare i64 @llvm.fptoui.sat.i64.f32(float)400 401declare i1 @llvm.fptosi.sat.i1.f64(double)402declare i1 @llvm.fptoui.sat.i1.f64(double)403declare i8 @llvm.fptosi.sat.i8.f64(double)404declare i8 @llvm.fptoui.sat.i8.f64(double)405declare i16 @llvm.fptosi.sat.i16.f64(double)406declare i16 @llvm.fptoui.sat.i16.f64(double)407declare i32 @llvm.fptosi.sat.i32.f64(double)408declare i32 @llvm.fptoui.sat.i32.f64(double)409declare i64 @llvm.fptosi.sat.i64.f64(double)410declare i64 @llvm.fptoui.sat.i64.f64(double)411 412declare <2 x i1> @llvm.fptosi.sat.v2i1.v2f32(<2 x float>)413declare <2 x i1> @llvm.fptoui.sat.v2i1.v2f32(<2 x float>)414declare <2 x i8> @llvm.fptosi.sat.v2i8.v2f32(<2 x float>)415declare <2 x i8> @llvm.fptoui.sat.v2i8.v2f32(<2 x float>)416declare <2 x i16> @llvm.fptosi.sat.v2i16.v2f32(<2 x float>)417declare <2 x i16> @llvm.fptoui.sat.v2i16.v2f32(<2 x float>)418declare <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float>)419declare <2 x i32> @llvm.fptoui.sat.v2i32.v2f32(<2 x float>)420declare <2 x i64> @llvm.fptosi.sat.v2i64.v2f32(<2 x float>)421declare <2 x i64> @llvm.fptoui.sat.v2i64.v2f32(<2 x float>)422 423declare <2 x i1> @llvm.fptosi.sat.v2i1.v2f64(<2 x double>)424declare <2 x i1> @llvm.fptoui.sat.v2i1.v2f64(<2 x double>)425declare <2 x i8> @llvm.fptosi.sat.v2i8.v2f64(<2 x double>)426declare <2 x i8> @llvm.fptoui.sat.v2i8.v2f64(<2 x double>)427declare <2 x i16> @llvm.fptosi.sat.v2i16.v2f64(<2 x double>)428declare <2 x i16> @llvm.fptoui.sat.v2i16.v2f64(<2 x double>)429declare <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double>)430declare <2 x i32> @llvm.fptoui.sat.v2i32.v2f64(<2 x double>)431declare <2 x i64> @llvm.fptosi.sat.v2i64.v2f64(<2 x double>)432declare <2 x i64> @llvm.fptoui.sat.v2i64.v2f64(<2 x double>)433 434declare <4 x i1> @llvm.fptosi.sat.v4i1.v4f32(<4 x float>)435declare <4 x i1> @llvm.fptoui.sat.v4i1.v4f32(<4 x float>)436declare <4 x i8> @llvm.fptosi.sat.v4i8.v4f32(<4 x float>)437declare <4 x i8> @llvm.fptoui.sat.v4i8.v4f32(<4 x float>)438declare <4 x i16> @llvm.fptosi.sat.v4i16.v4f32(<4 x float>)439declare <4 x i16> @llvm.fptoui.sat.v4i16.v4f32(<4 x float>)440declare <4 x i32> @llvm.fptosi.sat.v4i32.v4f32(<4 x float>)441declare <4 x i32> @llvm.fptoui.sat.v4i32.v4f32(<4 x float>)442declare <4 x i64> @llvm.fptosi.sat.v4i64.v4f32(<4 x float>)443declare <4 x i64> @llvm.fptoui.sat.v4i64.v4f32(<4 x float>)444 445declare <4 x i1> @llvm.fptosi.sat.v4i1.v4f64(<4 x double>)446declare <4 x i1> @llvm.fptoui.sat.v4i1.v4f64(<4 x double>)447declare <4 x i8> @llvm.fptosi.sat.v4i8.v4f64(<4 x double>)448declare <4 x i8> @llvm.fptoui.sat.v4i8.v4f64(<4 x double>)449declare <4 x i16> @llvm.fptosi.sat.v4i16.v4f64(<4 x double>)450declare <4 x i16> @llvm.fptoui.sat.v4i16.v4f64(<4 x double>)451declare <4 x i32> @llvm.fptosi.sat.v4i32.v4f64(<4 x double>)452declare <4 x i32> @llvm.fptoui.sat.v4i32.v4f64(<4 x double>)453declare <4 x i64> @llvm.fptosi.sat.v4i64.v4f64(<4 x double>)454declare <4 x i64> @llvm.fptoui.sat.v4i64.v4f64(<4 x double>)455 456declare <8 x i1> @llvm.fptosi.sat.v8i1.v8f32(<8 x float>)457declare <8 x i1> @llvm.fptoui.sat.v8i1.v8f32(<8 x float>)458declare <8 x i8> @llvm.fptosi.sat.v8i8.v8f32(<8 x float>)459declare <8 x i8> @llvm.fptoui.sat.v8i8.v8f32(<8 x float>)460declare <8 x i16> @llvm.fptosi.sat.v8i16.v8f32(<8 x float>)461declare <8 x i16> @llvm.fptoui.sat.v8i16.v8f32(<8 x float>)462declare <8 x i32> @llvm.fptosi.sat.v8i32.v8f32(<8 x float>)463declare <8 x i32> @llvm.fptoui.sat.v8i32.v8f32(<8 x float>)464declare <8 x i64> @llvm.fptosi.sat.v8i64.v8f32(<8 x float>)465declare <8 x i64> @llvm.fptoui.sat.v8i64.v8f32(<8 x float>)466 467declare <8 x i1> @llvm.fptosi.sat.v8i1.v8f64(<8 x double>)468declare <8 x i1> @llvm.fptoui.sat.v8i1.v8f64(<8 x double>)469declare <8 x i8> @llvm.fptosi.sat.v8i8.v8f64(<8 x double>)470declare <8 x i8> @llvm.fptoui.sat.v8i8.v8f64(<8 x double>)471declare <8 x i16> @llvm.fptosi.sat.v8i16.v8f64(<8 x double>)472declare <8 x i16> @llvm.fptoui.sat.v8i16.v8f64(<8 x double>)473declare <8 x i32> @llvm.fptosi.sat.v8i32.v8f64(<8 x double>)474declare <8 x i32> @llvm.fptoui.sat.v8i32.v8f64(<8 x double>)475declare <8 x i64> @llvm.fptosi.sat.v8i64.v8f64(<8 x double>)476declare <8 x i64> @llvm.fptoui.sat.v8i64.v8f64(<8 x double>)477 478declare <16 x i1> @llvm.fptosi.sat.v16i1.v16f32(<16 x float>)479declare <16 x i1> @llvm.fptoui.sat.v16i1.v16f32(<16 x float>)480declare <16 x i8> @llvm.fptosi.sat.v16i8.v16f32(<16 x float>)481declare <16 x i8> @llvm.fptoui.sat.v16i8.v16f32(<16 x float>)482declare <16 x i16> @llvm.fptosi.sat.v16i16.v16f32(<16 x float>)483declare <16 x i16> @llvm.fptoui.sat.v16i16.v16f32(<16 x float>)484declare <16 x i32> @llvm.fptosi.sat.v16i32.v16f32(<16 x float>)485declare <16 x i32> @llvm.fptoui.sat.v16i32.v16f32(<16 x float>)486declare <16 x i64> @llvm.fptosi.sat.v16i64.v16f32(<16 x float>)487declare <16 x i64> @llvm.fptoui.sat.v16i64.v16f32(<16 x float>)488 489declare <16 x i1> @llvm.fptosi.sat.v16i1.v16f64(<16 x double>)490declare <16 x i1> @llvm.fptoui.sat.v16i1.v16f64(<16 x double>)491declare <16 x i8> @llvm.fptosi.sat.v16i8.v16f64(<16 x double>)492declare <16 x i8> @llvm.fptoui.sat.v16i8.v16f64(<16 x double>)493declare <16 x i16> @llvm.fptosi.sat.v16i16.v16f64(<16 x double>)494declare <16 x i16> @llvm.fptoui.sat.v16i16.v16f64(<16 x double>)495declare <16 x i32> @llvm.fptosi.sat.v16i32.v16f64(<16 x double>)496declare <16 x i32> @llvm.fptoui.sat.v16i32.v16f64(<16 x double>)497declare <16 x i64> @llvm.fptosi.sat.v16i64.v16f64(<16 x double>)498declare <16 x i64> @llvm.fptoui.sat.v16i64.v16f64(<16 x double>)499 500declare i1 @llvm.fptosi.sat.i1.f16(half)501declare i1 @llvm.fptoui.sat.i1.f16(half)502declare i8 @llvm.fptosi.sat.i8.f16(half)503declare i8 @llvm.fptoui.sat.i8.f16(half)504declare i16 @llvm.fptosi.sat.i16.f16(half)505declare i16 @llvm.fptoui.sat.i16.f16(half)506declare i32 @llvm.fptosi.sat.i32.f16(half)507declare i32 @llvm.fptoui.sat.i32.f16(half)508declare i64 @llvm.fptosi.sat.i64.f16(half)509declare i64 @llvm.fptoui.sat.i64.f16(half)510 511declare <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half>)512declare <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half>)513declare <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half>)514declare <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half>)515declare <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half>)516declare <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half>)517declare <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half>)518declare <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half>)519declare <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half>)520declare <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half>)521 522declare <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half>)523declare <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half>)524declare <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half>)525declare <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half>)526declare <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half>)527declare <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half>)528declare <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half>)529declare <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half>)530declare <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half>)531declare <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half>)532 533declare <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half>)534declare <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half>)535declare <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half>)536declare <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half>)537declare <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half>)538declare <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half>)539declare <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half>)540declare <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half>)541declare <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half>)542declare <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half>)543 544declare <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half>)545declare <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half>)546declare <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half>)547declare <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half>)548declare <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half>)549declare <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half>)550declare <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half>)551declare <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half>)552declare <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half>)553declare <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half>)554