[llvm] r329402 - [CostModel][X86] Regenerate integer extension/truncation cost tests with update_analyze_test_checks.py

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 6 08:28:27 PDT 2018


Author: rksimon
Date: Fri Apr  6 08:28:26 2018
New Revision: 329402

URL: http://llvm.org/viewvc/llvm-project?rev=329402&view=rev
Log:
[CostModel][X86] Regenerate integer extension/truncation cost tests with update_analyze_test_checks.py

Modified:
    llvm/trunk/test/Analysis/CostModel/X86/sse-itoi.ll

Modified: llvm/trunk/test/Analysis/CostModel/X86/sse-itoi.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/CostModel/X86/sse-itoi.ll?rev=329402&r1=329401&r2=329402&view=diff
==============================================================================
--- llvm/trunk/test/Analysis/CostModel/X86/sse-itoi.ll (original)
+++ llvm/trunk/test/Analysis/CostModel/X86/sse-itoi.ll Fri Apr  6 08:28:26 2018
@@ -1,12 +1,19 @@
-; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+sse2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE2 %s
-; RUN: opt -mtriple=x86_64-apple-darwin -mattr=+sse4.1 -cost-model -analyze < %s | FileCheck --check-prefix=SSE41 %s
+; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
+; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+sse2 | FileCheck %s --check-prefixes=CHECK,SSE2
+; RUN: opt < %s -mtriple=x86_64-apple-darwin -cost-model -analyze -mattr=+sse4.1 | FileCheck %s --check-prefixes=CHECK,SSE41
 
 define void @zext_v4i8_to_v4i64(<4 x i8>* %a) {
-; SSE2: zext_v4i8_to_v4i64
-; SSE2: cost of 4 {{.*}} zext
-;
-; SSE41: zext_v4i8_to_v4i64
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v4i8_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = zext <4 x i8> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v4i8_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <4 x i8> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = zext <4 x i8> %1 to <4 x i64>
@@ -15,11 +22,17 @@ define void @zext_v4i8_to_v4i64(<4 x i8>
 }
 
 define void @sext_v4i8_to_v4i64(<4 x i8>* %a) {
-; SSE2: sext_v4i8_to_v4i64
-; SSE2: cost of 8 {{.*}} sext
-;
-; SSE41: sext_v4i8_to_v4i64
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i8_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %2 = sext <4 x i8> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i8_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <4 x i8> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = sext <4 x i8> %1 to <4 x i64>
@@ -28,11 +41,17 @@ define void @sext_v4i8_to_v4i64(<4 x i8>
 }
 
 define void @zext_v4i16_to_v4i64(<4 x i16>* %a) {
-; SSE2: zext_v4i16_to_v4i64
-; SSE2: cost of 3 {{.*}} zext
-;
-; SSE41: zext_v4i16_to_v4i64
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v4i16_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = zext <4 x i16> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v4i16_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <4 x i16> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i16>, <4 x i16>* %a
   %2 = zext <4 x i16> %1 to <4 x i64>
@@ -41,11 +60,17 @@ define void @zext_v4i16_to_v4i64(<4 x i1
 }
 
 define void @sext_v4i16_to_v4i64(<4 x i16>* %a) {
-; SSE2: sext_v4i16_to_v4i64
-; SSE2: cost of 10 {{.*}} sext
-;
-; SSE41: sext_v4i16_to_v4i64
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i16_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %2 = sext <4 x i16> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i16_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <4 x i16> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i16>, <4 x i16>* %a
   %2 = sext <4 x i16> %1 to <4 x i64>
@@ -55,11 +80,17 @@ define void @sext_v4i16_to_v4i64(<4 x i1
 
 
 define void @zext_v4i32_to_v4i64(<4 x i32>* %a) {
-; SSE2: zext_v4i32_to_v4i64
-; SSE2: cost of 3 {{.*}} zext
-;
-; SSE41: zext_v4i32_to_v4i64
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v4i32_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = zext <4 x i32> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v4i32_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <4 x i32> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i32>, <4 x i32>* %a
   %2 = zext <4 x i32> %1 to <4 x i64>
@@ -68,11 +99,17 @@ define void @zext_v4i32_to_v4i64(<4 x i3
 }
 
 define void @sext_v4i32_to_v4i64(<4 x i32>* %a) {
-; SSE2: sext_v4i32_to_v4i64
-; SSE2: cost of 5 {{.*}} sext
-;
-; SSE41: sext_v4i32_to_v4i64
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i32_to_v4i64'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %2 = sext <4 x i32> %1 to <4 x i64>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i32_to_v4i64'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <4 x i32> %1 to <4 x i64>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <4 x i64> %2, <4 x i64>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i32>, <4 x i32>* %a
   %2 = sext <4 x i32> %1 to <4 x i64>
@@ -81,11 +118,17 @@ define void @sext_v4i32_to_v4i64(<4 x i3
 }
 
 define void @zext_v16i16_to_v16i32(<16 x i16>* %a) {
-; SSE2: zext_v16i16_to_v16i32
-; SSE2: cost of 6 {{.*}} zext
-;
-; SSE41: zext_v16i16_to_v16i32
-; SSE41: cost of 4 {{.*}} zext
+; SSE2-LABEL: 'zext_v16i16_to_v16i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <16 x i16>, <16 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %2 = zext <16 x i16> %1 to <16 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v16i16_to_v16i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <16 x i16>, <16 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = zext <16 x i16> %1 to <16 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i16>, <16 x i16>* %a
   %2 = zext <16 x i16> %1 to <16 x i32>
@@ -94,11 +137,17 @@ define void @zext_v16i16_to_v16i32(<16 x
 }
 
 define void @sext_v16i16_to_v16i32(<16 x i16>* %a) {
-; SSE2: sext_v16i16_to_v16i32
-; SSE2: cost of 8 {{.*}} sext
-;
-; SSE41: sext_v16i16_to_v16i32
-; SSE41: cost of 4 {{.*}} sext
+; SSE2-LABEL: 'sext_v16i16_to_v16i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <16 x i16>, <16 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %2 = sext <16 x i16> %1 to <16 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v16i16_to_v16i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <16 x i16>, <16 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = sext <16 x i16> %1 to <16 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i16>, <16 x i16>* %a
   %2 = sext <16 x i16> %1 to <16 x i32>
@@ -107,11 +156,17 @@ define void @sext_v16i16_to_v16i32(<16 x
 }
 
 define void @zext_v8i16_to_v8i32(<8 x i16>* %a) {
-; SSE2: zext_v8i16_to_v8i32
-; SSE2: cost of 3 {{.*}} zext
-;
-; SSE41: zext_v8i16_to_v8i32
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v8i16_to_v8i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = zext <8 x i16> %1 to <8 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v8i16_to_v8i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <8 x i16> %1 to <8 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i16>, <8 x i16>* %a
   %2 = zext <8 x i16> %1 to <8 x i32>
@@ -120,11 +175,17 @@ define void @zext_v8i16_to_v8i32(<8 x i1
 }
 
 define void @sext_v8i16_to_v8i32(<8 x i16>* %a) {
-; SSE2: sext_v8i16_to_v8i32
-; SSE2: cost of 4 {{.*}} sext
-;
-; SSE41: sext_v8i16_to_v8i32
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v8i16_to_v8i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = sext <8 x i16> %1 to <8 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v8i16_to_v8i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <8 x i16> %1 to <8 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i16>, <8 x i16>* %a
   %2 = sext <8 x i16> %1 to <8 x i32>
@@ -133,11 +194,11 @@ define void @sext_v8i16_to_v8i32(<8 x i1
 }
 
 define void @zext_v4i16_to_v4i32(<4 x i16>* %a) {
-; SSE2: zext_v4i16_to_v4i32
-; SSE2: cost of 1 {{.*}} zext
-;
-; SSE41: zext_v4i16_to_v4i32
-; SSE41: cost of 1 {{.*}} zext
+; CHECK-LABEL: 'zext_v4i16_to_v4i32'
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = zext <4 x i16> %1 to <4 x i32>
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i16>, <4 x i16>* %a
   %2 = zext <4 x i16> %1 to <4 x i32>
@@ -146,11 +207,17 @@ define void @zext_v4i16_to_v4i32(<4 x i1
 }
 
 define void @sext_v4i16_to_v4i32(<4 x i16>* %a) {
-; SSE2: sext_v4i16_to_v4i32
-; SSE2: cost of 2 {{.*}} sext
-;
-; SSE41: sext_v4i16_to_v4i32
-; SSE41: cost of 1 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i16_to_v4i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <4 x i16> %1 to <4 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i16_to_v4i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = sext <4 x i16> %1 to <4 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i16>, <4 x i16>* %a
   %2 = sext <4 x i16> %1 to <4 x i32>
@@ -159,11 +226,17 @@ define void @sext_v4i16_to_v4i32(<4 x i1
 }
 
 define void @zext_v16i8_to_v16i32(<16 x i8>* %a) {
-; SSE2: zext_v16i8_to_v16i32
-; SSE2: cost of 9 {{.*}} zext
-;
-; SSE41: zext_v16i8_to_v16i32
-; SSE41: cost of 4 {{.*}} zext
+; SSE2-LABEL: 'zext_v16i8_to_v16i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %2 = zext <16 x i8> %1 to <16 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v16i8_to_v16i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = zext <16 x i8> %1 to <16 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i8>, <16 x i8>* %a
   %2 = zext <16 x i8> %1 to <16 x i32>
@@ -172,11 +245,17 @@ define void @zext_v16i8_to_v16i32(<16 x
 }
 
 define void @sext_v16i8_to_v16i32(<16 x i8>* %a) {
-; SSE2: sext_v16i8_to_v16i32
-; SSE2: cost of 12 {{.*}} sext
-;
-; SSE41: sext_v16i8_to_v16i32
-; SSE41: cost of 4 {{.*}} sext
+; SSE2-LABEL: 'sext_v16i8_to_v16i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %2 = sext <16 x i8> %1 to <16 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v16i8_to_v16i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = sext <16 x i8> %1 to <16 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: store <16 x i32> %2, <16 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i8>, <16 x i8>* %a
   %2 = sext <16 x i8> %1 to <16 x i32>
@@ -185,11 +264,17 @@ define void @sext_v16i8_to_v16i32(<16 x
 }
 
 define void @zext_v8i8_to_v8i32(<8 x i8>* %a) {
-; SSE2: zext_v8i8_to_v8i32
-; SSE2: cost of 6 {{.*}} zext
-;
-; SSE41: zext_v8i8_to_v8i32
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v8i8_to_v8i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %2 = zext <8 x i8> %1 to <8 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v8i8_to_v8i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <8 x i8> %1 to <8 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i8>, <8 x i8>* %a
   %2 = zext <8 x i8> %1 to <8 x i32>
@@ -198,11 +283,17 @@ define void @zext_v8i8_to_v8i32(<8 x i8>
 }
 
 define void @sext_v8i8_to_v8i32(<8 x i8>* %a) {
-; SSE2: sext_v8i8_to_v8i32
-; SSE2: cost of 6 {{.*}} sext
-;
-; SSE41: sext_v8i8_to_v8i32
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v8i8_to_v8i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %2 = sext <8 x i8> %1 to <8 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v8i8_to_v8i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <8 x i8> %1 to <8 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <8 x i32> %2, <8 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i8>, <8 x i8>* %a
   %2 = sext <8 x i8> %1 to <8 x i32>
@@ -211,11 +302,17 @@ define void @sext_v8i8_to_v8i32(<8 x i8>
 }
 
 define void @zext_v4i8_to_v4i32(<4 x i8>* %a) {
-; SSE2: zext_v4i8_to_v4i32
-; SSE2: cost of 2 {{.*}} zext
-;
-; SSE41: zext_v4i8_to_v4i32
-; SSE41: cost of 1 {{.*}} zext
+; SSE2-LABEL: 'zext_v4i8_to_v4i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <4 x i8> %1 to <4 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v4i8_to_v4i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = zext <4 x i8> %1 to <4 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = zext <4 x i8> %1 to <4 x i32>
@@ -224,11 +321,17 @@ define void @zext_v4i8_to_v4i32(<4 x i8>
 }
 
 define void @sext_v4i8_to_v4i32(<4 x i8>* %a) {
-; SSE2: sext_v4i8_to_v4i32
-; SSE2: cost of 3 {{.*}} sext
-;
-; SSE41: sext_v4i8_to_v4i32
-; SSE41: cost of 1 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i8_to_v4i32'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = sext <4 x i8> %1 to <4 x i32>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i8_to_v4i32'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = sext <4 x i8> %1 to <4 x i32>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i32> %2, <4 x i32>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = sext <4 x i8> %1 to <4 x i32>
@@ -237,11 +340,17 @@ define void @sext_v4i8_to_v4i32(<4 x i8>
 }
 
 define void @zext_v16i8_to_v16i16(<16 x i8>* %a) {
-; SSE2: zext_v16i8_to_v16i16
-; SSE2: cost of 3 {{.*}} zext
-;
-; SSE41: zext_v16i8_to_v16i16
-; SSE41: cost of 2 {{.*}} zext
+; SSE2-LABEL: 'zext_v16i8_to_v16i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = zext <16 x i8> %1 to <16 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'zext_v16i8_to_v16i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = zext <16 x i8> %1 to <16 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i8>, <16 x i8>* %a
   %2 = zext <16 x i8> %1 to <16 x i16>
@@ -250,11 +359,17 @@ define void @zext_v16i8_to_v16i16(<16 x
 }
 
 define void @sext_v16i8_to_v16i16(<16 x i8>* %a) {
-; SSE2: sext_v16i8_to_v16i16
-; SSE2: cost of 4 {{.*}} sext
-;
-; SSE41: sext_v16i8_to_v16i16
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v16i8_to_v16i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = sext <16 x i8> %1 to <16 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v16i8_to_v16i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <16 x i8>, <16 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <16 x i8> %1 to <16 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i8>, <16 x i8>* %a
   %2 = sext <16 x i8> %1 to <16 x i16>
@@ -263,11 +378,11 @@ define void @sext_v16i8_to_v16i16(<16 x
 }
 
 define void @zext_v8i8_to_v8i16(<8 x i8>* %a) {
-; SSE2: zext_v8i8_to_v8i16
-; SSE2: cost of 1 {{.*}} zext
-;
-; SSE41: zext_v8i8_to_v8i16
-; SSE41: cost of 1 {{.*}} zext
+; CHECK-LABEL: 'zext_v8i8_to_v8i16'
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = zext <8 x i8> %1 to <8 x i16>
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> %2, <8 x i16>* undef, align 4
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i8>, <8 x i8>* %a
   %2 = zext <8 x i8> %1 to <8 x i16>
@@ -276,11 +391,17 @@ define void @zext_v8i8_to_v8i16(<8 x i8>
 }
 
 define void @sext_v8i8_to_v8i16(<8 x i8>* %a) {
-; SSE2: sext_v8i8_to_v8i16
-; SSE2: cost of 2 {{.*}} sext
-;
-; SSE41: sext_v8i8_to_v8i16
-; SSE41: cost of 1 {{.*}} sext
+; SSE2-LABEL: 'sext_v8i8_to_v8i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <8 x i8> %1 to <8 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> %2, <8 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v8i8_to_v8i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i8>, <8 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = sext <8 x i8> %1 to <8 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> %2, <8 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i8>, <8 x i8>* %a
   %2 = sext <8 x i8> %1 to <8 x i16>
@@ -289,11 +410,11 @@ define void @sext_v8i8_to_v8i16(<8 x i8>
 }
 
 define void @zext_v4i8_to_v4i16(<4 x i8>* %a) {
-; SSE2: zext_v4i8_to_v4i16
-; SSE2: cost of 1 {{.*}} zext
-;
-; SSE41: zext_v4i8_to_v4i16
-; SSE41: cost of 1 {{.*}} zext
+; CHECK-LABEL: 'zext_v4i8_to_v4i16'
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = zext <4 x i8> %1 to <4 x i16>
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> %2, <4 x i16>* undef, align 4
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = zext <4 x i8> %1 to <4 x i16>
@@ -302,11 +423,17 @@ define void @zext_v4i8_to_v4i16(<4 x i8>
 }
 
 define void @sext_v4i8_to_v4i16(<4 x i8>* %a) {
-; SSE2: sext_v4i8_to_v4i16
-; SSE2: cost of 6 {{.*}} sext
-;
-; SSE41: sext_v4i8_to_v4i16
-; SSE41: cost of 2 {{.*}} sext
+; SSE2-LABEL: 'sext_v4i8_to_v4i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %2 = sext <4 x i8> %1 to <4 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> %2, <4 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'sext_v4i8_to_v4i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i8>, <4 x i8>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = sext <4 x i8> %1 to <4 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> %2, <4 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i8>, <4 x i8>* %a
   %2 = sext <4 x i8> %1 to <4 x i16>
@@ -315,11 +442,17 @@ define void @sext_v4i8_to_v4i16(<4 x i8>
 }
 
 define void @truncate_v16i32_to_v16i16(<16 x i32>* %a) {
-; SSE2: truncate_v16i32_to_v16i16
-; SSE2: cost of 10 {{.*}} trunc
-;
-; SSE41: truncate_v16i32_to_v16i16
-; SSE41: cost of 6 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v16i32_to_v16i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %1 = load <16 x i32>, <16 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %2 = trunc <16 x i32> %1 to <16 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v16i32_to_v16i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %1 = load <16 x i32>, <16 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %2 = trunc <16 x i32> %1 to <16 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: store <16 x i16> %2, <16 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i32>, <16 x i32>* %a
   %2 = trunc <16 x i32> %1 to <16 x i16>
@@ -328,11 +461,17 @@ define void @truncate_v16i32_to_v16i16(<
 }
 
 define void @truncate_v8i32_to_v8i16(<8 x i32>* %a) {
-; SSE2: truncate_v8i32_to_v8i16
-; SSE2: cost of 5 {{.*}} trunc
-;
-; SSE41: truncate_v8i32_to_v8i16
-; SSE41: cost of 3 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v8i32_to_v8i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <8 x i32>, <8 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %2 = trunc <8 x i32> %1 to <8 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> %2, <8 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v8i32_to_v8i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <8 x i32>, <8 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = trunc <8 x i32> %1 to <8 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i16> %2, <8 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i32>, <8 x i32>* %a
   %2 = trunc <8 x i32> %1 to <8 x i16>
@@ -341,11 +480,17 @@ define void @truncate_v8i32_to_v8i16(<8
 }
 
 define void @truncate_v4i32_to_v4i16(<4 x i32>* %a) {
-; SSE2: truncate_v4i32_to_v4i16
-; SSE2: cost of 3 {{.*}} trunc
-;
-; SSE41: truncate_v4i32_to_v4i16
-; SSE41: cost of 1 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v4i32_to_v4i16'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = trunc <4 x i32> %1 to <4 x i16>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> %2, <4 x i16>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v4i32_to_v4i16'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = trunc <4 x i32> %1 to <4 x i16>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i16> %2, <4 x i16>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i32>, <4 x i32>* %a
   %2 = trunc <4 x i32> %1 to <4 x i16>
@@ -354,11 +499,11 @@ define void @truncate_v4i32_to_v4i16(<4
 }
 
 define void @truncate_v16i32_to_v16i8(<16 x i32>* %a) {
-; SSE2: truncate_v16i32_to_v16i8
-; SSE2: cost of 7 {{.*}} trunc
-;
-; SSE41: truncate_v16i32_to_v16i8
-; SSE41: cost of 7 {{.*}} trunc
+; CHECK-LABEL: 'truncate_v16i32_to_v16i8'
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %1 = load <16 x i32>, <16 x i32>* %a
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %2 = trunc <16 x i32> %1 to <16 x i8>
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> %2, <16 x i8>* undef, align 4
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i32>, <16 x i32>* %a
   %2 = trunc <16 x i32> %1 to <16 x i8>
@@ -367,11 +512,17 @@ define void @truncate_v16i32_to_v16i8(<1
 }
 
 define void @truncate_v8i32_to_v8i8(<8 x i32>* %a) {
-; SSE2: truncate_v8i32_to_v8i8
-; SSE2: cost of 4 {{.*}} trunc
-;
-; SSE41: truncate_v8i32_to_v8i8
-; SSE41: cost of 3 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v8i32_to_v8i8'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <8 x i32>, <8 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = trunc <8 x i32> %1 to <8 x i8>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> %2, <8 x i8>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v8i32_to_v8i8'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <8 x i32>, <8 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = trunc <8 x i32> %1 to <8 x i8>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> %2, <8 x i8>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i32>, <8 x i32>* %a
   %2 = trunc <8 x i32> %1 to <8 x i8>
@@ -380,11 +531,17 @@ define void @truncate_v8i32_to_v8i8(<8 x
 }
 
 define void @truncate_v4i32_to_v4i8(<4 x i32>* %a) {
-; SSE2: truncate_v4i32_to_v4i8
-; SSE2: cost of 3 {{.*}} trunc
-;
-; SSE41: truncate_v4i32_to_v4i8
-; SSE41: cost of 1 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v4i32_to_v4i8'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = trunc <4 x i32> %1 to <4 x i8>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> %2, <4 x i8>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v4i32_to_v4i8'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i32>, <4 x i32>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = trunc <4 x i32> %1 to <4 x i8>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> %2, <4 x i8>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i32>, <4 x i32>* %a
   %2 = trunc <4 x i32> %1 to <4 x i8>
@@ -393,11 +550,11 @@ define void @truncate_v4i32_to_v4i8(<4 x
 }
 
 define void @truncate_v16i16_to_v16i8(<16 x i16>* %a) {
-; SSE2: truncate_v16i16_to_v16i8
-; SSE2: cost of 3 {{.*}} trunc
-;
-; SSE41: truncate_v16i16_to_v16i8
-; SSE41: cost of 3 {{.*}} trunc
+; CHECK-LABEL: 'truncate_v16i16_to_v16i8'
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %1 = load <16 x i16>, <16 x i16>* %a
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %2 = trunc <16 x i16> %1 to <16 x i8>
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <16 x i8> %2, <16 x i8>* undef, align 4
+; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <16 x i16>, <16 x i16>* %a
   %2 = trunc <16 x i16> %1 to <16 x i8>
@@ -406,11 +563,17 @@ define void @truncate_v16i16_to_v16i8(<1
 }
 
 define void @truncate_v8i16_to_v8i8(<8 x i16>* %a) {
-; SSE2: truncate_v8i16_to_v8i8
-; SSE2: cost of 2 {{.*}} trunc
-;
-; SSE41: truncate_v8i16_to_v8i8
-; SSE41: cost of 1 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v8i16_to_v8i8'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = trunc <8 x i16> %1 to <8 x i8>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> %2, <8 x i8>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v8i16_to_v8i8'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <8 x i16>, <8 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %2 = trunc <8 x i16> %1 to <8 x i8>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <8 x i8> %2, <8 x i8>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <8 x i16>, <8 x i16>* %a
   %2 = trunc <8 x i16> %1 to <8 x i8>
@@ -419,11 +582,17 @@ define void @truncate_v8i16_to_v8i8(<8 x
 }
 
 define void @truncate_v4i16_to_v4i8(<4 x i16>* %a) {
-; SSE2: truncate_v4i16_to_v4i8
-; SSE2: cost of 4 {{.*}} trunc
-;
-; SSE41: truncate_v4i16_to_v4i8
-; SSE41: cost of 2 {{.*}} trunc
+; SSE2-LABEL: 'truncate_v4i16_to_v4i8'
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %2 = trunc <4 x i16> %1 to <4 x i8>
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> %2, <4 x i8>* undef, align 4
+; SSE2-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
+;
+; SSE41-LABEL: 'truncate_v4i16_to_v4i8'
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %1 = load <4 x i16>, <4 x i16>* %a
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %2 = trunc <4 x i16> %1 to <4 x i8>
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: store <4 x i8> %2, <4 x i8>* undef, align 4
+; SSE41-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
 ;
   %1 = load <4 x i16>, <4 x i16>* %a
   %2 = trunc <4 x i16> %1 to <4 x i8>




More information about the llvm-commits mailing list