brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · d933149 Raw
52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+mmx | FileCheck %s --check-prefix=X86-323; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | FileCheck %s --check-prefix=X86-644;5; On Darwin x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2].6; On Darwin x86-32, v1i64 values are passed in memory.  In this example, they7;                   are never moved into an MM register at all.8; On Darwin x86-64, v8i8, v4i16, v2i32 values are passed in XMM[0-7].9; On Darwin x86-64, v1i64 values are passed in 64-bit GPRs.10 11@u1 = external global <1 x i64>12 13define void @t1(<1 x i64> %v1) nounwind  {14; X86-32-LABEL: t1:15; X86-32:       ## %bb.0:16; X86-32-NEXT:    movl {{[0-9]+}}(%esp), %eax17; X86-32-NEXT:    movl {{[0-9]+}}(%esp), %ecx18; X86-32-NEXT:    movl L_u1$non_lazy_ptr, %edx19; X86-32-NEXT:    movl %ecx, 4(%edx)20; X86-32-NEXT:    movl %eax, (%edx)21; X86-32-NEXT:    retl22;23; X86-64-LABEL: t1:24; X86-64:       ## %bb.0:25; X86-64-NEXT:    movq _u1@GOTPCREL(%rip), %rax26; X86-64-NEXT:    movq %rdi, (%rax)27; X86-64-NEXT:    retq28	store <1 x i64> %v1, ptr @u1, align 829	ret void30}31 32@u2 = external global <1 x i64>33 34define void @t2(<1 x i64> %v1) nounwind  {35; X86-32-LABEL: t2:36; X86-32:       ## %bb.0:37; X86-32-NEXT:    movl {{[0-9]+}}(%esp), %eax38; X86-32-NEXT:    movl {{[0-9]+}}(%esp), %ecx39; X86-32-NEXT:    movl L_u2$non_lazy_ptr, %edx40; X86-32-NEXT:    movl %ecx, 4(%edx)41; X86-32-NEXT:    movl %eax, (%edx)42; X86-32-NEXT:    retl43;44; X86-64-LABEL: t2:45; X86-64:       ## %bb.0:46; X86-64-NEXT:    movq _u2@GOTPCREL(%rip), %rax47; X86-64-NEXT:    movq %rdi, (%rax)48; X86-64-NEXT:    retq49	store <1 x i64> %v1, ptr @u2, align 850	ret void51}52