aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/memset64-on-x86-32.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/memset64-on-x86-32.ll')
-rw-r--r--test/CodeGen/X86/memset64-on-x86-32.ll58
1 files changed, 53 insertions, 5 deletions
diff --git a/test/CodeGen/X86/memset64-on-x86-32.ll b/test/CodeGen/X86/memset64-on-x86-32.ll
index 8cfa032797f7..861cb88b0f57 100644
--- a/test/CodeGen/X86/memset64-on-x86-32.ll
+++ b/test/CodeGen/X86/memset64-on-x86-32.ll
@@ -1,12 +1,60 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=nehalem | grep movups | count 5
-; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=core2 | grep movl | count 20
-; RUN: llc < %s -mtriple=i386-pc-mingw32 -mcpu=core2 | grep movl | count 20
-; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core2 | grep movq | count 10
+; NOTE: Assertions have been autogenerated by update_test_checks.py
+; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=sse4.2 | FileCheck %s --check-prefix=FAST
+; RUN: llc < %s -mtriple=i386-unknown-unknown -mattr=ssse3 | FileCheck %s --check-prefix=SLOW_32
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=ssse3 | FileCheck %s --check-prefix=SLOW_64
define void @bork() nounwind {
-entry:
+; FAST-LABEL: bork:
+; FAST: # BB#0:
+; FAST-NEXT: xorps %xmm0, %xmm0
+; FAST-NEXT: movups %xmm0, 64
+; FAST-NEXT: movups %xmm0, 48
+; FAST-NEXT: movups %xmm0, 32
+; FAST-NEXT: movups %xmm0, 16
+; FAST-NEXT: movups %xmm0, 0
+; FAST-NEXT: retl
+;
+; SLOW_32-LABEL: bork:
+; SLOW_32: # BB#0:
+; SLOW_32-NEXT: movl $0, 4
+; SLOW_32-NEXT: movl $0, 0
+; SLOW_32-NEXT: movl $0, 12
+; SLOW_32-NEXT: movl $0, 8
+; SLOW_32-NEXT: movl $0, 20
+; SLOW_32-NEXT: movl $0, 16
+; SLOW_32-NEXT: movl $0, 28
+; SLOW_32-NEXT: movl $0, 24
+; SLOW_32-NEXT: movl $0, 36
+; SLOW_32-NEXT: movl $0, 32
+; SLOW_32-NEXT: movl $0, 44
+; SLOW_32-NEXT: movl $0, 40
+; SLOW_32-NEXT: movl $0, 52
+; SLOW_32-NEXT: movl $0, 48
+; SLOW_32-NEXT: movl $0, 60
+; SLOW_32-NEXT: movl $0, 56
+; SLOW_32-NEXT: movl $0, 68
+; SLOW_32-NEXT: movl $0, 64
+; SLOW_32-NEXT: movl $0, 76
+; SLOW_32-NEXT: movl $0, 72
+; SLOW_32-NEXT: retl
+;
+; SLOW_64-LABEL: bork:
+; SLOW_64: # BB#0:
+; SLOW_64-NEXT: movq $0, 72
+; SLOW_64-NEXT: movq $0, 64
+; SLOW_64-NEXT: movq $0, 56
+; SLOW_64-NEXT: movq $0, 48
+; SLOW_64-NEXT: movq $0, 40
+; SLOW_64-NEXT: movq $0, 32
+; SLOW_64-NEXT: movq $0, 24
+; SLOW_64-NEXT: movq $0, 16
+; SLOW_64-NEXT: movq $0, 8
+; SLOW_64-NEXT: movq $0, 0
+; SLOW_64-NEXT: retq
+;
call void @llvm.memset.p0i8.i64(i8* null, i8 0, i64 80, i32 4, i1 false)
ret void
}
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind
+