summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-02-21 18:52:16 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-02-21 18:52:16 +0000
commit7f078eabda6685346df2b2ba00fa91d203d5fbd1 (patch)
treeb300fc22b47521135e3ad8de99415c42ce205b47
parent011dce2d1430dce3b19475d9218889eaa4388818 (diff)
downloadbcm5719-llvm-7f078eabda6685346df2b2ba00fa91d203d5fbd1.tar.gz
bcm5719-llvm-7f078eabda6685346df2b2ba00fa91d203d5fbd1.zip
[X86][MMX] Run MMX bitcast test on 32 and 64-bit targets
llvm-svn: 325707
-rw-r--r--llvm/test/CodeGen/X86/fast-isel-bc.ll46
1 files changed, 27 insertions, 19 deletions
diff --git a/llvm/test/CodeGen/X86/fast-isel-bc.ll b/llvm/test/CodeGen/X86/fast-isel-bc.ll
index b912caac66b..3bc84c88ad8 100644
--- a/llvm/test/CodeGen/X86/fast-isel-bc.ll
+++ b/llvm/test/CodeGen/X86/fast-isel-bc.ll
@@ -1,10 +1,8 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -O0 -mattr=+mmx,+sse2 | FileCheck %s
-; PR4684
+; RUN: llc < %s -O0 -mtriple=i686-apple-darwin9.8 -mattr=+mmx,+sse2 | FileCheck %s --check-prefixes=X86
+; RUN: llc < %s -O0 -mtriple=x86_64-apple-darwin9.8 -mattr=+mmx,+sse2 | FileCheck %s --check-prefixes=X64
-target datalayout =
-"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
-target triple = "x86_64-apple-darwin9.8"
+; PR4684
declare void @func2(x86_mmx)
@@ -16,20 +14,30 @@ declare void @func2(x86_mmx)
; CHEK: movd %mm0, %rdi
define void @func1() nounwind {
-; CHECK-LABEL: func1:
-; CHECK: ## %bb.0:
-; CHECK-NEXT: pushq %rax
-; CHECK-NEXT: movl $2, %eax
-; CHECK-NEXT: movl %eax, %ecx
-; CHECK-NEXT: movq %rcx, %xmm0
-; CHECK-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7]
-; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
-; CHECK-NEXT: movq %xmm0, (%rsp)
-; CHECK-NEXT: movq (%rsp), %mm0
-; CHECK-NEXT: movq2dq %mm0, %xmm0
-; CHECK-NEXT: callq _func2
-; CHECK-NEXT: popq %rax
-; CHECK-NEXT: retq
+; X86-LABEL: func1:
+; X86: ## %bb.0:
+; X86-NEXT: subl $12, %esp
+; X86-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero
+; X86-NEXT: movsd %xmm0, (%esp)
+; X86-NEXT: movq (%esp), %mm0
+; X86-NEXT: calll _func2
+; X86-NEXT: addl $12, %esp
+; X86-NEXT: retl
+;
+; X64-LABEL: func1:
+; X64: ## %bb.0:
+; X64-NEXT: pushq %rax
+; X64-NEXT: movl $2, %eax
+; X64-NEXT: movl %eax, %ecx
+; X64-NEXT: movq %rcx, %xmm0
+; X64-NEXT: pslldq {{.*#+}} xmm0 = zero,zero,zero,zero,zero,zero,zero,zero,xmm0[0,1,2,3,4,5,6,7]
+; X64-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
+; X64-NEXT: movq %xmm0, (%rsp)
+; X64-NEXT: movq (%rsp), %mm0
+; X64-NEXT: movq2dq %mm0, %xmm0
+; X64-NEXT: callq _func2
+; X64-NEXT: popq %rax
+; X64-NEXT: retq
%tmp0 = bitcast <2 x i32> <i32 0, i32 2> to x86_mmx
call void @func2(x86_mmx %tmp0)
ret void
OpenPOWER on IntegriCloud