1058 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+sse2 | FileCheck %s --check-prefixes=SSE23; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+ssse3 | FileCheck %s --check-prefixes=SSSE34; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE425; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+avx | FileCheck %s --check-prefixes=AVX16; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+avx2 | FileCheck %s --check-prefixes=AVX27; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512,AVX512F8; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX512,AVX512BW9; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mattr=+avx512f,+avx512dq | FileCheck %s --check-prefixes=AVX512,AVX512F10;11; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mcpu=slm | FileCheck %s --check-prefixes=SLM12; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mcpu=goldmont | FileCheck %s --check-prefixes=GLM13; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mcpu=btver2 | FileCheck %s --check-prefixes=AVX114; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-apple-macosx10.8.0 -mcpu=knl | FileCheck %s --check-prefixes=AVX51215 16target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"17target triple = "x86_64-apple-macosx10.8.0"18 19;20; mul vXi8 -> mXi3221;22 23define void @mul_sext_vXi8(<4 x i8> %a4, <4 x i8> %b4, <8 x i8> %a8, <8 x i8> %b8, <16 x i8> %a16, <16 x i8> %b16, <32 x i8> %a32, <32 x i8> %b32, <64 x i8> %a64, <64 x i8> %b64) {24; SSE2-LABEL: 'mul_sext_vXi8'25; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>26; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>27; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>28; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>29; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>30; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>31; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>32; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>33; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>34; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>35; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb436; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb837; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb1638; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb3239; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb6440; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void41;42; SSSE3-LABEL: 'mul_sext_vXi8'43; SSSE3-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>44; SSSE3-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>45; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>46; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>47; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>48; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>49; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>50; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>51; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>52; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>53; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb454; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb855; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb1656; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb3257; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb6458; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void59;60; SSE42-LABEL: 'mul_sext_vXi8'61; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>62; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>63; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>64; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>65; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>66; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>67; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>68; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>69; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>70; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>71; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb472; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb873; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb1674; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb3275; SSE42-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb6476; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void77;78; AVX1-LABEL: 'mul_sext_vXi8'79; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>80; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>81; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>82; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>83; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>84; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>85; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>86; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>87; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>88; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>89; AVX1-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:3 for: %res4 = mul <4 x i32> %xa4, %xb490; AVX1-NEXT: Cost Model: Found costs of RThru:5 CodeSize:5 Lat:8 SizeLat:10 for: %res8 = mul <8 x i32> %xa8, %xb891; AVX1-NEXT: Cost Model: Found costs of RThru:10 CodeSize:10 Lat:16 SizeLat:20 for: %res16 = mul <16 x i32> %xa16, %xb1692; AVX1-NEXT: Cost Model: Found costs of RThru:20 CodeSize:20 Lat:32 SizeLat:40 for: %res32 = mul <32 x i32> %xa32, %xb3293; AVX1-NEXT: Cost Model: Found costs of RThru:40 CodeSize:40 Lat:64 SizeLat:80 for: %res64 = mul <64 x i32> %xa64, %xb6494; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void95;96; AVX2-LABEL: 'mul_sext_vXi8'97; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>98; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>99; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>100; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>101; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>102; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>103; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>104; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>105; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>106; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>107; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4108; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8109; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16110; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32111; AVX2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:8 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64112; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void113;114; AVX512-LABEL: 'mul_sext_vXi8'115; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>116; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>117; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>118; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>119; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>120; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>121; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>122; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>123; AVX512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>124; AVX512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>125; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4126; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8127; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res16 = mul <16 x i32> %xa16, %xb16128; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:20 SizeLat:4 for: %res32 = mul <32 x i32> %xa32, %xb32129; AVX512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:40 SizeLat:8 for: %res64 = mul <64 x i32> %xa64, %xb64130; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void131;132; SLM-LABEL: 'mul_sext_vXi8'133; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>134; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>135; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>136; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>137; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>138; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>139; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>140; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>141; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>142; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>143; SLM-NEXT: Cost Model: Found costs of 3 for: %res4 = mul <4 x i32> %xa4, %xb4144; SLM-NEXT: Cost Model: Found costs of 6 for: %res8 = mul <8 x i32> %xa8, %xb8145; SLM-NEXT: Cost Model: Found costs of 12 for: %res16 = mul <16 x i32> %xa16, %xb16146; SLM-NEXT: Cost Model: Found costs of 24 for: %res32 = mul <32 x i32> %xa32, %xb32147; SLM-NEXT: Cost Model: Found costs of 48 for: %res64 = mul <64 x i32> %xa64, %xb64148; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void149;150; GLM-LABEL: 'mul_sext_vXi8'151; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>152; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i8> %b4 to <4 x i32>153; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>154; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i8> %b8 to <8 x i32>155; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>156; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i8> %b16 to <16 x i32>157; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>158; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i8> %b32 to <32 x i32>159; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>160; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i8> %b64 to <64 x i32>161; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4162; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8163; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16164; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32165; GLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64166; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void167;168 %xa4 = sext <4 x i8> %a4 to <4 x i32>169 %xb4 = sext <4 x i8> %b4 to <4 x i32>170 %xa8 = sext <8 x i8> %a8 to <8 x i32>171 %xb8 = sext <8 x i8> %b8 to <8 x i32>172 %xa16 = sext <16 x i8> %a16 to <16 x i32>173 %xb16 = sext <16 x i8> %b16 to <16 x i32>174 %xa32 = sext <32 x i8> %a32 to <32 x i32>175 %xb32 = sext <32 x i8> %b32 to <32 x i32>176 %xa64 = sext <64 x i8> %a64 to <64 x i32>177 %xb64 = sext <64 x i8> %b64 to <64 x i32>178 %res4 = mul <4 x i32> %xa4, %xb4179 %res8 = mul <8 x i32> %xa8, %xb8180 %res16 = mul <16 x i32> %xa16, %xb16181 %res32 = mul <32 x i32> %xa32, %xb32182 %res64 = mul <64 x i32> %xa64, %xb64183 ret void184}185 186define void @mul_zext_vXi8(<4 x i8> %a4, <4 x i8> %b4, <8 x i8> %a8, <8 x i8> %b8, <16 x i8> %a16, <16 x i8> %b16, <32 x i8> %a32, <32 x i8> %b32, <64 x i8> %a64, <64 x i8> %b64) {187; SSE2-LABEL: 'mul_zext_vXi8'188; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>189; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>190; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>191; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>192; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>193; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>194; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>195; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>196; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>197; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>198; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4199; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8200; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16201; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32202; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64203; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void204;205; SSSE3-LABEL: 'mul_zext_vXi8'206; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>207; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>208; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>209; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>210; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>211; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>212; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>213; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>214; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>215; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>216; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4217; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8218; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16219; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32220; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64221; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void222;223; SSE42-LABEL: 'mul_zext_vXi8'224; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>225; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>226; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>227; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>228; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>229; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>230; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>231; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>232; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>233; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>234; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4235; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8236; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16237; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32238; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64239; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void240;241; AVX1-LABEL: 'mul_zext_vXi8'242; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>243; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>244; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>245; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>246; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>247; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>248; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>249; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>250; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>251; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>252; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4253; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:5 Lat:8 SizeLat:6 for: %res8 = mul <8 x i32> %xa8, %xb8254; AVX1-NEXT: Cost Model: Found costs of RThru:8 CodeSize:10 Lat:16 SizeLat:12 for: %res16 = mul <16 x i32> %xa16, %xb16255; AVX1-NEXT: Cost Model: Found costs of RThru:16 CodeSize:20 Lat:32 SizeLat:24 for: %res32 = mul <32 x i32> %xa32, %xb32256; AVX1-NEXT: Cost Model: Found costs of RThru:32 CodeSize:40 Lat:64 SizeLat:48 for: %res64 = mul <64 x i32> %xa64, %xb64257; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void258;259; AVX2-LABEL: 'mul_zext_vXi8'260; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>261; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>262; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>263; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>264; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>265; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>266; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>267; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>268; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>269; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>270; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4271; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8272; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16273; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32274; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64275; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void276;277; AVX512F-LABEL: 'mul_zext_vXi8'278; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>279; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>280; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>281; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>282; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>283; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>284; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>285; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>286; AVX512F-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>287; AVX512F-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>288; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4289; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8290; AVX512F-NEXT: Cost Model: Found costs of 1 for: %res16 = mul <16 x i32> %xa16, %xb16291; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %res32 = mul <32 x i32> %xa32, %xb32292; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %res64 = mul <64 x i32> %xa64, %xb64293; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void294;295; AVX512BW-LABEL: 'mul_zext_vXi8'296; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>297; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>298; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>299; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>300; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>301; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>302; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>303; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>304; AVX512BW-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>305; AVX512BW-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>306; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4307; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8308; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res16 = mul <16 x i32> %xa16, %xb16309; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res32 = mul <32 x i32> %xa32, %xb32310; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res64 = mul <64 x i32> %xa64, %xb64311; AVX512BW-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void312;313; SLM-LABEL: 'mul_zext_vXi8'314; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>315; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>316; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>317; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>318; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>319; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>320; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>321; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>322; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>323; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>324; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4325; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8326; SLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16327; SLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32328; SLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64329; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void330;331; GLM-LABEL: 'mul_zext_vXi8'332; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i8> %a4 to <4 x i32>333; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>334; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i8> %a8 to <8 x i32>335; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>336; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i8> %a16 to <16 x i32>337; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>338; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i8> %a32 to <32 x i32>339; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>340; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i8> %a64 to <64 x i32>341; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>342; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4343; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8344; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16345; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32346; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64347; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void348;349 %xa4 = zext <4 x i8> %a4 to <4 x i32>350 %xb4 = zext <4 x i8> %b4 to <4 x i32>351 %xa8 = zext <8 x i8> %a8 to <8 x i32>352 %xb8 = zext <8 x i8> %b8 to <8 x i32>353 %xa16 = zext <16 x i8> %a16 to <16 x i32>354 %xb16 = zext <16 x i8> %b16 to <16 x i32>355 %xa32 = zext <32 x i8> %a32 to <32 x i32>356 %xb32 = zext <32 x i8> %b32 to <32 x i32>357 %xa64 = zext <64 x i8> %a64 to <64 x i32>358 %xb64 = zext <64 x i8> %b64 to <64 x i32>359 %res4 = mul <4 x i32> %xa4, %xb4360 %res8 = mul <8 x i32> %xa8, %xb8361 %res16 = mul <16 x i32> %xa16, %xb16362 %res32 = mul <32 x i32> %xa32, %xb32363 %res64 = mul <64 x i32> %xa64, %xb64364 ret void365}366 367define void @mul_sext_zext_vXi8(<4 x i8> %a4, <4 x i8> %b4, <8 x i8> %a8, <8 x i8> %b8, <16 x i8> %a16, <16 x i8> %b16, <32 x i8> %a32, <32 x i8> %b32, <64 x i8> %a64, <64 x i8> %b64) {368; SSE2-LABEL: 'mul_sext_zext_vXi8'369; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>370; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>371; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>372; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>373; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>374; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>375; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>376; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>377; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>378; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>379; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4380; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8381; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16382; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32383; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64384; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void385;386; SSSE3-LABEL: 'mul_sext_zext_vXi8'387; SSSE3-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>388; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>389; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>390; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>391; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>392; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>393; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>394; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>395; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>396; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>397; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4398; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8399; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16400; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32401; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64402; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void403;404; SSE42-LABEL: 'mul_sext_zext_vXi8'405; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>406; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>407; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>408; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>409; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>410; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>411; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>412; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>413; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>414; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>415; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4416; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8417; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16418; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32419; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64420; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void421;422; AVX1-LABEL: 'mul_sext_zext_vXi8'423; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>424; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>425; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>426; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>427; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>428; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>429; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>430; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>431; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>432; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>433; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4434; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:5 Lat:8 SizeLat:6 for: %res8 = mul <8 x i32> %xa8, %xb8435; AVX1-NEXT: Cost Model: Found costs of RThru:8 CodeSize:10 Lat:16 SizeLat:12 for: %res16 = mul <16 x i32> %xa16, %xb16436; AVX1-NEXT: Cost Model: Found costs of RThru:16 CodeSize:20 Lat:32 SizeLat:24 for: %res32 = mul <32 x i32> %xa32, %xb32437; AVX1-NEXT: Cost Model: Found costs of RThru:32 CodeSize:40 Lat:64 SizeLat:48 for: %res64 = mul <64 x i32> %xa64, %xb64438; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void439;440; AVX2-LABEL: 'mul_sext_zext_vXi8'441; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>442; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>443; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>444; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>445; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>446; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>447; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>448; AVX2-NEXT: Cost Model: Found costs of RThru:9 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>449; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>450; AVX2-NEXT: Cost Model: Found costs of RThru:18 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>451; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4452; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8453; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16454; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32455; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64456; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void457;458; AVX512F-LABEL: 'mul_sext_zext_vXi8'459; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>460; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>461; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>462; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>463; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>464; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>465; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>466; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>467; AVX512F-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>468; AVX512F-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>469; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4470; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8471; AVX512F-NEXT: Cost Model: Found costs of 1 for: %res16 = mul <16 x i32> %xa16, %xb16472; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %res32 = mul <32 x i32> %xa32, %xb32473; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %res64 = mul <64 x i32> %xa64, %xb64474; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void475;476; AVX512BW-LABEL: 'mul_sext_zext_vXi8'477; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>478; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>479; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>480; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>481; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>482; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>483; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>484; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>485; AVX512BW-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>486; AVX512BW-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>487; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4488; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8489; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res16 = mul <16 x i32> %xa16, %xb16490; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res32 = mul <32 x i32> %xa32, %xb32491; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res64 = mul <64 x i32> %xa64, %xb64492; AVX512BW-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void493;494; SLM-LABEL: 'mul_sext_zext_vXi8'495; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>496; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>497; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>498; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>499; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>500; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>501; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>502; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>503; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>504; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>505; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4506; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8507; SLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16508; SLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32509; SLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64510; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void511;512; GLM-LABEL: 'mul_sext_zext_vXi8'513; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i8> %a4 to <4 x i32>514; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i8> %b4 to <4 x i32>515; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i8> %a8 to <8 x i32>516; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i8> %b8 to <8 x i32>517; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i8> %a16 to <16 x i32>518; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i8> %b16 to <16 x i32>519; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i8> %a32 to <32 x i32>520; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i8> %b32 to <32 x i32>521; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i8> %a64 to <64 x i32>522; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i8> %b64 to <64 x i32>523; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4524; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8525; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16526; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32527; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64528; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void529;530 %xa4 = sext <4 x i8> %a4 to <4 x i32>531 %xb4 = zext <4 x i8> %b4 to <4 x i32>532 %xa8 = sext <8 x i8> %a8 to <8 x i32>533 %xb8 = zext <8 x i8> %b8 to <8 x i32>534 %xa16 = sext <16 x i8> %a16 to <16 x i32>535 %xb16 = zext <16 x i8> %b16 to <16 x i32>536 %xa32 = sext <32 x i8> %a32 to <32 x i32>537 %xb32 = zext <32 x i8> %b32 to <32 x i32>538 %xa64 = sext <64 x i8> %a64 to <64 x i32>539 %xb64 = zext <64 x i8> %b64 to <64 x i32>540 %res4 = mul <4 x i32> %xa4, %xb4541 %res8 = mul <8 x i32> %xa8, %xb8542 %res16 = mul <16 x i32> %xa16, %xb16543 %res32 = mul <32 x i32> %xa32, %xb32544 %res64 = mul <64 x i32> %xa64, %xb64545 ret void546}547 548;549; mul vXi16 -> mXi32550;551 552define void @mul_sext_vXi16(<4 x i16> %a4, <4 x i16> %b4, <8 x i16> %a8, <8 x i16> %b8, <16 x i16> %a16, <16 x i16> %b16, <32 x i16> %a32, <32 x i16> %b32, <64 x i16> %a64, <64 x i16> %b64) {553; SSE2-LABEL: 'mul_sext_vXi16'554; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>555; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>556; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>557; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>558; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>559; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>560; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>561; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>562; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>563; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>564; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4565; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8566; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16567; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32568; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64569; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void570;571; SSSE3-LABEL: 'mul_sext_vXi16'572; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>573; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>574; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>575; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>576; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>577; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>578; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>579; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>580; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>581; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>582; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4583; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8584; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16585; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32586; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64587; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void588;589; SSE42-LABEL: 'mul_sext_vXi16'590; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>591; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>592; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>593; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>594; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>595; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>596; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>597; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>598; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>599; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>600; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4601; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8602; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16603; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32604; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64605; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void606;607; AVX1-LABEL: 'mul_sext_vXi16'608; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>609; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>610; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>611; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>612; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>613; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>614; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>615; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>616; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>617; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>618; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4619; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:5 Lat:8 SizeLat:6 for: %res8 = mul <8 x i32> %xa8, %xb8620; AVX1-NEXT: Cost Model: Found costs of RThru:8 CodeSize:10 Lat:16 SizeLat:12 for: %res16 = mul <16 x i32> %xa16, %xb16621; AVX1-NEXT: Cost Model: Found costs of RThru:16 CodeSize:20 Lat:32 SizeLat:24 for: %res32 = mul <32 x i32> %xa32, %xb32622; AVX1-NEXT: Cost Model: Found costs of RThru:32 CodeSize:40 Lat:64 SizeLat:48 for: %res64 = mul <64 x i32> %xa64, %xb64623; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void624;625; AVX2-LABEL: 'mul_sext_vXi16'626; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>627; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>628; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>629; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>630; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>631; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>632; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>633; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>634; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>635; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>636; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4637; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8638; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16639; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32640; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64641; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void642;643; AVX512F-LABEL: 'mul_sext_vXi16'644; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>645; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>646; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>647; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>648; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>649; AVX512F-NEXT: Cost Model: Found costs of 1 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>650; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>651; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>652; AVX512F-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>653; AVX512F-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>654; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4655; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8656; AVX512F-NEXT: Cost Model: Found costs of 1 for: %res16 = mul <16 x i32> %xa16, %xb16657; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %res32 = mul <32 x i32> %xa32, %xb32658; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %res64 = mul <64 x i32> %xa64, %xb64659; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void660;661; AVX512BW-LABEL: 'mul_sext_vXi16'662; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>663; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>664; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>665; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>666; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>667; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>668; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>669; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>670; AVX512BW-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>671; AVX512BW-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>672; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4673; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8674; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res16 = mul <16 x i32> %xa16, %xb16675; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res32 = mul <32 x i32> %xa32, %xb32676; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res64 = mul <64 x i32> %xa64, %xb64677; AVX512BW-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void678;679; SLM-LABEL: 'mul_sext_vXi16'680; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>681; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>682; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>683; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>684; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>685; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>686; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>687; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>688; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>689; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>690; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4691; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8692; SLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16693; SLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32694; SLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64695; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void696;697; GLM-LABEL: 'mul_sext_vXi16'698; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>699; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = sext <4 x i16> %b4 to <4 x i32>700; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>701; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = sext <8 x i16> %b8 to <8 x i32>702; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>703; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = sext <16 x i16> %b16 to <16 x i32>704; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>705; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = sext <32 x i16> %b32 to <32 x i32>706; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>707; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = sext <64 x i16> %b64 to <64 x i32>708; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:5 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4709; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8710; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16711; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32712; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64713; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void714;715 %xa4 = sext <4 x i16> %a4 to <4 x i32>716 %xb4 = sext <4 x i16> %b4 to <4 x i32>717 %xa8 = sext <8 x i16> %a8 to <8 x i32>718 %xb8 = sext <8 x i16> %b8 to <8 x i32>719 %xa16 = sext <16 x i16> %a16 to <16 x i32>720 %xb16 = sext <16 x i16> %b16 to <16 x i32>721 %xa32 = sext <32 x i16> %a32 to <32 x i32>722 %xb32 = sext <32 x i16> %b32 to <32 x i32>723 %xa64 = sext <64 x i16> %a64 to <64 x i32>724 %xb64 = sext <64 x i16> %b64 to <64 x i32>725 %res4 = mul <4 x i32> %xa4, %xb4726 %res8 = mul <8 x i32> %xa8, %xb8727 %res16 = mul <16 x i32> %xa16, %xb16728 %res32 = mul <32 x i32> %xa32, %xb32729 %res64 = mul <64 x i32> %xa64, %xb64730 ret void731}732 733define void @mul_zext_vXi16(<4 x i16> %a4, <4 x i16> %b4, <8 x i16> %a8, <8 x i16> %b8, <16 x i16> %a16, <16 x i16> %b16, <32 x i16> %a32, <32 x i16> %b32, <64 x i16> %a64, <64 x i16> %b64) {734; SSE2-LABEL: 'mul_zext_vXi16'735; SSE2-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>736; SSE2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>737; SSE2-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>738; SSE2-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>739; SSE2-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>740; SSE2-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>741; SSE2-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>742; SSE2-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>743; SSE2-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>744; SSE2-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>745; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:7 Lat:8 SizeLat:7 for: %res4 = mul <4 x i32> %xa4, %xb4746; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:16 SizeLat:14 for: %res8 = mul <8 x i32> %xa8, %xb8747; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:32 SizeLat:28 for: %res16 = mul <16 x i32> %xa16, %xb16748; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:56 Lat:64 SizeLat:56 for: %res32 = mul <32 x i32> %xa32, %xb32749; SSE2-NEXT: Cost Model: Found costs of RThru:96 CodeSize:112 Lat:128 SizeLat:112 for: %res64 = mul <64 x i32> %xa64, %xb64750; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void751;752; SSSE3-LABEL: 'mul_zext_vXi16'753; SSSE3-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>754; SSSE3-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>755; SSSE3-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>756; SSSE3-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>757; SSSE3-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>758; SSSE3-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>759; SSSE3-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>760; SSSE3-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>761; SSSE3-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>762; SSSE3-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>763; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:7 Lat:8 SizeLat:7 for: %res4 = mul <4 x i32> %xa4, %xb4764; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:16 SizeLat:14 for: %res8 = mul <8 x i32> %xa8, %xb8765; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:32 SizeLat:28 for: %res16 = mul <16 x i32> %xa16, %xb16766; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:56 Lat:64 SizeLat:56 for: %res32 = mul <32 x i32> %xa32, %xb32767; SSSE3-NEXT: Cost Model: Found costs of RThru:96 CodeSize:112 Lat:128 SizeLat:112 for: %res64 = mul <64 x i32> %xa64, %xb64768; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void769;770; SSE42-LABEL: 'mul_zext_vXi16'771; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>772; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>773; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>774; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>775; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>776; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>777; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>778; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>779; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>780; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>781; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4782; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8783; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16784; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32785; SSE42-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64786; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void787;788; AVX1-LABEL: 'mul_zext_vXi16'789; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>790; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>791; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>792; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>793; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>794; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>795; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>796; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>797; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>798; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>799; AVX1-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:3 for: %res4 = mul <4 x i32> %xa4, %xb4800; AVX1-NEXT: Cost Model: Found costs of RThru:5 CodeSize:5 Lat:8 SizeLat:10 for: %res8 = mul <8 x i32> %xa8, %xb8801; AVX1-NEXT: Cost Model: Found costs of RThru:10 CodeSize:10 Lat:16 SizeLat:20 for: %res16 = mul <16 x i32> %xa16, %xb16802; AVX1-NEXT: Cost Model: Found costs of RThru:20 CodeSize:20 Lat:32 SizeLat:40 for: %res32 = mul <32 x i32> %xa32, %xb32803; AVX1-NEXT: Cost Model: Found costs of RThru:40 CodeSize:40 Lat:64 SizeLat:80 for: %res64 = mul <64 x i32> %xa64, %xb64804; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void805;806; AVX2-LABEL: 'mul_zext_vXi16'807; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>808; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>809; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>810; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>811; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>812; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>813; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>814; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>815; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>816; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>817; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4818; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8819; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16820; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32821; AVX2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:8 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64822; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void823;824; AVX512-LABEL: 'mul_zext_vXi16'825; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>826; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>827; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>828; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>829; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>830; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>831; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>832; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>833; AVX512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>834; AVX512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>835; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4836; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8837; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res16 = mul <16 x i32> %xa16, %xb16838; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:20 SizeLat:4 for: %res32 = mul <32 x i32> %xa32, %xb32839; AVX512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:40 SizeLat:8 for: %res64 = mul <64 x i32> %xa64, %xb64840; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void841;842; SLM-LABEL: 'mul_zext_vXi16'843; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>844; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>845; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>846; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>847; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>848; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>849; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>850; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>851; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>852; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>853; SLM-NEXT: Cost Model: Found costs of 5 for: %res4 = mul <4 x i32> %xa4, %xb4854; SLM-NEXT: Cost Model: Found costs of 10 for: %res8 = mul <8 x i32> %xa8, %xb8855; SLM-NEXT: Cost Model: Found costs of 20 for: %res16 = mul <16 x i32> %xa16, %xb16856; SLM-NEXT: Cost Model: Found costs of 40 for: %res32 = mul <32 x i32> %xa32, %xb32857; SLM-NEXT: Cost Model: Found costs of 80 for: %res64 = mul <64 x i32> %xa64, %xb64858; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void859;860; GLM-LABEL: 'mul_zext_vXi16'861; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = zext <4 x i16> %a4 to <4 x i32>862; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>863; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = zext <8 x i16> %a8 to <8 x i32>864; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>865; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = zext <16 x i16> %a16 to <16 x i32>866; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>867; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = zext <32 x i16> %a32 to <32 x i32>868; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>869; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = zext <64 x i16> %a64 to <64 x i32>870; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>871; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4872; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8873; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16874; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32875; GLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64876; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void877;878 %xa4 = zext <4 x i16> %a4 to <4 x i32>879 %xb4 = zext <4 x i16> %b4 to <4 x i32>880 %xa8 = zext <8 x i16> %a8 to <8 x i32>881 %xb8 = zext <8 x i16> %b8 to <8 x i32>882 %xa16 = zext <16 x i16> %a16 to <16 x i32>883 %xb16 = zext <16 x i16> %b16 to <16 x i32>884 %xa32 = zext <32 x i16> %a32 to <32 x i32>885 %xb32 = zext <32 x i16> %b32 to <32 x i32>886 %xa64 = zext <64 x i16> %a64 to <64 x i32>887 %xb64 = zext <64 x i16> %b64 to <64 x i32>888 %res4 = mul <4 x i32> %xa4, %xb4889 %res8 = mul <8 x i32> %xa8, %xb8890 %res16 = mul <16 x i32> %xa16, %xb16891 %res32 = mul <32 x i32> %xa32, %xb32892 %res64 = mul <64 x i32> %xa64, %xb64893 ret void894}895 896define void @mul_sext_zext_vXi16(<4 x i16> %a4, <4 x i16> %b4, <8 x i16> %a8, <8 x i16> %b8, <16 x i16> %a16, <16 x i16> %b16, <32 x i16> %a32, <32 x i16> %b32, <64 x i16> %a64, <64 x i16> %b64) {897; SSE2-LABEL: 'mul_sext_zext_vXi16'898; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>899; SSE2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>900; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>901; SSE2-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>902; SSE2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>903; SSE2-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>904; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>905; SSE2-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>906; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>907; SSE2-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>908; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:7 Lat:8 SizeLat:7 for: %res4 = mul <4 x i32> %xa4, %xb4909; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:16 SizeLat:14 for: %res8 = mul <8 x i32> %xa8, %xb8910; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:32 SizeLat:28 for: %res16 = mul <16 x i32> %xa16, %xb16911; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:56 Lat:64 SizeLat:56 for: %res32 = mul <32 x i32> %xa32, %xb32912; SSE2-NEXT: Cost Model: Found costs of RThru:96 CodeSize:112 Lat:128 SizeLat:112 for: %res64 = mul <64 x i32> %xa64, %xb64913; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void914;915; SSSE3-LABEL: 'mul_sext_zext_vXi16'916; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>917; SSSE3-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>918; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:2 SizeLat:2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>919; SSSE3-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>920; SSSE3-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:4 SizeLat:4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>921; SSSE3-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>922; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:8 SizeLat:8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>923; SSSE3-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>924; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:16 SizeLat:16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>925; SSSE3-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>926; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:7 Lat:8 SizeLat:7 for: %res4 = mul <4 x i32> %xa4, %xb4927; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:16 SizeLat:14 for: %res8 = mul <8 x i32> %xa8, %xb8928; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:32 SizeLat:28 for: %res16 = mul <16 x i32> %xa16, %xb16929; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:56 Lat:64 SizeLat:56 for: %res32 = mul <32 x i32> %xa32, %xb32930; SSSE3-NEXT: Cost Model: Found costs of RThru:96 CodeSize:112 Lat:128 SizeLat:112 for: %res64 = mul <64 x i32> %xa64, %xb64931; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void932;933; SSE42-LABEL: 'mul_sext_zext_vXi16'934; SSE42-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>935; SSE42-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>936; SSE42-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>937; SSE42-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>938; SSE42-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>939; SSE42-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>940; SSE42-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>941; SSE42-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>942; SSE42-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>943; SSE42-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>944; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb4945; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8946; SSE42-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16947; SSE42-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32948; SSE42-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64949; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void950;951; AVX1-LABEL: 'mul_sext_zext_vXi16'952; AVX1-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>953; AVX1-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>954; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>955; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>956; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>957; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>958; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>959; AVX1-NEXT: Cost Model: Found costs of RThru:14 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>960; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>961; AVX1-NEXT: Cost Model: Found costs of RThru:28 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>962; AVX1-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:5 SizeLat:3 for: %res4 = mul <4 x i32> %xa4, %xb4963; AVX1-NEXT: Cost Model: Found costs of RThru:5 CodeSize:5 Lat:8 SizeLat:10 for: %res8 = mul <8 x i32> %xa8, %xb8964; AVX1-NEXT: Cost Model: Found costs of RThru:10 CodeSize:10 Lat:16 SizeLat:20 for: %res16 = mul <16 x i32> %xa16, %xb16965; AVX1-NEXT: Cost Model: Found costs of RThru:20 CodeSize:20 Lat:32 SizeLat:40 for: %res32 = mul <32 x i32> %xa32, %xb32966; AVX1-NEXT: Cost Model: Found costs of RThru:40 CodeSize:40 Lat:64 SizeLat:80 for: %res64 = mul <64 x i32> %xa64, %xb64967; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void968;969; AVX2-LABEL: 'mul_sext_zext_vXi16'970; AVX2-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>971; AVX2-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>972; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>973; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>974; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>975; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>976; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>977; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>978; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>979; AVX2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>980; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4981; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb8982; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:2 Lat:20 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb16983; AVX2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:4 Lat:40 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb32984; AVX2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:8 Lat:80 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb64985; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void986;987; AVX512-LABEL: 'mul_sext_zext_vXi16'988; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>989; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>990; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>991; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>992; AVX512-NEXT: Cost Model: Found costs of 1 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>993; AVX512-NEXT: Cost Model: Found costs of 1 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>994; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>995; AVX512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:1 Lat:1 SizeLat:1 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>996; AVX512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>997; AVX512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:1 Lat:1 SizeLat:1 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>998; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res4 = mul <4 x i32> %xa4, %xb4999; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb81000; AVX512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:10 SizeLat:2 for: %res16 = mul <16 x i32> %xa16, %xb161001; AVX512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:20 SizeLat:4 for: %res32 = mul <32 x i32> %xa32, %xb321002; AVX512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:40 SizeLat:8 for: %res64 = mul <64 x i32> %xa64, %xb641003; AVX512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1004;1005; SLM-LABEL: 'mul_sext_zext_vXi16'1006; SLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>1007; SLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>1008; SLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>1009; SLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>1010; SLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>1011; SLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>1012; SLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>1013; SLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>1014; SLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>1015; SLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>1016; SLM-NEXT: Cost Model: Found costs of RThru:11 CodeSize:1 Lat:11 SizeLat:7 for: %res4 = mul <4 x i32> %xa4, %xb41017; SLM-NEXT: Cost Model: Found costs of RThru:22 CodeSize:2 Lat:22 SizeLat:14 for: %res8 = mul <8 x i32> %xa8, %xb81018; SLM-NEXT: Cost Model: Found costs of RThru:44 CodeSize:4 Lat:44 SizeLat:28 for: %res16 = mul <16 x i32> %xa16, %xb161019; SLM-NEXT: Cost Model: Found costs of RThru:88 CodeSize:8 Lat:88 SizeLat:56 for: %res32 = mul <32 x i32> %xa32, %xb321020; SLM-NEXT: Cost Model: Found costs of RThru:176 CodeSize:16 Lat:176 SizeLat:112 for: %res64 = mul <64 x i32> %xa64, %xb641021; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1022;1023; GLM-LABEL: 'mul_sext_zext_vXi16'1024; GLM-NEXT: Cost Model: Found costs of 1 for: %xa4 = sext <4 x i16> %a4 to <4 x i32>1025; GLM-NEXT: Cost Model: Found costs of 1 for: %xb4 = zext <4 x i16> %b4 to <4 x i32>1026; GLM-NEXT: Cost Model: Found costs of 2 for: %xa8 = sext <8 x i16> %a8 to <8 x i32>1027; GLM-NEXT: Cost Model: Found costs of 2 for: %xb8 = zext <8 x i16> %b8 to <8 x i32>1028; GLM-NEXT: Cost Model: Found costs of 4 for: %xa16 = sext <16 x i16> %a16 to <16 x i32>1029; GLM-NEXT: Cost Model: Found costs of 4 for: %xb16 = zext <16 x i16> %b16 to <16 x i32>1030; GLM-NEXT: Cost Model: Found costs of 8 for: %xa32 = sext <32 x i16> %a32 to <32 x i32>1031; GLM-NEXT: Cost Model: Found costs of 8 for: %xb32 = zext <32 x i16> %b32 to <32 x i32>1032; GLM-NEXT: Cost Model: Found costs of 16 for: %xa64 = sext <64 x i16> %a64 to <64 x i32>1033; GLM-NEXT: Cost Model: Found costs of 16 for: %xb64 = zext <64 x i16> %b64 to <64 x i32>1034; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:11 SizeLat:1 for: %res4 = mul <4 x i32> %xa4, %xb41035; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:22 SizeLat:2 for: %res8 = mul <8 x i32> %xa8, %xb81036; GLM-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:44 SizeLat:4 for: %res16 = mul <16 x i32> %xa16, %xb161037; GLM-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:88 SizeLat:8 for: %res32 = mul <32 x i32> %xa32, %xb321038; GLM-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:176 SizeLat:16 for: %res64 = mul <64 x i32> %xa64, %xb641039; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void1040;1041 %xa4 = sext <4 x i16> %a4 to <4 x i32>1042 %xb4 = zext <4 x i16> %b4 to <4 x i32>1043 %xa8 = sext <8 x i16> %a8 to <8 x i32>1044 %xb8 = zext <8 x i16> %b8 to <8 x i32>1045 %xa16 = sext <16 x i16> %a16 to <16 x i32>1046 %xb16 = zext <16 x i16> %b16 to <16 x i32>1047 %xa32 = sext <32 x i16> %a32 to <32 x i32>1048 %xb32 = zext <32 x i16> %b32 to <32 x i32>1049 %xa64 = sext <64 x i16> %a64 to <64 x i32>1050 %xb64 = zext <64 x i16> %b64 to <64 x i32>1051 %res4 = mul <4 x i32> %xa4, %xb41052 %res8 = mul <8 x i32> %xa8, %xb81053 %res16 = mul <16 x i32> %xa16, %xb161054 %res32 = mul <32 x i32> %xa32, %xb321055 %res64 = mul <64 x i32> %xa64, %xb641056 ret void1057}1058