X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FX86%2Fbyval5.ll;h=6d734a44b3c358c3e85ede9cba73a49b8e50ed5b;hb=90c9a16dbfa347016977fa49b0cfe0db438a9504;hp=95bf3f4239df91bee2d7c7139887064a3da4593c;hpb=618b0d59e609fb830ba13fbf236f783dccac6c3a;p=oota-llvm.git diff --git a/test/CodeGen/X86/byval5.ll b/test/CodeGen/X86/byval5.ll index 95bf3f4239d..6d734a44b3c 100644 --- a/test/CodeGen/X86/byval5.ll +++ b/test/CodeGen/X86/byval5.ll @@ -1,27 +1,66 @@ -; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsl | count 2 -; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsb | count 2 +; RUN: llc < %s -mtriple=x86_64-linux -mattr=-avx | FileCheck %s -check-prefix=X64 +; X64-NOT: movsq +; X64: rep +; X64-NOT: rep +; X64: movsq +; X64-NOT: movsq +; X64: rep +; X64-NOT: rep +; X64: movsq +; X64-NOT: rep +; X64-NOT: movsq -%struct.s = type { i8, i8, i8, i8, i8, i8 } +; Win64 has not supported byval yet. + +; RUN: llc < %s -march=x86 -mattr=-avx | FileCheck %s -check-prefix=X32 +; X32-NOT: movsl +; X32: rep +; X32-NOT: rep +; X32: movsl +; X32-NOT: movsl +; X32: rep +; X32-NOT: rep +; X32: movsl +; X32-NOT: rep +; X32-NOT: movsl + +%struct.s = type { i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8, i8, i8, i8, i8, i8, i8, i8, + i8 } define void @g(i8 signext %a1, i8 signext %a2, i8 signext %a3, i8 signext %a4, i8 signext %a5, i8 signext %a6) { entry: %a = alloca %struct.s - %tmp = getelementptr %struct.s* %a, i32 0, i32 0 + %tmp = getelementptr %struct.s, %struct.s* %a, i32 0, i32 0 store i8 %a1, i8* %tmp, align 8 - %tmp2 = getelementptr %struct.s* %a, i32 0, i32 1 + %tmp2 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 1 store i8 %a2, i8* %tmp2, align 8 - %tmp4 = getelementptr %struct.s* %a, i32 0, i32 2 + %tmp4 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 2 store i8 %a3, i8* %tmp4, align 8 - %tmp6 = getelementptr %struct.s* %a, i32 0, i32 3 + %tmp6 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 3 store i8 %a4, i8* %tmp6, align 8 - %tmp8 = getelementptr %struct.s* %a, i32 0, i32 4 + %tmp8 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 4 store i8 %a5, i8* %tmp8, align 8 - %tmp10 = getelementptr %struct.s* %a, i32 0, i32 5 + %tmp10 = getelementptr %struct.s, %struct.s* %a, i32 0, i32 5 store i8 %a6, i8* %tmp10, align 8 - call void @f( %struct.s* %a byval ) - call void @f( %struct.s* %a byval ) + call void @f( %struct.s* byval %a ) + call void @f( %struct.s* byval %a ) ret void }