brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 58efa8b Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s --check-prefix=DARWIN3; RUN: llc < %s -mtriple=x86_64-pc-linux -relocation-model=static | FileCheck %s --check-prefix=LINUX4 5@ptr = external global ptr		; <ptr> [#uses=1]6@src = external global [0 x i32]		; <ptr> [#uses=1]7@dst = external global [0 x i32]		; <ptr> [#uses=1]8@lptr = internal global ptr null		; <ptr> [#uses=1]9@ldst = internal global [500 x i32] zeroinitializer, align 32		; <ptr> [#uses=1]10@lsrc = internal global [500 x i32] zeroinitializer, align 32		; <ptr> [#uses=0]11@bsrc = internal global [500000 x i32] zeroinitializer, align 32		; <ptr> [#uses=0]12@bdst = internal global [500000 x i32] zeroinitializer, align 32		; <ptr> [#uses=0]13 14define void @test1() nounwind {15; DARWIN-LABEL: test1:16; DARWIN:       ## %bb.0:17; DARWIN-NEXT:    movq _src@GOTPCREL(%rip), %rax18; DARWIN-NEXT:    movl (%rax), %eax19; DARWIN-NEXT:    movq _dst@GOTPCREL(%rip), %rcx20; DARWIN-NEXT:    movl %eax, (%rcx)21; DARWIN-NEXT:    retq22;23; LINUX-LABEL: test1:24; LINUX:       # %bb.0:25; LINUX-NEXT:    movq src@GOTPCREL(%rip), %rax26; LINUX-NEXT:    movl (%rax), %eax27; LINUX-NEXT:    movq dst@GOTPCREL(%rip), %rcx28; LINUX-NEXT:    movl %eax, (%rcx)29; LINUX-NEXT:    retq30	%tmp = load i32, ptr @src		; <i32> [#uses=1]31	store i32 %tmp, ptr @dst32	ret void33}34 35define void @test2() nounwind {36; DARWIN-LABEL: test2:37; DARWIN:       ## %bb.0:38; DARWIN-NEXT:    movq _dst@GOTPCREL(%rip), %rax39; DARWIN-NEXT:    movq _ptr@GOTPCREL(%rip), %rcx40; DARWIN-NEXT:    movq %rax, (%rcx)41; DARWIN-NEXT:    retq42;43; LINUX-LABEL: test2:44; LINUX:       # %bb.0:45; LINUX-NEXT:    movq dst@GOTPCREL(%rip), %rax46; LINUX-NEXT:    movq ptr@GOTPCREL(%rip), %rcx47; LINUX-NEXT:    movq %rax, (%rcx)48; LINUX-NEXT:    retq49	store ptr @dst, ptr @ptr50	ret void51}52 53define void @test3() nounwind {54; DARWIN-LABEL: test3:55; DARWIN:       ## %bb.0:56; DARWIN-NEXT:    leaq _ldst(%rip), %rax57; DARWIN-NEXT:    movq %rax, _lptr(%rip)58; DARWIN-NEXT:    retq59;60; LINUX-LABEL: test3:61; LINUX:       # %bb.0:62; LINUX-NEXT:    movq $ldst, lptr(%rip)63; LINUX-NEXT:    retq64	store ptr @ldst, ptr @lptr65	br label %return66 67return:		; preds = %068	ret void69}70