aboutsummaryrefslogtreecommitdiff
path: root/test/Analysis/CostModel/X86/cast.ll
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2013-04-03 14:07:16 +0000
committerAlexander Kornienko <alexfh@google.com>2013-04-03 14:07:16 +0000
commite133bc868944822bf8961f825d3aa63d6fa48fb7 (patch)
treeebbd4a8040181471467a9737d90d94dc6b58b316 /test/Analysis/CostModel/X86/cast.ll
parent647735c781c5b37061ee03d6e9e6c7dda92218e2 (diff)
parent080e3c523e87ec68ca1ea5db4cd49816028dd8bd (diff)
Updating branches/google/stable to r178511stable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/google/stable@178655 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Analysis/CostModel/X86/cast.ll')
-rw-r--r--test/Analysis/CostModel/X86/cast.ll79
1 files changed, 77 insertions, 2 deletions
diff --git a/test/Analysis/CostModel/X86/cast.ll b/test/Analysis/CostModel/X86/cast.ll
index bacc778691..b69b3bf630 100644
--- a/test/Analysis/CostModel/X86/cast.ll
+++ b/test/Analysis/CostModel/X86/cast.ll
@@ -44,9 +44,9 @@ define i32 @zext_sext(<8 x i1> %in) {
%B = zext <8 x i16> undef to <8 x i32>
;CHECK: cost of 1 {{.*}} sext
%C = sext <4 x i32> undef to <4 x i64>
- ;CHECK: cost of 8 {{.*}} sext
+ ;CHECK: cost of 6 {{.*}} sext
%C1 = sext <4 x i8> undef to <4 x i64>
- ;CHECK: cost of 8 {{.*}} sext
+ ;CHECK: cost of 6 {{.*}} sext
%C2 = sext <4 x i16> undef to <4 x i64>
;CHECK: cost of 1 {{.*}} zext
@@ -77,3 +77,78 @@ define i32 @masks4(<4 x i1> %in) {
ret i32 undef
}
+define void @sitofp4(<4 x i1> %a, <4 x i8> %b, <4 x i16> %c, <4 x i32> %d) {
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %A1 = sitofp <4 x i1> %a to <4 x float>
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %A2 = sitofp <4 x i1> %a to <4 x double>
+
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %B1 = sitofp <4 x i8> %b to <4 x float>
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %B2 = sitofp <4 x i8> %b to <4 x double>
+
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %C1 = sitofp <4 x i16> %c to <4 x float>
+ ; CHECK: cost of 3 {{.*}} sitofp
+ %C2 = sitofp <4 x i16> %c to <4 x double>
+
+ ; CHECK: cost of 1 {{.*}} sitofp
+ %D1 = sitofp <4 x i32> %d to <4 x float>
+ ; CHECK: cost of 1 {{.*}} sitofp
+ %D2 = sitofp <4 x i32> %d to <4 x double>
+ ret void
+}
+
+define void @sitofp8(<8 x i1> %a, <8 x i8> %b, <8 x i16> %c, <8 x i32> %d) {
+ ; CHECK: cost of 8 {{.*}} sitofp
+ %A1 = sitofp <8 x i1> %a to <8 x float>
+
+ ; CHECK: cost of 8 {{.*}} sitofp
+ %B1 = sitofp <8 x i8> %b to <8 x float>
+
+ ; CHECK: cost of 5 {{.*}} sitofp
+ %C1 = sitofp <8 x i16> %c to <8 x float>
+
+ ; CHECK: cost of 1 {{.*}} sitofp
+ %D1 = sitofp <8 x i32> %d to <8 x float>
+ ret void
+}
+
+define void @uitofp4(<4 x i1> %a, <4 x i8> %b, <4 x i16> %c, <4 x i32> %d) {
+ ; CHECK: cost of 7 {{.*}} uitofp
+ %A1 = uitofp <4 x i1> %a to <4 x float>
+ ; CHECK: cost of 7 {{.*}} uitofp
+ %A2 = uitofp <4 x i1> %a to <4 x double>
+
+ ; CHECK: cost of 2 {{.*}} uitofp
+ %B1 = uitofp <4 x i8> %b to <4 x float>
+ ; CHECK: cost of 2 {{.*}} uitofp
+ %B2 = uitofp <4 x i8> %b to <4 x double>
+
+ ; CHECK: cost of 2 {{.*}} uitofp
+ %C1 = uitofp <4 x i16> %c to <4 x float>
+ ; CHECK: cost of 2 {{.*}} uitofp
+ %C2 = uitofp <4 x i16> %c to <4 x double>
+
+ ; CHECK: cost of 6 {{.*}} uitofp
+ %D1 = uitofp <4 x i32> %d to <4 x float>
+ ; CHECK: cost of 6 {{.*}} uitofp
+ %D2 = uitofp <4 x i32> %d to <4 x double>
+ ret void
+}
+
+define void @uitofp8(<8 x i1> %a, <8 x i8> %b, <8 x i16> %c, <8 x i32> %d) {
+ ; CHECK: cost of 6 {{.*}} uitofp
+ %A1 = uitofp <8 x i1> %a to <8 x float>
+
+ ; CHECK: cost of 5 {{.*}} uitofp
+ %B1 = uitofp <8 x i8> %b to <8 x float>
+
+ ; CHECK: cost of 5 {{.*}} uitofp
+ %C1 = uitofp <8 x i16> %c to <8 x float>
+
+ ; CHECK: cost of 9 {{.*}} uitofp
+ %D1 = uitofp <8 x i32> %d to <8 x float>
+ ret void
+}