[X86] Add MMX MOVD/MOVQ stores to folding tables to support stack folding
llvm-svn: 372770
This commit is contained in:
parent
45fd1e9d50
commit
a7f27f357d
|
|
@ -292,6 +292,8 @@ static const X86MemoryFoldTableEntry MemoryFoldTable0[] = {
|
|||
{ X86::JMP32r_NT, X86::JMP32m_NT, TB_FOLDED_LOAD },
|
||||
{ X86::JMP64r, X86::JMP64m, TB_FOLDED_LOAD },
|
||||
{ X86::JMP64r_NT, X86::JMP64m_NT, TB_FOLDED_LOAD },
|
||||
{ X86::MMX_MOVD64from64rr, X86::MMX_MOVD64from64rm, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::MMX_MOVD64grr, X86::MMX_MOVD64mr, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::MOV16ri, X86::MOV16mi, TB_FOLDED_STORE },
|
||||
{ X86::MOV16rr, X86::MOV16mr, TB_FOLDED_STORE },
|
||||
{ X86::MOV32ri, X86::MOV32mi, TB_FOLDED_STORE },
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@ declare x86_mmx @llvm.x86.sse.cvttps2pi(<4 x float>) nounwind readnone
|
|||
|
||||
; TODO stack_fold_movd_load
|
||||
|
||||
; TODO stack_fold_movd_store
|
||||
; padd forces execution on mmx
|
||||
define i32 @stack_fold_movd_store(x86_mmx %a0) nounwind {
|
||||
; CHECK-LABEL: stack_fold_movd_store:
|
||||
|
|
@ -109,8 +108,7 @@ define i32 @stack_fold_movd_store(x86_mmx %a0) nounwind {
|
|||
; CHECK-NEXT: pushq %r12
|
||||
; CHECK-NEXT: pushq %rbx
|
||||
; CHECK-NEXT: paddb %mm0, %mm0
|
||||
; CHECK-NEXT: movd %mm0, %eax
|
||||
; CHECK-NEXT: movl %eax, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
|
||||
; CHECK-NEXT: movd %mm0, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill
|
||||
; CHECK-NEXT: #APP
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: #NO_APP
|
||||
|
|
@ -131,7 +129,6 @@ define i32 @stack_fold_movd_store(x86_mmx %a0) nounwind {
|
|||
|
||||
; TODO stack_fold_movq_load
|
||||
|
||||
; TODO stack_fold_movq_store
|
||||
; padd forces execution on mmx
|
||||
define i64 @stack_fold_movq_store(x86_mmx %a0) nounwind {
|
||||
; CHECK-LABEL: stack_fold_movq_store:
|
||||
|
|
@ -143,8 +140,7 @@ define i64 @stack_fold_movq_store(x86_mmx %a0) nounwind {
|
|||
; CHECK-NEXT: pushq %r12
|
||||
; CHECK-NEXT: pushq %rbx
|
||||
; CHECK-NEXT: paddb %mm0, %mm0
|
||||
; CHECK-NEXT: movq %mm0, %rax
|
||||
; CHECK-NEXT: movq %rax, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill
|
||||
; CHECK-NEXT: movq %mm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Folded Spill
|
||||
; CHECK-NEXT: #APP
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: #NO_APP
|
||||
|
|
|
|||
Loading…
Reference in New Issue