1169 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,SSE23; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+sse3 | FileCheck %s --check-prefixes=SSE,SSE34; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE,SSSE35; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,SSE46; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE,SSE47; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+avx | FileCheck %s --check-prefixes=AVX8; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+avx2 | FileCheck %s --check-prefixes=AVX9; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512,AVX512F10; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX512,AVX512BW11;12; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mcpu=slm | FileCheck %s --check-prefixes=SSE,SLM13; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mcpu=goldmont | FileCheck %s --check-prefixes=SSE,GLM14; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes="print<cost-model>" 2>&1 -disable-output -mcpu=btver2 | FileCheck %s --check-prefixes=AVX15 16define i32 @extract_double(i32 %arg) {17; SSE-LABEL: 'extract_double'18; SSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_a = extractelement <2 x double> undef, i32 %arg19; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f64_0 = extractelement <2 x double> undef, i32 020; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f64_1 = extractelement <2 x double> undef, i32 121; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4f64_a = extractelement <4 x double> undef, i32 %arg22; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f64_0 = extractelement <4 x double> undef, i32 023; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4f64_3 = extractelement <4 x double> undef, i32 324; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8f64_a = extractelement <8 x double> undef, i32 %arg25; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f64_0 = extractelement <8 x double> undef, i32 026; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f64_3 = extractelement <8 x double> undef, i32 327; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f64_4 = extractelement <8 x double> undef, i32 428; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f64_7 = extractelement <8 x double> undef, i32 729; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef30;31; AVX-LABEL: 'extract_double'32; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_a = extractelement <2 x double> undef, i32 %arg33; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f64_0 = extractelement <2 x double> undef, i32 034; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f64_1 = extractelement <2 x double> undef, i32 135; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_a = extractelement <4 x double> undef, i32 %arg36; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f64_0 = extractelement <4 x double> undef, i32 037; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_3 = extractelement <4 x double> undef, i32 338; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8f64_a = extractelement <8 x double> undef, i32 %arg39; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f64_0 = extractelement <8 x double> undef, i32 040; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_3 = extractelement <8 x double> undef, i32 341; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f64_4 = extractelement <8 x double> undef, i32 442; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_7 = extractelement <8 x double> undef, i32 743; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef44;45; AVX512-LABEL: 'extract_double'46; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f64_a = extractelement <2 x double> undef, i32 %arg47; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f64_0 = extractelement <2 x double> undef, i32 048; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f64_1 = extractelement <2 x double> undef, i32 149; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_a = extractelement <4 x double> undef, i32 %arg50; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f64_0 = extractelement <4 x double> undef, i32 051; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f64_3 = extractelement <4 x double> undef, i32 352; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_a = extractelement <8 x double> undef, i32 %arg53; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f64_0 = extractelement <8 x double> undef, i32 054; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_3 = extractelement <8 x double> undef, i32 355; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f64_4 = extractelement <8 x double> undef, i32 456; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f64_7 = extractelement <8 x double> undef, i32 757; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef58;59 %v2f64_a = extractelement <2 x double> undef, i32 %arg60 %v2f64_0 = extractelement <2 x double> undef, i32 061 %v2f64_1 = extractelement <2 x double> undef, i32 162 63 %v4f64_a = extractelement <4 x double> undef, i32 %arg64 %v4f64_0 = extractelement <4 x double> undef, i32 065 %v4f64_3 = extractelement <4 x double> undef, i32 366 67 %v8f64_a = extractelement <8 x double> undef, i32 %arg68 %v8f64_0 = extractelement <8 x double> undef, i32 069 %v8f64_3 = extractelement <8 x double> undef, i32 370 %v8f64_4 = extractelement <8 x double> undef, i32 471 %v8f64_7 = extractelement <8 x double> undef, i32 772 73 ret i32 undef74}75 76define i32 @extract_float(i32 %arg) {77; SSE-LABEL: 'extract_float'78; SSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_a = extractelement <2 x float> undef, i32 %arg79; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f32_0 = extractelement <2 x float> undef, i32 080; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f32_1 = extractelement <2 x float> undef, i32 181; SSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_a = extractelement <4 x float> undef, i32 %arg82; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f32_0 = extractelement <4 x float> undef, i32 083; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4f32_3 = extractelement <4 x float> undef, i32 384; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8f32_a = extractelement <8 x float> undef, i32 %arg85; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f32_0 = extractelement <8 x float> undef, i32 086; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_3 = extractelement <8 x float> undef, i32 387; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f32_4 = extractelement <8 x float> undef, i32 488; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_7 = extractelement <8 x float> undef, i32 789; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16f32_a = extractelement <16 x float> undef, i32 %arg90; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v16f32_0 = extractelement <16 x float> undef, i32 091; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16f32_3 = extractelement <16 x float> undef, i32 392; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v16f32_8 = extractelement <16 x float> undef, i32 893; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16f32_15 = extractelement <16 x float> undef, i32 1594; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef95;96; AVX-LABEL: 'extract_float'97; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_a = extractelement <2 x float> undef, i32 %arg98; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f32_0 = extractelement <2 x float> undef, i32 099; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f32_1 = extractelement <2 x float> undef, i32 1100; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_a = extractelement <4 x float> undef, i32 %arg101; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f32_0 = extractelement <4 x float> undef, i32 0102; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4f32_3 = extractelement <4 x float> undef, i32 3103; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_a = extractelement <8 x float> undef, i32 %arg104; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f32_0 = extractelement <8 x float> undef, i32 0105; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_3 = extractelement <8 x float> undef, i32 3106; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_4 = extractelement <8 x float> undef, i32 4107; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_7 = extractelement <8 x float> undef, i32 7108; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16f32_a = extractelement <16 x float> undef, i32 %arg109; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v16f32_0 = extractelement <16 x float> undef, i32 0110; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16f32_3 = extractelement <16 x float> undef, i32 3111; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v16f32_8 = extractelement <16 x float> undef, i32 8112; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16f32_15 = extractelement <16 x float> undef, i32 15113; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef114;115; AVX512-LABEL: 'extract_float'116; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2f32_a = extractelement <2 x float> undef, i32 %arg117; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v2f32_0 = extractelement <2 x float> undef, i32 0118; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2f32_1 = extractelement <2 x float> undef, i32 1119; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4f32_a = extractelement <4 x float> undef, i32 %arg120; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v4f32_0 = extractelement <4 x float> undef, i32 0121; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4f32_3 = extractelement <4 x float> undef, i32 3122; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_a = extractelement <8 x float> undef, i32 %arg123; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v8f32_0 = extractelement <8 x float> undef, i32 0124; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_3 = extractelement <8 x float> undef, i32 3125; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8f32_4 = extractelement <8 x float> undef, i32 4126; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8f32_7 = extractelement <8 x float> undef, i32 7127; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16f32_a = extractelement <16 x float> undef, i32 %arg128; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: %v16f32_0 = extractelement <16 x float> undef, i32 0129; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16f32_3 = extractelement <16 x float> undef, i32 3130; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16f32_8 = extractelement <16 x float> undef, i32 8131; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16f32_15 = extractelement <16 x float> undef, i32 15132; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef133;134 %v2f32_a = extractelement <2 x float> undef, i32 %arg135 %v2f32_0 = extractelement <2 x float> undef, i32 0136 %v2f32_1 = extractelement <2 x float> undef, i32 1137 138 %v4f32_a = extractelement <4 x float> undef, i32 %arg139 %v4f32_0 = extractelement <4 x float> undef, i32 0140 %v4f32_3 = extractelement <4 x float> undef, i32 3141 142 %v8f32_a = extractelement <8 x float> undef, i32 %arg143 %v8f32_0 = extractelement <8 x float> undef, i32 0144 %v8f32_3 = extractelement <8 x float> undef, i32 3145 %v8f32_4 = extractelement <8 x float> undef, i32 4146 %v8f32_7 = extractelement <8 x float> undef, i32 7147 148 %v16f32_a = extractelement <16 x float> undef, i32 %arg149 %v16f32_0 = extractelement <16 x float> undef, i32 0150 %v16f32_3 = extractelement <16 x float> undef, i32 3151 %v16f32_8 = extractelement <16 x float> undef, i32 8152 %v16f32_15 = extractelement <16 x float> undef, i32 15153 154 ret i32 undef155}156 157define i32 @extract_i64(i32 %arg) {158; SSE2-LABEL: 'extract_i64'159; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg160; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0161; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1162; SSE2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg163; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0164; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3165; SSE2-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg166; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0167; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3168; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4169; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7170; SSE2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef171;172; SSE3-LABEL: 'extract_i64'173; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg174; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0175; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1176; SSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg177; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0178; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3179; SSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg180; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0181; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3182; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4183; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7184; SSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef185;186; SSSE3-LABEL: 'extract_i64'187; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg188; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0189; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1190; SSSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg191; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0192; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3193; SSSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg194; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0195; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3196; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4197; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7198; SSSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef199;200; SSE4-LABEL: 'extract_i64'201; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg202; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0203; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1204; SSE4-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg205; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0206; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3207; SSE4-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg208; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0209; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3210; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4211; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7212; SSE4-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef213;214; AVX-LABEL: 'extract_i64'215; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg216; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0217; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1218; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg219; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0220; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3221; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg222; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0223; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3224; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4225; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7226; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef227;228; AVX512-LABEL: 'extract_i64'229; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg230; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0231; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1232; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg233; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0234; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3235; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg236; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0237; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3238; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4239; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7240; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef241;242; SLM-LABEL: 'extract_i64'243; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg244; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0245; SLM-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1246; SLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg247; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0248; SLM-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3249; SLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg250; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0251; SLM-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3252; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4253; SLM-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7254; SLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef255;256; GLM-LABEL: 'extract_i64'257; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i64_a = extractelement <2 x i64> undef, i32 %arg258; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_0 = extractelement <2 x i64> undef, i32 0259; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i64_1 = extractelement <2 x i64> undef, i32 1260; GLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i64_a = extractelement <4 x i64> undef, i32 %arg261; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_0 = extractelement <4 x i64> undef, i32 0262; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i64_3 = extractelement <4 x i64> undef, i32 3263; GLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v8i64_a = extractelement <8 x i64> undef, i32 %arg264; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_0 = extractelement <8 x i64> undef, i32 0265; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_3 = extractelement <8 x i64> undef, i32 3266; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_4 = extractelement <8 x i64> undef, i32 4267; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i64_7 = extractelement <8 x i64> undef, i32 7268; GLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef269;270 %v2i64_a = extractelement <2 x i64> undef, i32 %arg271 %v2i64_0 = extractelement <2 x i64> undef, i32 0272 %v2i64_1 = extractelement <2 x i64> undef, i32 1273 274 %v4i64_a = extractelement <4 x i64> undef, i32 %arg275 %v4i64_0 = extractelement <4 x i64> undef, i32 0276 %v4i64_3 = extractelement <4 x i64> undef, i32 3277 278 %v8i64_a = extractelement <8 x i64> undef, i32 %arg279 %v8i64_0 = extractelement <8 x i64> undef, i32 0280 %v8i64_3 = extractelement <8 x i64> undef, i32 3281 %v8i64_4 = extractelement <8 x i64> undef, i32 4282 %v8i64_7 = extractelement <8 x i64> undef, i32 7283 284 ret i32 undef285}286 287define i32 @extract_i32(i32 %arg) {288; SSE2-LABEL: 'extract_i32'289; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg290; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0291; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1292; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg293; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0294; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3295; SSE2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg296; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0297; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3298; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4299; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7300; SSE2-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg301; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0302; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3303; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8304; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15305; SSE2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef306;307; SSE3-LABEL: 'extract_i32'308; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg309; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0310; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1311; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg312; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0313; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3314; SSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg315; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0316; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3317; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4318; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7319; SSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg320; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0321; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3322; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8323; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15324; SSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef325;326; SSSE3-LABEL: 'extract_i32'327; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg328; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0329; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1330; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg331; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0332; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3333; SSSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg334; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0335; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3336; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4337; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7338; SSSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg339; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0340; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3341; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8342; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15343; SSSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef344;345; SSE4-LABEL: 'extract_i32'346; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg347; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0348; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1349; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg350; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0351; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3352; SSE4-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg353; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0354; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3355; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4356; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7357; SSE4-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg358; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0359; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3360; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8361; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15362; SSE4-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef363;364; AVX-LABEL: 'extract_i32'365; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg366; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0367; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1368; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg369; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0370; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3371; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg372; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0373; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3374; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4375; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7376; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg377; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0378; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3379; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8380; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15381; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef382;383; AVX512-LABEL: 'extract_i32'384; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg385; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0386; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1387; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg388; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0389; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3390; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg391; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0392; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3393; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4394; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7395; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg396; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0397; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3398; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8399; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15400; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef401;402; SLM-LABEL: 'extract_i32'403; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg404; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0405; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1406; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg407; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0408; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3409; SLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg410; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0411; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3412; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4413; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7414; SLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg415; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0416; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3417; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8418; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15419; SLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef420;421; GLM-LABEL: 'extract_i32'422; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i32_a = extractelement <2 x i32> undef, i32 %arg423; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_0 = extractelement <2 x i32> undef, i32 0424; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i32_1 = extractelement <2 x i32> undef, i32 1425; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i32_a = extractelement <4 x i32> undef, i32 %arg426; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_0 = extractelement <4 x i32> undef, i32 0427; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i32_3 = extractelement <4 x i32> undef, i32 3428; GLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i32_a = extractelement <8 x i32> undef, i32 %arg429; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_0 = extractelement <8 x i32> undef, i32 0430; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_3 = extractelement <8 x i32> undef, i32 3431; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_4 = extractelement <8 x i32> undef, i32 4432; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i32_7 = extractelement <8 x i32> undef, i32 7433; GLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v16i32_a = extractelement <16 x i32> undef, i32 %arg434; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_0 = extractelement <16 x i32> undef, i32 0435; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_3 = extractelement <16 x i32> undef, i32 3436; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_8 = extractelement <16 x i32> undef, i32 8437; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i32_15 = extractelement <16 x i32> undef, i32 15438; GLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef439;440 %v2i32_a = extractelement <2 x i32> undef, i32 %arg441 %v2i32_0 = extractelement <2 x i32> undef, i32 0442 %v2i32_1 = extractelement <2 x i32> undef, i32 1443 444 %v4i32_a = extractelement <4 x i32> undef, i32 %arg445 %v4i32_0 = extractelement <4 x i32> undef, i32 0446 %v4i32_3 = extractelement <4 x i32> undef, i32 3447 448 %v8i32_a = extractelement <8 x i32> undef, i32 %arg449 %v8i32_0 = extractelement <8 x i32> undef, i32 0450 %v8i32_3 = extractelement <8 x i32> undef, i32 3451 %v8i32_4 = extractelement <8 x i32> undef, i32 4452 %v8i32_7 = extractelement <8 x i32> undef, i32 7453 454 %v16i32_a = extractelement <16 x i32> undef, i32 %arg455 %v16i32_0 = extractelement <16 x i32> undef, i32 0456 %v16i32_3 = extractelement <16 x i32> undef, i32 3457 %v16i32_8 = extractelement <16 x i32> undef, i32 8458 %v16i32_15 = extractelement <16 x i32> undef, i32 15459 460 ret i32 undef461}462 463define i32 @extract_i16(i32 %arg) {464; SSE2-LABEL: 'extract_i16'465; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg466; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0467; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1468; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg469; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0470; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3471; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg472; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0473; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7474; SSE2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg475; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0476; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7477; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8478; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15479; SSE2-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg480; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0481; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7482; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8483; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15484; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16485; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24486; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31487; SSE2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef488;489; SSE3-LABEL: 'extract_i16'490; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg491; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0492; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1493; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg494; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0495; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3496; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg497; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0498; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7499; SSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg500; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0501; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7502; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8503; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15504; SSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg505; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0506; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7507; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8508; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15509; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16510; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24511; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31512; SSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef513;514; SSSE3-LABEL: 'extract_i16'515; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg516; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0517; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1518; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg519; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0520; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3521; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg522; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0523; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7524; SSSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg525; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0526; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7527; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8528; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15529; SSSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg530; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0531; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7532; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8533; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15534; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16535; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24536; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31537; SSSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef538;539; SSE4-LABEL: 'extract_i16'540; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg541; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0542; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1543; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg544; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0545; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3546; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg547; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0548; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7549; SSE4-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg550; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0551; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7552; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8553; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15554; SSE4-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg555; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0556; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7557; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8558; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15559; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16560; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24561; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31562; SSE4-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef563;564; AVX-LABEL: 'extract_i16'565; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg566; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0567; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1568; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg569; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0570; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3571; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg572; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0573; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7574; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg575; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0576; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7577; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8578; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15579; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg580; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0581; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7582; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8583; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15584; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16585; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24586; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31587; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef588;589; AVX512-LABEL: 'extract_i16'590; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg591; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0592; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1593; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg594; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0595; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3596; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg597; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0598; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7599; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg600; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0601; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7602; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8603; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15604; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg605; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0606; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7607; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8608; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15609; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16610; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24611; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31612; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef613;614; SLM-LABEL: 'extract_i16'615; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg616; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0617; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1618; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg619; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0620; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3621; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg622; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0623; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7624; SLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg625; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0626; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7627; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8628; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15629; SLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg630; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0631; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7632; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8633; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15634; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16635; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24636; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31637; SLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef638;639; GLM-LABEL: 'extract_i16'640; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i16_a = extractelement <2 x i16> undef, i32 %arg641; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_0 = extractelement <2 x i16> undef, i32 0642; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i16_1 = extractelement <2 x i16> undef, i32 1643; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i16_a = extractelement <4 x i16> undef, i32 %arg644; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_0 = extractelement <4 x i16> undef, i32 0645; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i16_3 = extractelement <4 x i16> undef, i32 3646; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i16_a = extractelement <8 x i16> undef, i32 %arg647; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_0 = extractelement <8 x i16> undef, i32 0648; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i16_7 = extractelement <8 x i16> undef, i32 7649; GLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i16_a = extractelement <16 x i16> undef, i32 %arg650; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_0 = extractelement <16 x i16> undef, i32 0651; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_7 = extractelement <16 x i16> undef, i32 7652; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_8 = extractelement <16 x i16> undef, i32 8653; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i16_15 = extractelement <16 x i16> undef, i32 15654; GLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i16_a = extractelement <32 x i16> undef, i32 %arg655; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_0 = extractelement <32 x i16> undef, i32 0656; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_7 = extractelement <32 x i16> undef, i32 7657; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_8 = extractelement <32 x i16> undef, i32 8658; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_15 = extractelement <32 x i16> undef, i32 15659; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_16 = extractelement <32 x i16> undef, i32 16660; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_24 = extractelement <32 x i16> undef, i32 24661; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i16_31 = extractelement <32 x i16> undef, i32 31662; GLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef663;664 %v2i16_a = extractelement <2 x i16> undef, i32 %arg665 %v2i16_0 = extractelement <2 x i16> undef, i32 0666 %v2i16_1 = extractelement <2 x i16> undef, i32 1667 668 %v4i16_a = extractelement <4 x i16> undef, i32 %arg669 %v4i16_0 = extractelement <4 x i16> undef, i32 0670 %v4i16_3 = extractelement <4 x i16> undef, i32 3671 672 %v8i16_a = extractelement <8 x i16> undef, i32 %arg673 %v8i16_0 = extractelement <8 x i16> undef, i32 0674 %v8i16_7 = extractelement <8 x i16> undef, i32 7675 676 %v16i16_a = extractelement <16 x i16> undef, i32 %arg677 %v16i16_0 = extractelement <16 x i16> undef, i32 0678 %v16i16_7 = extractelement <16 x i16> undef, i32 7679 %v16i16_8 = extractelement <16 x i16> undef, i32 8680 %v16i16_15 = extractelement <16 x i16> undef, i32 15681 682 %v32i16_a = extractelement <32 x i16> undef, i32 %arg683 %v32i16_0 = extractelement <32 x i16> undef, i32 0684 %v32i16_7 = extractelement <32 x i16> undef, i32 7685 %v32i16_8 = extractelement <32 x i16> undef, i32 8686 %v32i16_15 = extractelement <32 x i16> undef, i32 15687 %v32i16_16 = extractelement <32 x i16> undef, i32 16688 %v32i16_24 = extractelement <32 x i16> undef, i32 24689 %v32i16_31 = extractelement <32 x i16> undef, i32 31690 691 ret i32 undef692}693 694define i32 @extract_i8(i32 %arg) {695; SSE2-LABEL: 'extract_i8'696; SSE2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg697; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0698; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1699; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg700; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0701; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3702; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg703; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0704; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7705; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg706; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0707; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8708; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15709; SSE2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg710; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0711; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7712; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8713; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15714; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24715; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31716; SSE2-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg717; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0718; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7719; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8720; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15721; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24722; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31723; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32724; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48725; SSE2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63726; SSE2-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef727;728; SSE3-LABEL: 'extract_i8'729; SSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg730; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0731; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1732; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg733; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0734; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3735; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg736; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0737; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7738; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg739; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0740; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8741; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15742; SSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg743; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0744; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7745; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8746; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15747; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24748; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31749; SSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg750; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0751; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7752; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8753; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15754; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24755; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31756; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32757; SSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48758; SSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63759; SSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef760;761; SSSE3-LABEL: 'extract_i8'762; SSSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg763; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0764; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1765; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg766; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0767; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3768; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg769; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0770; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7771; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg772; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0773; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8774; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15775; SSSE3-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg776; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0777; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7778; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8779; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15780; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24781; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31782; SSSE3-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg783; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0784; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7785; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8786; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15787; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24788; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31789; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32790; SSSE3-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48791; SSSE3-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63792; SSSE3-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef793;794; SSE4-LABEL: 'extract_i8'795; SSE4-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg796; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0797; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1798; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg799; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0800; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3801; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg802; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0803; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7804; SSE4-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg805; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0806; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8807; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15808; SSE4-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg809; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0810; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7811; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8812; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15813; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24814; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31815; SSE4-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg816; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0817; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7818; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8819; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15820; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24821; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31822; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32823; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48824; SSE4-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63825; SSE4-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef826;827; AVX-LABEL: 'extract_i8'828; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg829; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0830; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1831; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg832; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0833; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3834; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg835; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0836; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7837; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg838; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0839; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8840; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15841; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg842; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0843; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7844; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8845; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15846; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24847; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31848; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg849; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0850; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7851; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8852; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15853; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24854; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31855; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32856; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48857; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63858; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef859;860; AVX512-LABEL: 'extract_i8'861; AVX512-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg862; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0863; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1864; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg865; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0866; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3867; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg868; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0869; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7870; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg871; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0872; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8873; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15874; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg875; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0876; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7877; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8878; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15879; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24880; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31881; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg882; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0883; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7884; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8885; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15886; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24887; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31888; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32889; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48890; AVX512-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63891; AVX512-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef892;893; SLM-LABEL: 'extract_i8'894; SLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg895; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0896; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1897; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg898; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0899; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3900; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg901; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0902; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7903; SLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg904; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0905; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8906; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15907; SLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg908; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0909; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7910; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8911; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15912; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24913; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31914; SLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg915; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0916; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7917; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8918; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15919; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24920; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31921; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32922; SLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48923; SLM-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63924; SLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef925;926; GLM-LABEL: 'extract_i8'927; GLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i8_a = extractelement <2 x i8> undef, i32 %arg928; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_0 = extractelement <2 x i8> undef, i32 0929; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i8_1 = extractelement <2 x i8> undef, i32 1930; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v4i8_a = extractelement <4 x i8> undef, i32 %arg931; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_0 = extractelement <4 x i8> undef, i32 0932; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i8_3 = extractelement <4 x i8> undef, i32 3933; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v8i8_a = extractelement <8 x i8> undef, i32 %arg934; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_0 = extractelement <8 x i8> undef, i32 0935; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i8_7 = extractelement <8 x i8> undef, i32 7936; GLM-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v16i8_a = extractelement <16 x i8> undef, i32 %arg937; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_0 = extractelement <16 x i8> undef, i32 0938; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_8 = extractelement <16 x i8> undef, i32 8939; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i8_15 = extractelement <16 x i8> undef, i32 15940; GLM-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v32i8_a = extractelement <32 x i8> undef, i32 %arg941; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_0 = extractelement <32 x i8> undef, i32 0942; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_7 = extractelement <32 x i8> undef, i32 7943; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_8 = extractelement <32 x i8> undef, i32 8944; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_15 = extractelement <32 x i8> undef, i32 15945; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_24 = extractelement <32 x i8> undef, i32 24946; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i8_31 = extractelement <32 x i8> undef, i32 31947; GLM-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v64i8_a = extractelement <64 x i8> undef, i32 %arg948; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_0 = extractelement <64 x i8> undef, i32 0949; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_7 = extractelement <64 x i8> undef, i32 7950; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_8 = extractelement <64 x i8> undef, i32 8951; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_15 = extractelement <64 x i8> undef, i32 15952; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_24 = extractelement <64 x i8> undef, i32 24953; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_31 = extractelement <64 x i8> undef, i32 31954; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_32 = extractelement <64 x i8> undef, i32 32955; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_48 = extractelement <64 x i8> undef, i32 48956; GLM-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i8_63 = extractelement <64 x i8> undef, i32 63957; GLM-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef958;959 %v2i8_a = extractelement <2 x i8> undef, i32 %arg960 %v2i8_0 = extractelement <2 x i8> undef, i32 0961 %v2i8_1 = extractelement <2 x i8> undef, i32 1962 963 %v4i8_a = extractelement <4 x i8> undef, i32 %arg964 %v4i8_0 = extractelement <4 x i8> undef, i32 0965 %v4i8_3 = extractelement <4 x i8> undef, i32 3966 967 %v8i8_a = extractelement <8 x i8> undef, i32 %arg968 %v8i8_0 = extractelement <8 x i8> undef, i32 0969 %v8i8_7 = extractelement <8 x i8> undef, i32 7970 971 %v16i8_a = extractelement <16 x i8> undef, i32 %arg972 %v16i8_0 = extractelement <16 x i8> undef, i32 0973 %v16i8_8 = extractelement <16 x i8> undef, i32 8974 %v16i8_15 = extractelement <16 x i8> undef, i32 15975 976 %v32i8_a = extractelement <32 x i8> undef, i32 %arg977 %v32i8_0 = extractelement <32 x i8> undef, i32 0978 %v32i8_7 = extractelement <32 x i8> undef, i32 7979 %v32i8_8 = extractelement <32 x i8> undef, i32 8980 %v32i8_15 = extractelement <32 x i8> undef, i32 15981 %v32i8_24 = extractelement <32 x i8> undef, i32 24982 %v32i8_31 = extractelement <32 x i8> undef, i32 31983 984 %v64i8_a = extractelement <64 x i8> undef, i32 %arg985 %v64i8_0 = extractelement <64 x i8> undef, i32 0986 %v64i8_7 = extractelement <64 x i8> undef, i32 7987 %v64i8_8 = extractelement <64 x i8> undef, i32 8988 %v64i8_15 = extractelement <64 x i8> undef, i32 15989 %v64i8_24 = extractelement <64 x i8> undef, i32 24990 %v64i8_31 = extractelement <64 x i8> undef, i32 31991 %v64i8_32 = extractelement <64 x i8> undef, i32 32992 %v64i8_48 = extractelement <64 x i8> undef, i32 48993 %v64i8_63 = extractelement <64 x i8> undef, i32 63994 995 ret i32 undef996}997 998define i32 @extract_i1(i32 %arg) {999; SSE-LABEL: 'extract_i1'1000; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i1_a = extractelement <2 x i1> undef, i32 %arg1001; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_0 = extractelement <2 x i1> undef, i32 01002; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_1 = extractelement <2 x i1> undef, i32 11003; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i1_a = extractelement <4 x i1> undef, i32 %arg1004; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_0 = extractelement <4 x i1> undef, i32 01005; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_2 = extractelement <4 x i1> undef, i32 21006; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i1_a = extractelement <8 x i1> undef, i32 %arg1007; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_0 = extractelement <8 x i1> undef, i32 01008; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_4 = extractelement <8 x i1> undef, i32 41009; SSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i1_a = extractelement <16 x i1> undef, i32 %arg1010; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_0 = extractelement <16 x i1> undef, i32 01011; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_8 = extractelement <16 x i1> undef, i32 81012; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_15 = extractelement <16 x i1> undef, i32 151013; SSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i1_a = extractelement <32 x i1> undef, i32 %arg1014; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_0 = extractelement <32 x i1> undef, i32 01015; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_7 = extractelement <32 x i1> undef, i32 71016; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_8 = extractelement <32 x i1> undef, i32 81017; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_15 = extractelement <32 x i1> undef, i32 151018; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_24 = extractelement <32 x i1> undef, i32 241019; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_31 = extractelement <32 x i1> undef, i32 311020; SSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i1_a = extractelement <64 x i1> undef, i32 %arg1021; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_0 = extractelement <64 x i1> undef, i32 01022; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_7 = extractelement <64 x i1> undef, i32 71023; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_8 = extractelement <64 x i1> undef, i32 81024; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_15 = extractelement <64 x i1> undef, i32 151025; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_24 = extractelement <64 x i1> undef, i32 241026; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_31 = extractelement <64 x i1> undef, i32 311027; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_32 = extractelement <64 x i1> undef, i32 321028; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_48 = extractelement <64 x i1> undef, i32 481029; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_63 = extractelement <64 x i1> undef, i32 631030; SSE-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef1031;1032; AVX-LABEL: 'extract_i1'1033; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i1_a = extractelement <2 x i1> undef, i32 %arg1034; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_0 = extractelement <2 x i1> undef, i32 01035; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_1 = extractelement <2 x i1> undef, i32 11036; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i1_a = extractelement <4 x i1> undef, i32 %arg1037; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_0 = extractelement <4 x i1> undef, i32 01038; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_2 = extractelement <4 x i1> undef, i32 21039; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i1_a = extractelement <8 x i1> undef, i32 %arg1040; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_0 = extractelement <8 x i1> undef, i32 01041; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_4 = extractelement <8 x i1> undef, i32 41042; AVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i1_a = extractelement <16 x i1> undef, i32 %arg1043; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_0 = extractelement <16 x i1> undef, i32 01044; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_8 = extractelement <16 x i1> undef, i32 81045; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_15 = extractelement <16 x i1> undef, i32 151046; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i1_a = extractelement <32 x i1> undef, i32 %arg1047; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_0 = extractelement <32 x i1> undef, i32 01048; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_7 = extractelement <32 x i1> undef, i32 71049; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_8 = extractelement <32 x i1> undef, i32 81050; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_15 = extractelement <32 x i1> undef, i32 151051; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_24 = extractelement <32 x i1> undef, i32 241052; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_31 = extractelement <32 x i1> undef, i32 311053; AVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i1_a = extractelement <64 x i1> undef, i32 %arg1054; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_0 = extractelement <64 x i1> undef, i32 01055; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_7 = extractelement <64 x i1> undef, i32 71056; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_8 = extractelement <64 x i1> undef, i32 81057; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_15 = extractelement <64 x i1> undef, i32 151058; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_24 = extractelement <64 x i1> undef, i32 241059; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_31 = extractelement <64 x i1> undef, i32 311060; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_32 = extractelement <64 x i1> undef, i32 321061; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_48 = extractelement <64 x i1> undef, i32 481062; AVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_63 = extractelement <64 x i1> undef, i32 631063; AVX-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef1064;1065; AVX512F-LABEL: 'extract_i1'1066; AVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i1_a = extractelement <2 x i1> undef, i32 %arg1067; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_0 = extractelement <2 x i1> undef, i32 01068; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_1 = extractelement <2 x i1> undef, i32 11069; AVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i1_a = extractelement <4 x i1> undef, i32 %arg1070; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_0 = extractelement <4 x i1> undef, i32 01071; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_2 = extractelement <4 x i1> undef, i32 21072; AVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i1_a = extractelement <8 x i1> undef, i32 %arg1073; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_0 = extractelement <8 x i1> undef, i32 01074; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_4 = extractelement <8 x i1> undef, i32 41075; AVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i1_a = extractelement <16 x i1> undef, i32 %arg1076; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_0 = extractelement <16 x i1> undef, i32 01077; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_8 = extractelement <16 x i1> undef, i32 81078; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_15 = extractelement <16 x i1> undef, i32 151079; AVX512F-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %v32i1_a = extractelement <32 x i1> undef, i32 %arg1080; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_0 = extractelement <32 x i1> undef, i32 01081; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_7 = extractelement <32 x i1> undef, i32 71082; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_8 = extractelement <32 x i1> undef, i32 81083; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_15 = extractelement <32 x i1> undef, i32 151084; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_24 = extractelement <32 x i1> undef, i32 241085; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_31 = extractelement <32 x i1> undef, i32 311086; AVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %v64i1_a = extractelement <64 x i1> undef, i32 %arg1087; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_0 = extractelement <64 x i1> undef, i32 01088; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_7 = extractelement <64 x i1> undef, i32 71089; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_8 = extractelement <64 x i1> undef, i32 81090; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_15 = extractelement <64 x i1> undef, i32 151091; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_24 = extractelement <64 x i1> undef, i32 241092; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_31 = extractelement <64 x i1> undef, i32 311093; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_32 = extractelement <64 x i1> undef, i32 321094; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_48 = extractelement <64 x i1> undef, i32 481095; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_63 = extractelement <64 x i1> undef, i32 631096; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef1097;1098; AVX512BW-LABEL: 'extract_i1'1099; AVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v2i1_a = extractelement <2 x i1> undef, i32 %arg1100; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_0 = extractelement <2 x i1> undef, i32 01101; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v2i1_1 = extractelement <2 x i1> undef, i32 11102; AVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v4i1_a = extractelement <4 x i1> undef, i32 %arg1103; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_0 = extractelement <4 x i1> undef, i32 01104; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v4i1_2 = extractelement <4 x i1> undef, i32 21105; AVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v8i1_a = extractelement <8 x i1> undef, i32 %arg1106; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_0 = extractelement <8 x i1> undef, i32 01107; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v8i1_4 = extractelement <8 x i1> undef, i32 41108; AVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %v16i1_a = extractelement <16 x i1> undef, i32 %arg1109; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_0 = extractelement <16 x i1> undef, i32 01110; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_8 = extractelement <16 x i1> undef, i32 81111; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v16i1_15 = extractelement <16 x i1> undef, i32 151112; AVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v32i1_a = extractelement <32 x i1> undef, i32 %arg1113; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_0 = extractelement <32 x i1> undef, i32 01114; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_7 = extractelement <32 x i1> undef, i32 71115; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_8 = extractelement <32 x i1> undef, i32 81116; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_15 = extractelement <32 x i1> undef, i32 151117; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_24 = extractelement <32 x i1> undef, i32 241118; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v32i1_31 = extractelement <32 x i1> undef, i32 311119; AVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %v64i1_a = extractelement <64 x i1> undef, i32 %arg1120; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_0 = extractelement <64 x i1> undef, i32 01121; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_7 = extractelement <64 x i1> undef, i32 71122; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_8 = extractelement <64 x i1> undef, i32 81123; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_15 = extractelement <64 x i1> undef, i32 151124; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_24 = extractelement <64 x i1> undef, i32 241125; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_31 = extractelement <64 x i1> undef, i32 311126; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_32 = extractelement <64 x i1> undef, i32 321127; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_48 = extractelement <64 x i1> undef, i32 481128; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %v64i1_63 = extractelement <64 x i1> undef, i32 631129; AVX512BW-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef1130;1131 %v2i1_a = extractelement <2 x i1> undef, i32 %arg1132 %v2i1_0 = extractelement <2 x i1> undef, i32 01133 %v2i1_1 = extractelement <2 x i1> undef, i32 11134 1135 %v4i1_a = extractelement <4 x i1> undef, i32 %arg1136 %v4i1_0 = extractelement <4 x i1> undef, i32 01137 %v4i1_2 = extractelement <4 x i1> undef, i32 21138 1139 %v8i1_a = extractelement <8 x i1> undef, i32 %arg1140 %v8i1_0 = extractelement <8 x i1> undef, i32 01141 %v8i1_4 = extractelement <8 x i1> undef, i32 41142 1143 %v16i1_a = extractelement <16 x i1> undef, i32 %arg1144 %v16i1_0 = extractelement <16 x i1> undef, i32 01145 %v16i1_8 = extractelement <16 x i1> undef, i32 81146 %v16i1_15 = extractelement <16 x i1> undef, i32 151147 1148 %v32i1_a = extractelement <32 x i1> undef, i32 %arg1149 %v32i1_0 = extractelement <32 x i1> undef, i32 01150 %v32i1_7 = extractelement <32 x i1> undef, i32 71151 %v32i1_8 = extractelement <32 x i1> undef, i32 81152 %v32i1_15 = extractelement <32 x i1> undef, i32 151153 %v32i1_24 = extractelement <32 x i1> undef, i32 241154 %v32i1_31 = extractelement <32 x i1> undef, i32 311155 1156 %v64i1_a = extractelement <64 x i1> undef, i32 %arg1157 %v64i1_0 = extractelement <64 x i1> undef, i32 01158 %v64i1_7 = extractelement <64 x i1> undef, i32 71159 %v64i1_8 = extractelement <64 x i1> undef, i32 81160 %v64i1_15 = extractelement <64 x i1> undef, i32 151161 %v64i1_24 = extractelement <64 x i1> undef, i32 241162 %v64i1_31 = extractelement <64 x i1> undef, i32 311163 %v64i1_32 = extractelement <64 x i1> undef, i32 321164 %v64i1_48 = extractelement <64 x i1> undef, i32 481165 %v64i1_63 = extractelement <64 x i1> undef, i32 631166 1167 ret i32 undef1168}1169