380 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+sse2 | FileCheck %s --check-prefixes=SSE23; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE424; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX15; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX26; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512,AVX512F7; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx512f,+avx512dq | FileCheck %s --check-prefixes=AVX512,AVX512DQ8;9; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mcpu=slm | FileCheck %s --check-prefixes=SSE4210; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mcpu=goldmont | FileCheck %s --check-prefixes=SSE4211; RUN: opt < %s -mtriple=x86_64-apple-darwin -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mcpu=btver2 | FileCheck %s --check-prefixes=AVX,AVX112 13define i32 @uitofp_i8_double() {14; SSE2-LABEL: 'uitofp_i8_double'15; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_i8_f64 = uitofp i8 undef to double16; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>17; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>18; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>19; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef20;21; SSE42-LABEL: 'uitofp_i8_double'22; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f64 = uitofp i8 undef to double23; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>24; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>25; SSE42-NEXT: Cost Model: Found costs of 4 for: %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>26; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef27;28; AVX1-LABEL: 'uitofp_i8_double'29; AVX1-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f64 = uitofp i8 undef to double30; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>31; AVX1-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>32; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>33; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef34;35; AVX2-LABEL: 'uitofp_i8_double'36; AVX2-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f64 = uitofp i8 undef to double37; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>38; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>39; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>40; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef41;42; AVX512-LABEL: 'uitofp_i8_double'43; AVX512-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f64 = uitofp i8 undef to double44; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>45; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>46; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>47; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef48;49 %cvt_i8_f64 = uitofp i8 undef to double50 %cvt_v2i8_v2f64 = uitofp <2 x i8> undef to <2 x double>51 %cvt_v4i8_v4f64 = uitofp <4 x i8> undef to <4 x double>52 %cvt_v8i8_v8f64 = uitofp <8 x i8> undef to <8 x double>53 ret i32 undef54}55 56define i32 @uitofp_i16_double() {57; SSE2-LABEL: 'uitofp_i16_double'58; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_i16_f64 = uitofp i16 undef to double59; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>60; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>61; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>62; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef63;64; SSE42-LABEL: 'uitofp_i16_double'65; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f64 = uitofp i16 undef to double66; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>67; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>68; SSE42-NEXT: Cost Model: Found costs of 4 for: %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>69; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef70;71; AVX1-LABEL: 'uitofp_i16_double'72; AVX1-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f64 = uitofp i16 undef to double73; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>74; AVX1-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>75; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>76; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef77;78; AVX2-LABEL: 'uitofp_i16_double'79; AVX2-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f64 = uitofp i16 undef to double80; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>81; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>82; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>83; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef84;85; AVX512-LABEL: 'uitofp_i16_double'86; AVX512-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f64 = uitofp i16 undef to double87; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>88; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>89; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>90; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef91;92 %cvt_i16_f64 = uitofp i16 undef to double93 %cvt_v2i16_v2f64 = uitofp <2 x i16> undef to <2 x double>94 %cvt_v4i16_v4f64 = uitofp <4 x i16> undef to <4 x double>95 %cvt_v8i16_v8f64 = uitofp <8 x i16> undef to <8 x double>96 ret i32 undef97}98 99define i32 @uitofp_i32_double() {100; SSE2-LABEL: 'uitofp_i32_double'101; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i32_f64 = uitofp i32 undef to double102; SSE2-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>103; SSE2-NEXT: Cost Model: Found costs of RThru:14 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>104; SSE2-NEXT: Cost Model: Found costs of RThru:28 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>105; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef106;107; SSE42-LABEL: 'uitofp_i32_double'108; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f64 = uitofp i32 undef to double109; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>110; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>111; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>112; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef113;114; AVX1-LABEL: 'uitofp_i32_double'115; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f64 = uitofp i32 undef to double116; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>117; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>118; AVX1-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>119; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef120;121; AVX2-LABEL: 'uitofp_i32_double'122; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f64 = uitofp i32 undef to double123; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>124; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>125; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>126; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef127;128; AVX512-LABEL: 'uitofp_i32_double'129; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f64 = uitofp i32 undef to double130; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>131; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>132; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>133; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef134;135 %cvt_i32_f64 = uitofp i32 undef to double136 %cvt_v2i32_v2f64 = uitofp <2 x i32> undef to <2 x double>137 %cvt_v4i32_v4f64 = uitofp <4 x i32> undef to <4 x double>138 %cvt_v8i32_v8f64 = uitofp <8 x i32> undef to <8 x double>139 ret i32 undef140}141 142define i32 @uitofp_i64_double() {143; SSE2-LABEL: 'uitofp_i64_double'144; SSE2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f64 = uitofp i64 undef to double145; SSE2-NEXT: Cost Model: Found costs of RThru:15 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>146; SSE2-NEXT: Cost Model: Found costs of RThru:30 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>147; SSE2-NEXT: Cost Model: Found costs of RThru:60 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>148; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef149;150; SSE42-LABEL: 'uitofp_i64_double'151; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f64 = uitofp i64 undef to double152; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>153; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>154; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>155; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef156;157; AVX-LABEL: 'uitofp_i64_double'158; AVX-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f64 = uitofp i64 undef to double159; AVX-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>160; AVX-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>161; AVX-NEXT: Cost Model: Found costs of RThru:20 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>162; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef163;164; AVX512F-LABEL: 'uitofp_i64_double'165; AVX512F-NEXT: Cost Model: Found costs of 1 for: %cvt_i64_f64 = uitofp i64 undef to double166; AVX512F-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>167; AVX512F-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>168; AVX512F-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>169; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef170;171; AVX512DQ-LABEL: 'uitofp_i64_double'172; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_i64_f64 = uitofp i64 undef to double173; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>174; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>175; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>176; AVX512DQ-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef177;178 %cvt_i64_f64 = uitofp i64 undef to double179 %cvt_v2i64_v2f64 = uitofp <2 x i64> undef to <2 x double>180 %cvt_v4i64_v4f64 = uitofp <4 x i64> undef to <4 x double>181 %cvt_v8i64_v8f64 = uitofp <8 x i64> undef to <8 x double>182 ret i32 undef183}184 185define i32 @uitofp_i8_float() {186; SSE2-LABEL: 'uitofp_i8_float'187; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_i8_f32 = uitofp i8 undef to float188; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>189; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>190; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>191; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>192; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef193;194; SSE42-LABEL: 'uitofp_i8_float'195; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f32 = uitofp i8 undef to float196; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>197; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>198; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>199; SSE42-NEXT: Cost Model: Found costs of 4 for: %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>200; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef201;202; AVX1-LABEL: 'uitofp_i8_float'203; AVX1-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f32 = uitofp i8 undef to float204; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>205; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>206; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>207; AVX1-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>208; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef209;210; AVX2-LABEL: 'uitofp_i8_float'211; AVX2-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f32 = uitofp i8 undef to float212; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>213; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>214; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>215; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>216; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef217;218; AVX512-LABEL: 'uitofp_i8_float'219; AVX512-NEXT: Cost Model: Found costs of 2 for: %cvt_i8_f32 = uitofp i8 undef to float220; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>221; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>222; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>223; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>224; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef225;226 %cvt_i8_f32 = uitofp i8 undef to float227 %cvt_v2i8_v2f32 = uitofp <2 x i8> undef to <2 x float>228 %cvt_v4i8_v4f32 = uitofp <4 x i8> undef to <4 x float>229 %cvt_v8i8_v8f32 = uitofp <8 x i8> undef to <8 x float>230 %cvt_v16i8_v16f32 = uitofp <16 x i8> undef to <16 x float>231 ret i32 undef232}233 234define i32 @uitofp_i16_float() {235; SSE2-LABEL: 'uitofp_i16_float'236; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_i16_f32 = uitofp i16 undef to float237; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>238; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>239; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>240; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>241; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef242;243; SSE42-LABEL: 'uitofp_i16_float'244; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f32 = uitofp i16 undef to float245; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>246; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>247; SSE42-NEXT: Cost Model: Found costs of 2 for: %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>248; SSE42-NEXT: Cost Model: Found costs of 4 for: %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>249; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef250;251; AVX1-LABEL: 'uitofp_i16_float'252; AVX1-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f32 = uitofp i16 undef to float253; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>254; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>255; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>256; AVX1-NEXT: Cost Model: Found costs of RThru:11 CodeSize:3 Lat:3 SizeLat:3 for: %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>257; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef258;259; AVX2-LABEL: 'uitofp_i16_float'260; AVX2-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f32 = uitofp i16 undef to float261; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>262; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>263; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>264; AVX2-NEXT: Cost Model: Found costs of RThru:5 CodeSize:3 Lat:3 SizeLat:3 for: %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>265; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef266;267; AVX512-LABEL: 'uitofp_i16_float'268; AVX512-NEXT: Cost Model: Found costs of 2 for: %cvt_i16_f32 = uitofp i16 undef to float269; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>270; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>271; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>272; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>273; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef274;275 %cvt_i16_f32 = uitofp i16 undef to float276 %cvt_v2i16_v2f32 = uitofp <2 x i16> undef to <2 x float>277 %cvt_v4i16_v4f32 = uitofp <4 x i16> undef to <4 x float>278 %cvt_v8i16_v8f32 = uitofp <8 x i16> undef to <8 x float>279 %cvt_v16i16_v16f32 = uitofp <16 x i16> undef to <16 x float>280 ret i32 undef281}282 283define i32 @uitofp_i32_float() {284; SSE2-LABEL: 'uitofp_i32_float'285; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i32_f32 = uitofp i32 undef to float286; SSE2-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>287; SSE2-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>288; SSE2-NEXT: Cost Model: Found costs of RThru:10 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>289; SSE2-NEXT: Cost Model: Found costs of RThru:20 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>290; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef291;292; SSE42-LABEL: 'uitofp_i32_float'293; SSE42-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f32 = uitofp i32 undef to float294; SSE42-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>295; SSE42-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>296; SSE42-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>297; SSE42-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>298; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef299;300; AVX1-LABEL: 'uitofp_i32_float'301; AVX1-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f32 = uitofp i32 undef to float302; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>303; AVX1-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>304; AVX1-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>305; AVX1-NEXT: Cost Model: Found costs of RThru:16 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>306; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef307;308; AVX2-LABEL: 'uitofp_i32_float'309; AVX2-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f32 = uitofp i32 undef to float310; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>311; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>312; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>313; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>314; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef315;316; AVX512-LABEL: 'uitofp_i32_float'317; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_i32_f32 = uitofp i32 undef to float318; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>319; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>320; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>321; AVX512-NEXT: Cost Model: Found costs of 1 for: %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>322; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef323;324 %cvt_i32_f32 = uitofp i32 undef to float325 %cvt_v2i32_v2f32 = uitofp <2 x i32> undef to <2 x float>326 %cvt_v4i32_v4f32 = uitofp <4 x i32> undef to <4 x float>327 %cvt_v8i32_v8f32 = uitofp <8 x i32> undef to <8 x float>328 %cvt_v16i32_v16f32 = uitofp <16 x i32> undef to <16 x float>329 ret i32 undef330}331 332define i32 @uitofp_i64_float() {333; SSE2-LABEL: 'uitofp_i64_float'334; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f32 = uitofp i64 undef to float335; SSE2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>336; SSE2-NEXT: Cost Model: Found costs of RThru:36 CodeSize:2 Lat:2 SizeLat:2 for: %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>337; SSE2-NEXT: Cost Model: Found costs of RThru:72 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>338; SSE2-NEXT: Cost Model: Found costs of RThru:144 CodeSize:8 Lat:8 SizeLat:8 for: %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>339; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef340;341; SSE42-LABEL: 'uitofp_i64_float'342; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f32 = uitofp i64 undef to float343; SSE42-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>344; SSE42-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>345; SSE42-NEXT: Cost Model: Found costs of RThru:48 CodeSize:4 Lat:4 SizeLat:4 for: %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>346; SSE42-NEXT: Cost Model: Found costs of RThru:96 CodeSize:8 Lat:8 SizeLat:8 for: %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>347; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef348;349; AVX-LABEL: 'uitofp_i64_float'350; AVX-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_i64_f32 = uitofp i64 undef to float351; AVX-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>352; AVX-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>353; AVX-NEXT: Cost Model: Found costs of RThru:37 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>354; AVX-NEXT: Cost Model: Found costs of RThru:74 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>355; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef356;357; AVX512F-LABEL: 'uitofp_i64_float'358; AVX512F-NEXT: Cost Model: Found costs of 1 for: %cvt_i64_f32 = uitofp i64 undef to float359; AVX512F-NEXT: Cost Model: Found costs of RThru:5 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>360; AVX512F-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>361; AVX512F-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>362; AVX512F-NEXT: Cost Model: Found costs of RThru:53 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>363; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef364;365; AVX512DQ-LABEL: 'uitofp_i64_float'366; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_i64_f32 = uitofp i64 undef to float367; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>368; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>369; AVX512DQ-NEXT: Cost Model: Found costs of 1 for: %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>370; AVX512DQ-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>371; AVX512DQ-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef372;373 %cvt_i64_f32 = uitofp i64 undef to float374 %cvt_v2i64_v2f32 = uitofp <2 x i64> undef to <2 x float>375 %cvt_v4i64_v4f32 = uitofp <4 x i64> undef to <4 x float>376 %cvt_v8i64_v8f32 = uitofp <8 x i64> undef to <8 x float>377 %cvt_v16i64_v16f32 = uitofp <16 x i64> undef to <16 x float>378 ret i32 undef379}380