summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/atom-call-reg-indirect.ll
diff options
context:
space:
mode:
authorPreston Gurd <preston.gurd@intel.com>2013-09-16 22:22:07 +0000
committerPreston Gurd <preston.gurd@intel.com>2013-09-16 22:22:07 +0000
commit0c190ad93f12027ec158eb2b0558d4ca375ecc39 (patch)
tree19dc77812936fed24245fc894ef34ee0c21630c7 /test/CodeGen/X86/atom-call-reg-indirect.ll
parentb06ea25b4c4cff341194279e01c08d23fa022378 (diff)
downloadllvm-0c190ad93f12027ec158eb2b0558d4ca375ecc39.tar.gz
llvm-0c190ad93f12027ec158eb2b0558d4ca375ecc39.tar.bz2
llvm-0c190ad93f12027ec158eb2b0558d4ca375ecc39.tar.xz
Add Atom Silvermont (slm) tests
- check that -mcpu=slm uses the call register indirect optimization - check that -mcpu=slm runs the scheduler - check that -mcpu=slm supports the movbe instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190814 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/atom-call-reg-indirect.ll')
-rw-r--r--test/CodeGen/X86/atom-call-reg-indirect.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/CodeGen/X86/atom-call-reg-indirect.ll b/test/CodeGen/X86/atom-call-reg-indirect.ll
index 933b98b82c..48f2d4c113 100644
--- a/test/CodeGen/X86/atom-call-reg-indirect.ll
+++ b/test/CodeGen/X86/atom-call-reg-indirect.ll
@@ -2,6 +2,8 @@
; RUN: llc < %s -mcpu=core2 -mtriple=i686-linux | FileCheck -check-prefix=ATOM-NOT32 %s
; RUN: llc < %s -mcpu=atom -mtriple=x86_64-linux | FileCheck -check-prefix=ATOM64 %s
; RUN: llc < %s -mcpu=core2 -mtriple=x86_64-linux | FileCheck -check-prefix=ATOM-NOT64 %s
+; RUN: llc < %s -mcpu=slm -mtriple=i686-linux | FileCheck -check-prefix=SLM32 %s
+; RUN: llc < %s -mcpu=slm -mtriple=x86_64-linux | FileCheck -check-prefix=SLM64 %s
; fn_ptr.ll
@@ -20,6 +22,10 @@ entry:
;ATOM64: movq (%rcx), %rcx
;ATOM64: callq *%rcx
;ATOM-NOT64: callq *(%rcx)
+ ;SLM32: movl (%ecx), %ecx
+ ;SLM32: calll *%ecx
+ ;SLM64: movq (%rcx), %rcx
+ ;SLM64: callq *%rcx
tail call void %1(%class.A* %call)
ret i32 0
}
@@ -40,6 +46,10 @@ entry:
;ATOM64: movq (%rax), %rax
;ATOM64: callq *%rax
;ATOM-NOT64: callq *(%rax)
+ ;SLM32: movl (%eax), %eax
+ ;SLM32: calll *%eax
+ ;SLM64: movq (%rax), %rax
+ ;SLM64: callq *%rax
tail call void %1(i32 2)
ret i32 0
}