Craig Topper | 7e42af8 | 2018-04-10 03:44:15 +0000 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| 2 | ; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s |
| 3 | |
| 4 | declare void @bar() |
| 5 | |
| 6 | define void @foo(i64*) { |
| 7 | ; CHECK-LABEL: foo: |
| 8 | ; CHECK: # %bb.0: # %start |
| 9 | ; CHECK-NEXT: movq (%rdi), %rax |
| 10 | ; CHECK-NEXT: andl $-2, %eax |
| 11 | ; CHECK-NEXT: cmpq $4, %rax |
| 12 | ; CHECK-NEXT: jne .LBB0_2 |
| 13 | ; CHECK-NEXT: # %bb.1: # %bb1 |
| 14 | ; CHECK-NEXT: retq |
| 15 | ; CHECK-NEXT: .LBB0_2: # %bb2.i |
| 16 | ; CHECK-NEXT: jmp bar # TAILCALL |
| 17 | start: |
| 18 | %1 = load i64, i64* %0, align 8, !range !0 |
| 19 | %2 = and i64 %1, 6 |
| 20 | %3 = icmp eq i64 %2, 4 |
| 21 | br i1 %3, label %bb1, label %bb2.i |
| 22 | |
| 23 | bb1: ; preds = %bb2.i, %start |
| 24 | ret void |
| 25 | |
| 26 | bb2.i: ; preds = %start |
| 27 | tail call fastcc void @bar() |
| 28 | br label %bb1 |
| 29 | } |
| 30 | |
| 31 | !0 = !{i64 0, i64 6} |