llvm/test/CodeGen/X86/expand-vr64-gr64-copy.mir
Quentin Colombet 3d35f0d482 [MIR] Print on the given output instead of stderr.
Currently the MIR framework prints all its outputs (errors and actual
representation) on stderr.

This patch fixes that by printing the regular output in the output
specified with -o.

Differential Revision: http://reviews.llvm.org/D22251

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275314 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-13 20:36:03 +00:00

37 lines
1.0 KiB
YAML

# RUN: llc -run-pass postrapseudos -mtriple=x86_64-unknown-unknown -mattr=+3dnow -o - %s | FileCheck %s
# This test verifies that the ExpandPostRA pass expands the GR64 <-> VR64
# copies into appropriate MMX_MOV instructions.
--- |
define <2 x i32> @test_pswapdsi(<2 x i32> %a) nounwind readnone {
entry:
%0 = bitcast <2 x i32> %a to x86_mmx
%1 = tail call x86_mmx @llvm.x86.3dnowa.pswapd(x86_mmx %0)
%2 = bitcast x86_mmx %1 to <2 x i32>
ret <2 x i32> %2
}
declare x86_mmx @llvm.x86.3dnowa.pswapd(x86_mmx) nounwind readnone
...
---
name: test_pswapdsi
tracksRegLiveness: true
body: |
bb.0.entry:
liveins: %xmm0
%xmm0 = PSHUFDri killed %xmm0, -24
MOVPQI2QImr %rsp, 1, _, -8, _, killed %xmm0
%mm0 = PSWAPDrm %rsp, 1, _, -8, _
; CHECK: %rax = MMX_MOVD64from64rr %mm0
; CHECK-NEXT: %mm0 = MMX_MOVD64to64rr %rax
%rax = COPY %mm0
%mm0 = COPY %rax
MMX_MOVQ64mr %rsp, 1, _, -16, _, killed %mm0
%xmm0 = MOVQI2PQIrm %rsp, 1, _, -16, _
%xmm0 = PSHUFDri killed %xmm0, -44
RETQ %xmm0
...