diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-02-21 18:52:16 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-02-21 18:52:16 +0000 |
| commit | 7f078eabda6685346df2b2ba00fa91d203d5fbd1 (patch) | |
| tree | b300fc22b47521135e3ad8de99415c42ce205b47 | |
| parent | 011dce2d1430dce3b19475d9218889eaa4388818 (diff) | |
| download | bcm5719-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.ll | 46 |
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 |

