brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 49e2bf2 Raw
118 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc < %s -mtriple=i686-darwin | FileCheck %s3 4define void @foo(ptr %buf, i32 %size, i32 %col, ptr %p) nounwind {5; CHECK-LABEL: foo:6; CHECK:       ## %bb.0: ## %entry7; CHECK-NEXT:    pushl %ebx8; CHECK-NEXT:    pushl %edi9; CHECK-NEXT:    pushl %esi10; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax11; CHECK-NEXT:    testl %eax, %eax12; CHECK-NEXT:    jle LBB0_313; CHECK-NEXT:  ## %bb.1: ## %bb.preheader14; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx15; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %edx16; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %esi17; CHECK-NEXT:    addl $8, %ecx18; CHECK-NEXT:    .p2align 419; CHECK-NEXT:  LBB0_2: ## %bb20; CHECK-NEXT:    ## =>This Inner Loop Header: Depth=121; CHECK-NEXT:    movl (%esi), %edi22; CHECK-NEXT:    movzbl -8(%ecx), %ebx23; CHECK-NEXT:    movb %bl, (%edi,%edx)24; CHECK-NEXT:    movzbl -7(%ecx), %ebx25; CHECK-NEXT:    movb %bl, 7(%edi,%edx)26; CHECK-NEXT:    movzbl -6(%ecx), %ebx27; CHECK-NEXT:    movb %bl, 5(%edi,%edx)28; CHECK-NEXT:    movzbl -5(%ecx), %ebx29; CHECK-NEXT:    movb %bl, 3(%edi,%edx)30; CHECK-NEXT:    movzbl -4(%ecx), %ebx31; CHECK-NEXT:    movb %bl, 2(%edi,%edx)32; CHECK-NEXT:    movzbl -3(%ecx), %ebx33; CHECK-NEXT:    movb %bl, 1(%edi,%edx)34; CHECK-NEXT:    movzbl -2(%ecx), %ebx35; CHECK-NEXT:    movb %bl, 2(%edi,%edx)36; CHECK-NEXT:    movzbl -1(%ecx), %ebx37; CHECK-NEXT:    movb %bl, 4(%edi,%edx)38; CHECK-NEXT:    movzbl (%ecx), %ebx39; CHECK-NEXT:    movb %bl, 6(%edi,%edx)40; CHECK-NEXT:    addl $4, %esi41; CHECK-NEXT:    addl $9, %ecx42; CHECK-NEXT:    decl %eax43; CHECK-NEXT:    jne LBB0_244; CHECK-NEXT:  LBB0_3: ## %return45; CHECK-NEXT:    popl %esi46; CHECK-NEXT:    popl %edi47; CHECK-NEXT:    popl %ebx48; CHECK-NEXT:    retl49entry:50	icmp sgt i32 %size, 0		; <i1>:0 [#uses=1]51	br i1 %0, label %bb.preheader, label %return52 53bb.preheader:		; preds = %entry54	%tmp5.sum72 = add i32 %col, 7		; <i32> [#uses=1]55	%tmp5.sum71 = add i32 %col, 5		; <i32> [#uses=1]56	%tmp5.sum70 = add i32 %col, 3		; <i32> [#uses=1]57	%tmp5.sum69 = add i32 %col, 2		; <i32> [#uses=1]58	%tmp5.sum68 = add i32 %col, 1		; <i32> [#uses=1]59	%tmp5.sum66 = add i32 %col, 4		; <i32> [#uses=1]60	%tmp5.sum = add i32 %col, 6		; <i32> [#uses=1]61	br label %bb62 63bb:		; preds = %bb, %bb.preheader64	%i.073.0 = phi i32 [ 0, %bb.preheader ], [ %indvar.next, %bb ]		; <i32> [#uses=3]65	%p_addr.076.0.rec = mul i32 %i.073.0, 9		; <i32> [#uses=9]66	%p_addr.076.0 = getelementptr i8, ptr %p, i32 %p_addr.076.0.rec		; <ptr> [#uses=1]67	%tmp2 = getelementptr ptr, ptr %buf, i32 %i.073.0		; <ptr> [#uses=1]68	%tmp3 = load ptr, ptr %tmp2		; <ptr> [#uses=8]69	%tmp5 = getelementptr i8, ptr %tmp3, i32 %col		; <ptr> [#uses=1]70	%tmp7 = load i8, ptr %p_addr.076.0		; <i8> [#uses=1]71	store i8 %tmp7, ptr %tmp572	%p_addr.076.0.sum93 = add i32 %p_addr.076.0.rec, 1		; <i32> [#uses=1]73	%tmp11 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum93		; <ptr> [#uses=1]74	%tmp13 = load i8, ptr %tmp11		; <i8> [#uses=1]75	%tmp15 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum72		; <ptr> [#uses=1]76	store i8 %tmp13, ptr %tmp1577	%p_addr.076.0.sum92 = add i32 %p_addr.076.0.rec, 2		; <i32> [#uses=1]78	%tmp17 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum92		; <ptr> [#uses=1]79	%tmp19 = load i8, ptr %tmp17		; <i8> [#uses=1]80	%tmp21 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum71		; <ptr> [#uses=1]81	store i8 %tmp19, ptr %tmp2182	%p_addr.076.0.sum91 = add i32 %p_addr.076.0.rec, 3		; <i32> [#uses=1]83	%tmp23 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum91		; <ptr> [#uses=1]84	%tmp25 = load i8, ptr %tmp23		; <i8> [#uses=1]85	%tmp27 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum70		; <ptr> [#uses=1]86	store i8 %tmp25, ptr %tmp2787	%p_addr.076.0.sum90 = add i32 %p_addr.076.0.rec, 4		; <i32> [#uses=1]88	%tmp29 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum90		; <ptr> [#uses=1]89	%tmp31 = load i8, ptr %tmp29		; <i8> [#uses=1]90	%tmp33 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum69		; <ptr> [#uses=2]91	store i8 %tmp31, ptr %tmp3392	%p_addr.076.0.sum89 = add i32 %p_addr.076.0.rec, 5		; <i32> [#uses=1]93	%tmp35 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum89		; <ptr> [#uses=1]94	%tmp37 = load i8, ptr %tmp35		; <i8> [#uses=1]95	%tmp39 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum68		; <ptr> [#uses=1]96	store i8 %tmp37, ptr %tmp3997	%p_addr.076.0.sum88 = add i32 %p_addr.076.0.rec, 6		; <i32> [#uses=1]98	%tmp41 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum88		; <ptr> [#uses=1]99	%tmp43 = load i8, ptr %tmp41		; <i8> [#uses=1]100	store i8 %tmp43, ptr %tmp33101	%p_addr.076.0.sum87 = add i32 %p_addr.076.0.rec, 7		; <i32> [#uses=1]102	%tmp47 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum87		; <ptr> [#uses=1]103	%tmp49 = load i8, ptr %tmp47		; <i8> [#uses=1]104	%tmp51 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum66		; <ptr> [#uses=1]105	store i8 %tmp49, ptr %tmp51106	%p_addr.076.0.sum = add i32 %p_addr.076.0.rec, 8		; <i32> [#uses=1]107	%tmp53 = getelementptr i8, ptr %p, i32 %p_addr.076.0.sum		; <ptr> [#uses=1]108	%tmp55 = load i8, ptr %tmp53		; <i8> [#uses=1]109	%tmp57 = getelementptr i8, ptr %tmp3, i32 %tmp5.sum		; <ptr> [#uses=1]110	store i8 %tmp55, ptr %tmp57111	%indvar.next = add i32 %i.073.0, 1		; <i32> [#uses=2]112	icmp eq i32 %indvar.next, %size		; <i1>:1 [#uses=1]113	br i1 %1, label %return, label %bb114 115return:		; preds = %bb, %entry116	ret void117}118