Use movups to lower memcpy and memset even if it's not fast (like corei7).
[oota-llvm.git] / test / CodeGen / X86 / unaligned-load.ll
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -mcpu=core2  -relocation-model=dynamic-no-pic --asm-verbose=0 | FileCheck %s
2
3 @.str1 = internal constant [31 x i8] c"DHRYSTONE PROGRAM, SOME STRING\00", align 8
4 @.str3 = internal constant [31 x i8] c"DHRYSTONE PROGRAM, 2'ND STRING\00", align 8
5
6 define void @func() nounwind ssp {
7 entry:
8   %String2Loc = alloca [31 x i8], align 1
9   br label %bb
10
11 bb:
12   %String2Loc9 = getelementptr inbounds [31 x i8]* %String2Loc, i64 0, i64 0
13   call void @llvm.memcpy.i64(i8* %String2Loc9, i8* getelementptr inbounds ([31 x i8]* @.str3, i64 0, i64 0), i64 31, i32 1)
14 ; CHECK: movabsq $2325069237881678925, %rax
15 ; CHECK: movups _.str3(%rip), %xmm0
16   br label %bb
17
18 return:
19   ret void
20 }
21
22 declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
23
24 ; CHECK: .section
25 ; CHECK: .align  4
26 ; CHECK-NEXT: _.str1:
27 ; CHECK-NEXT: .asciz "DHRYSTONE PROGRAM, SOME STRING"
28 ; CHECK: .align 4
29 ; CHECK-NEXT: _.str3: