brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · f2f6e69 Raw
72 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-- < %s | FileCheck %s3 4declare void @clobber()5 6define void @test(i1 %c, ptr %p, ptr noalias %p2) nounwind {7; CHECK-LABEL: test:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    pushq %rbp10; CHECK-NEXT:    pushq %r1511; CHECK-NEXT:    pushq %r1412; CHECK-NEXT:    pushq %rbx13; CHECK-NEXT:    pushq %rax14; CHECK-NEXT:    movq %rdx, %rbx15; CHECK-NEXT:    movl %edi, %ebp16; CHECK-NEXT:    movq (%rsi), %r1417; CHECK-NEXT:    movb $1, %r15b18; CHECK-NEXT:    jmp .LBB0_119; CHECK-NEXT:    .p2align 420; CHECK-NEXT:  .LBB0_4: # %sink21; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=122; CHECK-NEXT:    movq %r14, (%rbx)23; CHECK-NEXT:  .LBB0_1: # %loop24; CHECK-NEXT:    # =>This Inner Loop Header: Depth=125; CHECK-NEXT:    testb %r15b, %r15b26; CHECK-NEXT:    jne .LBB0_127; CHECK-NEXT:  # %bb.2: # %split.328; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=129; CHECK-NEXT:    testb $1, %bpl30; CHECK-NEXT:    je .LBB0_431; CHECK-NEXT:  # %bb.3: # %clobber32; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=133; CHECK-NEXT:    callq clobber@PLT34; CHECK-NEXT:    jmp .LBB0_435entry:36  %val = load i64, ptr %p, align 837  br label %loop38 39loop:40  switch i8 undef, label %unreachable [41    i8 0, label %latch42    i8 1, label %split.143    i8 2, label %split.244    i8 3, label %split.345  ]46 47unreachable:48  unreachable49 50split.3:51  br i1 %c, label %clobber, label %sink52 53split.1:54  br label %latch55 56split.2:57  br label %latch58 59clobber:60  call void @clobber()61  br label %sink62 63sink:64  store i64 %val, ptr %p2, align 865  br label %latch66 67latch:68  %phi = phi i64 [ 0, %sink ], [ 0, %split.2 ], [ 1, %split.1 ], [ 0, %loop ]69  %phi.live = add i64 %phi, 070  br label %loop71}72