brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · d5591c5 Raw
65 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -o - %s -mtriple=x86_64--unknown-linux-gnu | FileCheck %s3 4define void @foo(ptr %a, ptr %b, ptr noalias %c, i64 %s) {5; CHECK-LABEL: foo:6; CHECK:       # %bb.0:7; CHECK-NEXT:    movq $0, -{{[0-9]+}}(%rsp)8; CHECK-NEXT:    .p2align 49; CHECK-NEXT:  .LBB0_1: # %loop10; CHECK-NEXT:    # =>This Inner Loop Header: Depth=111; CHECK-NEXT:    movq -{{[0-9]+}}(%rsp), %rax12; CHECK-NEXT:    cmpq %rcx, %rax13; CHECK-NEXT:    je .LBB0_314; CHECK-NEXT:  # %bb.2: # %body15; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=116; CHECK-NEXT:    movl $1, (%rdx,%rax,4)17; CHECK-NEXT:    movzbl (%rdi,%rax,4), %r8d18; CHECK-NEXT:    movzbl (%rsi,%rax,4), %r9d19; CHECK-NEXT:    andl %r8d, %r9d20; CHECK-NEXT:    andl $1, %r9d21; CHECK-NEXT:    movl %r9d, (%rdi,%rax,4)22; CHECK-NEXT:    incq %rax23; CHECK-NEXT:    movq %rax, -{{[0-9]+}}(%rsp)24; CHECK-NEXT:    jmp .LBB0_125; CHECK-NEXT:  .LBB0_3: # %endloop26; CHECK-NEXT:    retq27%i = alloca i6428store i64 0, ptr %i29br label %loop30 31loop:32%ct = load i64, ptr %i33%comp = icmp eq i64 %ct, %s34br i1 %comp, label %endloop, label %body35 36body:37%var0 = getelementptr i32, ptr %c, i64 %ct38store i32 1, ptr %var039%var1 = getelementptr i32, ptr %c, i64 %ct40%var2 = load i32, ptr %var141%var3 = add i32 %var2, 142%var4 = getelementptr i32, ptr %a, i64 %ct43%var5 = load i32, ptr %var444%var6 = and i32 %var3, %var545%var7 = add i32 %var6, 146%var8 = getelementptr i32, ptr %a, i64 %ct47%var9 = load i32, ptr %var848%var10 = and i32 %var7, %var949%var11 = getelementptr i32, ptr %c, i64 %ct50%var12 = load i32, ptr %var1151%var13 = and i32 %var10, %var1252%var14 = getelementptr i32, ptr %b, i64 %ct53%var15 = load i32, ptr %var1454%var16 = and i32 %var15, 6355%var17 = and i32 %var13, %var1656%var18 = getelementptr i32, ptr %a, i64 %ct57store i32 %var17, ptr %var1858%z = add i64 1, %ct59store i64 %z, ptr %i60br label %loop61 62endloop:63ret void64}65