[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / pr51476.ll
blobce565a186ae05769218b4d2c695e3b22eb20b855
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s
4 define void @test(i8 %arg) nounwind {
5 ; CHECK-LABEL: test:
6 ; CHECK:       // %bb.0:
7 ; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill
8 ; CHECK-NEXT:    and w9, w0, #0xff
9 ; CHECK-NEXT:    mov w8, #1
10 ; CHECK-NEXT:    cmp w9, #1
11 ; CHECK-NEXT:    cset w0, ne
12 ; CHECK-NEXT:    strb w0, [sp, #12]
13 ; CHECK-NEXT:    cbz w8, .LBB0_2
14 ; CHECK-NEXT:  // %bb.1: // %do_call
15 ; CHECK-NEXT:    bl unknown
16 ; CHECK-NEXT:  .LBB0_2: // %common.ret
17 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
18 ; CHECK-NEXT:    ret
19   %tmp = alloca i8
20   %cmp1 = icmp ne i8 %arg, 1
21   %zext = zext i1 %cmp1 to i8
22   store i8 %zext, ptr %tmp
23   %zext2 = load i8, ptr %tmp
24   %cmp2 = icmp eq i8 %zext2, 3
25   br i1 %cmp2, label %exit, label %do_call
27 do_call:
28   call void @unknown(i8 %zext2)
29   ret void
31 exit:
32   ret void
35 declare void @unknown(i8)